diff --git a/.clang-tidy b/.clang-tidy
index 5d0a020f51bb1..ef41eda3bb7b5 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -1,6 +1,6 @@
-Checks: 'clang-diagnostic-*,-clang-analyzer-security.FloatLoopCounter,-clang-analyzer-core.UndefinedBinaryOperatorResult,-clang-analyzer-core.uninitialized.Assign,-clang-analyzer-cplusplus.NewDeleteLeaks'
+Checks: 'clang-diagnostic-*,modernize-use-using'
WarningsAsErrors: '*'
-HeaderFilterRegex: '.*'
+HeaderFilterRegex: '(src|test).*'
FormatStyle: none
# vim:tw=0
diff --git a/.travis.yml b/.travis.yml
index 3e6be56e11f5e..dae7cc3e11c3d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -32,73 +32,96 @@ branches:
- master
- development
+# Overall strategy for what sorts of builds to include:
+# We want a build for each compiler and each platform.
+# For PRs, we lessen the "each compiler" requirement to just covering the newest
+# and oldest relevant version of each compiler.
+# We also want to ensure that each of the following tweaks are covered in at
+# least one PR build:
+# - TILES=1
+# - SOUND=1
+# - RELEASE=1
+# - CMAKE=1
+# - SANITIZE=address
+# - LOCALIZE=0
+# - A clang-tidy run
+# We try to minimize the number of builds subject to those constraints.
+
+# To see what toolchains are available, consult the following:
+# https://github.com/travis-ci/apt-source-safelist/blob/master/ubuntu.json
+# https://launchpad.net/%7Eubuntu-toolchain-r/+archive/ubuntu/test/+index
+
jobs:
include:
# Initial test stage, if this fails everything else is cancelled.
- - stage: test
- # GCC 5.4 is the pre-installed compiler on Xenial
- env: COMPILER=g++ MODS=--mods=RL_Classes TEST_STAGE=1
+ - stage: Test
+ # Clang is consistently the fastest to build, so use it for the initial test.
+ env: CLANG=clang++-3.8 MODS=--mods=RL_Classes TEST_STAGE=1 CXXFLAGS='-Wno-error=unused-command-line-argument -D__extern_always_inline="extern __always_inline"'
+ name: "Clang 3.8 Make build with curses, style check and RL_Classes test"
+ compiler: clang
+ addons: &clang38
+ apt:
+ packages: ["clang-3.8", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
+ sources: *apt_sources
# Then build different configurations and targets in parallel.
- - stage: variants
- # Linux Tiles
- env: COMPILER=g++-8 CXXFLAGS='-Wno-implicit-fallthrough' TILES=1 SOUND=1 SANITIZE=address
+ - stage: "Main Compilers"
+ env: COMPILER=g++ LOCALIZE=0
+ name: "GCC 5.3 Make build with curses and no Localization"
+ compiler: gcc
+ addons: &gcc53
+ apt:
+ packages: ["g++-5=5.3.1-14ubuntu2", "libstdc++-5-dev=5.3.1-14ubuntu2", "gcc-5=5.3.1-14ubuntu2", "gcc-5-base=5.3.1-14ubuntu2", "cpp-5=5.3.1-14ubuntu2", "libgcc-5-dev=5.3.1-14ubuntu2", "libasan2=5.3.1-14ubuntu2", "libmpx0=5.3.1-14ubuntu2"]
+ sources: [*apt_sources]
+
+ - env: COMPILER=g++-8 CXXFLAGS='-Wno-implicit-fallthrough' TILES=1 SOUND=1 SANITIZE=address
+ name: "GCC 8 Make build with Tiles, Sound and address sanitization"
compiler: gcc
addons: &gcc8
apt:
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 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'
- addons: &gcc
+ - env: CLANG=clang++-8 SANITIZE=address EXTRA_TEST_OPTS="~[.] ~vehicle_efficiency ~vehicle_drag ~starting_items"
+ name: "Clang 8 Make build with address sanitization, but long-running tests disabled"
+ compiler: clang
+ addons: &clang8
apt:
- packages: ["wine"]
+ packages: ["clang-8", "libc6-dbg", "libc6-dbg:i386"]
+ sources: [*apt_sources, llvm-toolchain-xenial-8]
- # Windows Tiles
- - env: COMPILER='g++' LDFLAGS='-static-libgcc -static-libstdc++' MXE_TARGET='i686-w64-mingw32.static' WINE='wine' TILES=1 SOUND=1
+ - stage: "Platforms and Tidy"
+ # MXE variant using alternate repository http://mirror.mxe.cc/repos/apt
+ env: COMPILER='g++' LDFLAGS='-static-libgcc -static-libstdc++' MXE_TARGET='i686-w64-mingw32.static' WINE='wine' TILES=1 SOUND=1
+ name: "Mingw-w64 Make cross-compile to Windows with Tiles and Sound"
compiler: gcc
addons: &gcc
apt:
packages: ["wine"]
- # CMake Clang 6.0 Tiles with CMAKE
- - env: CLANG=clang++-6.0 TILES=1 SOUND=1 CXXFLAGS=-Wno-error=unused-command-line-argument CMAKE=1 RELEASE=1
- dist: trusty
- compiler: clang
- addons: &clang60
- apt:
- packages: ["clang-6.0", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"]
- sources: [*apt_sources, llvm-toolchain-trusty-6.0]
-
- # macOS Tiles
- env: CLANG=clang++ NATIVE=osx OSX_MIN=10.13 TILES=1 SOUND=1
+ name: "Xcode 10.1 Make build with Tiles and sound (macOS)"
os: osx
osx_image: xcode10.1
compiler: clang
- # Finally check the compiler variants
- - stage: compilers
-
- # CMake Clang 8.0 Tiles with CMAKE and clang-tidy
- # (analysis only; no build or tests)
- env: CLANG=clang++-8 TILES=1 SOUND=1 CXXFLAGS=-Wno-unused-command-line-argument CMAKE=1 CATA_CLANG_TIDY=clang-tidy-8
+ - env: CLANG=clang++-8 TILES=1 SOUND=1 CXXFLAGS=-Wno-unused-command-line-argument CMAKE=1 CATA_CLANG_TIDY=clang-tidy-8
+ name: "Clang-tidy CMake build with Tiles and Sound"
compiler: clang
- addons: &clang80
+ addons: &clang8
apt:
- packages: ["clang-8", "clang-tidy-8", "libc6-dbg", "libc6-dbg:i386", "g++-6", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"]
+ packages: ["clang-8", "clang-tidy-8", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"]
sources: [*apt_sources, llvm-toolchain-xenial-8]
- - env: COMPILER=g++
- compiler: gcc
- addons: &gcc53
- apt:
- packages: ["g++-5=5.3.1-14ubuntu2", "libstdc++-5-dev=5.3.1-14ubuntu2", "gcc-5=5.3.1-14ubuntu2", "gcc-5-base=5.3.1-14ubuntu2", "cpp-5=5.3.1-14ubuntu2", "libgcc-5-dev=5.3.1-14ubuntu2", "libasan2=5.3.1-14ubuntu2", "libmpx0=5.3.1-14ubuntu2"]
- sources: [*apt_sources]
+ # Finally check the compiler variants
+ - stage: compilers
+ # GCC 5.4 is default on Xenial
+ env: COMPILER=g++
+ name: "GCC 5.4 Make build with Curses"
+ if: type != pull_request
- # GCC 6
- env: COMPILER=g++-6
+ name: "GCC 6 Make build with Curses"
if: type != pull_request
compiler: gcc
addons: &gcc6
@@ -106,35 +129,24 @@ jobs:
packages: ["g++-6", "g++-6-multilib", "libc6-dbg", "libc6-dbg:i386"]
sources: *apt_sources
- # GCC 7
- - env: COMPILER=g++-7 CXXFLAGS='-Wno-implicit-fallthrough' CODE_COVERAGE=true
+ - env: COMPILER=g++-7 CXXFLAGS='-Wno-implicit-fallthrough -D_GLIBCXX_DEBUG' CODE_COVERAGE=true
+ name: "GCC 7 Make build with Curses, GLIBCXX_DEBUG and code coverage"
if: type != pull_request
compiler: gcc
- dist: trusty
addons: &gcc7
apt:
packages: ["g++-7", "g++-7-multilib", "libc6-dbg", "libc6-dbg:i386", "lcov"]
sources: *apt_sources
- # GCC 8
- # Also, adding _GLIBCXX_DEBUG so that one build can test with that
- - env: COMPILER=g++-8 CXXFLAGS='-Wno-implicit-fallthrough -D_GLIBCXX_DEBUG'
- compiler: gcc
- addons: &gcc8
- apt:
- packages: ["g++-8", "g++-8-multilib", "libc6-dbg", "libc6-dbg:i386"]
- sources: *apt_sources
-
- # Clang 3.8
- - env: CLANG=clang++-3.8 CXXFLAGS='-Wno-error=unused-command-line-argument -D__extern_always_inline="extern __always_inline"'
- compiler: clang
- addons: &clang38
+ - env: COMPILER='g++' LDFLAGS='-static-libgcc -static-libstdc++' MXE_TARGET='i686-w64-mingw32.static' WINE='wine'
+ name: "Mingw-w64 Make build with Curses"
+ if: type != pull_request
+ addons: &gcc
apt:
- packages: ["clang-3.8", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
- sources: *apt_sources
+ packages: ["wine"]
- # Clang 3.9
- env: CLANG=clang++-3.9 CXXFLAGS='-Wno-error=unused-command-line-argument -D__extern_always_inline="extern __always_inline"'
+ name: "Clang 3.9 Make build with Curses"
if: type != pull_request
compiler: clang
addons: &clang39
@@ -142,17 +154,20 @@ jobs:
packages: ["clang-3.9", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
sources: *apt_sources
- # Clang 4.0
- env: CLANG=clang++-4.0 CXXFLAGS=-Wno-error=unused-command-line-argument
+ name: "Clang 4 Make build with Curses"
if: type != pull_request
compiler: clang
addons: &clang40
apt:
packages: ["clang-4.0", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
+ # Luckily the Trusty install Just Works on Xenial
sources: [*apt_sources, llvm-toolchain-trusty-4.0]
- # Clang 5.0
+ # Clang 5.0 (still on Trusty, because I could find no readily available
+ # source on Xenial at time of writing)
- env: CLANG=clang++-5.0 CXXFLAGS=-Wno-error=unused-command-line-argument
+ name: "Clang 5 Make build with Curses"
if: type != pull_request
dist: trusty
compiler: clang
@@ -161,14 +176,23 @@ jobs:
packages: ["clang-5.0", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
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 EXTRA_TEST_OPTS="~[.] ~vehicle_efficiency ~vehicle_drag ~starting_items"
- dist: trusty
+ - env: CLANG=clang++-6.0 TILES=1 SOUND=1 CXXFLAGS=-Wno-error=unused-command-line-argument CMAKE=1 RELEASE=1
+ name: "Clang 6 CMake build with tiles and sound"
+ if: type != pull_request
compiler: clang
addons: &clang60
apt:
- packages: ["clang-6.0", "g++-multilib", "libc6-dbg", "libc6-dbg:i386", "g++-6"]
- sources: [*apt_sources, llvm-toolchain-trusty-6.0]
+ packages: ["clang-6.0", "g++-multilib", "libc6-dbg", "g++-6", "libsdl2-dev", "libsdl2-ttf-dev", "libsdl2-image-dev", "libsdl2-mixer-dev"]
+ sources: [*apt_sources, llvm-toolchain-xenial-6.0]
+
+ - env: CLANG=clang++-7
+ name: "Clang 7 Make build with Curses"
+ if: type != pull_request
+ compiler: clang
+ addons: &clang7
+ apt:
+ packages: ["clang-7", "libc6-dbg", "libc6-dbg:i386"]
+ sources: [*apt_sources, llvm-toolchain-xenial-7]
before_script:
- if [ -n "${CLANG}" ]; then COMPILER="$CLANG"; fi
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e83018c401b3..2c1443daf5d5d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -212,7 +212,9 @@ IF(MSVC)
add_definitions(-D_X86_)
endif()
ELSE()
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -Woverloaded-virtual -Wpedantic -std=c++14")
+ SET(CATA_WARNINGS
+ "-Werror -Wall -Wextra -Woverloaded-virtual -Wpedantic -Wmissing-declarations")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CATA_WARNINGS} -std=c++14")
SET(CMAKE_CXX_FLAGS_DEBUG "-Og -g")
ENDIF()
diff --git a/COMPILING-CYGWIN.md b/COMPILING-CYGWIN.md
new file mode 100644
index 0000000000000..7c851f5049d4e
--- /dev/null
+++ b/COMPILING-CYGWIN.md
@@ -0,0 +1,71 @@
+# Compilation guide for 64 bit Windows (using CYGWIN)
+
+This guide contains steps required to allow compilation of Cataclysm-DDA on Windows under CYGWIN.
+
+Steps from current guide were tested on Windows 10 (64 bit) and CYGWIN (64 bit), but should work for other versions of Windows and also CYGWIN (32 bit) if you download 32 bit version of all files.
+
+## Prerequisites:
+
+* Computer with 64 bit version of modern Windows operating system installed (Windows 10, Windows 8.1 or Windows 7);
+* NTFS partition with ~10 Gb free space (~2 Gb for CYGWIN installation, ~3 Gb for repository and ~5 Gb for ccache);
+* 64 bit version of CYGWIN (installer can be downloaded from [CYGWIN homepage](https://cygwin.com/));
+
+## Installation:
+
+1. Go to [CYGWIN homepage](https://cygwin.com/) and download 64 bit installer (e.g. [setup-x86_64.exe](https://cygwin.com/setup-x86_64.exe).
+
+2. Run downloaded file and install CYGWIN (click `Next` button, select instalation source (e.g. `Install from Internet`), click `Next` button, specify directory where CYGWIN 64 bit will be installed (e.g. `C:\cygwin64`), select whether to install for all users or just you, click `Next` button again, select local package directory (e.g. `C:\Distr\Cygwin`), click `Next` button, select Internet connection settings, click `Next` button again, choose a download site from the list of available download sites, click `Next` button again).
+
+3. After CYGWIN installation is complete select following packages and press `Next` button to download and install them:
+
+* `wget`.
+
+4. System will tell you it will install following packages (you will install everything else later):
+
+```
+...
+```
+
+5. Check boxes to add shortcuts to Start Menu and/or Desktop, then press `Finish` button.
+
+## Configuration:
+
+1. Install `apt-cyg` for easier package installation with:
+
+```bash
+wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg -O /bin/apt-cyg
+chmod 755 /bin/apt-cyg
+```
+
+2. Install packages required for compilation with:
+
+```bash
+apt-cyg install git make astyle gcc-g++ libintl-devel libiconv-devel libSDL2_image-devel libSDL2_ttf-devel libSDL2_mixer-devel libncurses-devel xinit
+```
+
+## Cloning and compilation:
+
+1. Clone Cataclysm-DDA repository with following command line:
+
+**Note:** This will download whole CDDA repository. If you're just testing you should probably add `--depth=1`.
+
+```bash
+git clone https://github.com/CleverRaven/Cataclysm-DDA.git
+cd Cataclysm-DDA
+```
+
+2. Compile with following command line:
+
+```bash
+make CCACHE=1 RELEASE=1 CYGWIN=1 DYNAMIC_LINKING=1 SDL=1 TILES=1 SOUND=1 LOCALIZE=1 LANGUAGES=all LINTJSON=0 ASTYLE=0 RUNTESTS=0
+```
+
+**Note**: This will compile release version with Sound and Tiles support and all localization languages, skipping checks and tests and using ccache for faster build. You can use other switches, but `CYGWIN=1`, `DYNAMIC_LINKING=1` and probably `RELEASE=1` are required to compile without issues.
+
+## Running:
+
+1. Run from within CYGWIN XWin Server (found in Start Menu) with following command line:
+
+```bash
+./cataclysm-tiles
+```
diff --git a/COMPILING-MSYS.md b/COMPILING-MSYS.md
index 4c68da1794d65..bcc7fb5e05fa0 100644
--- a/COMPILING-MSYS.md
+++ b/COMPILING-MSYS.md
@@ -101,4 +101,4 @@ make CCACHE=1 RELEASE=1 MSYS2=1 DYNAMIC_LINKING=1 SDL=1 TILES=1 SOUND=1 LOCALIZE
./cataclysm-tiles
```
-**Note:** If you want to run compiled executable from Explorer you will also need to update user or system`PATH` variable with path to MSYS2 runtime binaries (e.g. `C:\msys64\mingw64\bin`).
+**Note:** If you want to run compiled executable from Explorer you will also need to update user or system `PATH` variable with path to MSYS2 runtime binaries (e.g. `C:\msys64\mingw64\bin`).
diff --git a/COMPILING-VS-VCPKG.md b/COMPILING-VS-VCPKG.md
index 8954f6d06e3a0..f46b576b2b1cc 100644
--- a/COMPILING-VS-VCPKG.md
+++ b/COMPILING-VS-VCPKG.md
@@ -34,26 +34,26 @@ vcpkg integrate install
#### install 64 bit dependencies:
```cmd
-vcpkg --triplet x64-windows install sdl2 sdl2-image sdl2-mixer sdl2-ttf gettext
+vcpkg --triplet x64-windows install sdl2 sdl2-image sdl2-mixer[libflac,mpg123,libmodplug,libvorbis] sdl2-ttf gettext
```
or (if you want to build statically linked executable)
```cmd
-vcpkg --triplet x64-windows-static install sdl2 sdl2-image sdl2-mixer sdl2-ttf gettext
+vcpkg --triplet x64-windows-static install sdl2 sdl2-image sdl2-mixer[libflac,mpg123,libmodplug,libvorbis] sdl2-ttf gettext
```
-#### install32 bit dependencies:
+#### install 32 bit dependencies:
```cmd
-vcpkg --triplet x86-windows install sdl2 sdl2-image sdl2-mixer sdl2-ttf gettext
+vcpkg --triplet x86-windows install sdl2 sdl2-image sdl2-mixer[libflac,mpg123,libmodplug,libvorbis] sdl2-ttf gettext
```
or (if you want to build statically linked executable)
```cmd
-vcpkg --triplet x86-windows-static install sdl2 sdl2-image sdl2-mixer sdl2-ttf gettext
+vcpkg --triplet x86-windows-static install sdl2 sdl2-image sdl2-mixer[libflac,mpg123,libmodplug,libvorbis] sdl2-ttf gettext
```
#### upgrade all dependencies:
diff --git a/COMPILING.md b/COMPILING.md
index 188affd3e021c..542279119541a 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -10,10 +10,11 @@
* [Cross-compile to Windows from Linux](#cross-compile-to-windows-from-linux)
* [Cross-compile to Mac OS X from Linux](#cross-compile-to-mac-os-x-from-linux)
* [Cross-compile to Android from Linux](#cross-compile-to-android-from-linux)
+ * [Troubleshooting](#debian-troubleshooting)
* [Mac OS X](#mac-os-x)
* [Simple build using Homebrew](#simple-build-using-homebrew)
* [Advanced info for Developers](#advanced-info-for-developers)
- * [Troubleshooting](#troubleshooting)
+ * [Troubleshooting](#mac-troubleshooting)
* [Windows](#windows)
* [Visual Studio Guide](#visual-studio-guide)
* [MinGW Guide](#mingw-guide)
@@ -34,15 +35,15 @@ You have three major choices here: GCC, Clang and MXE.
(Note that your distro may have separate packages e.g. `gcc` only includes the C compiler and for C++ you'll need to install `g++`.)
-Cataclysm is targeting C++11 standard and that means you'll need a compiler that supports it. You can easily check if your version of `g++` supports C++11 by running:
+Cataclysm is targeting C++14 standard and that means you'll need a compiler that supports it. You can easily check if your version of `g++` supports C++14 by running:
- $ g++ --std=c++11
+ $ g++ --std=c++14
g++: fatal error: no input files
compilation terminated.
If you get a line like:
- g++: error: unrecognized command line option ‘--std=c++11’
+ g++: error: unrecognized command line option ‘--std=c++14’
This means you'll need a newer version of GCC (`g++`).
@@ -219,6 +220,7 @@ Run:
The procedure is very much similar to cross-compilation to Windows from Linux.
Tested on ubuntu 14.04 LTS but should work on other distros as well.
+Please note that due to historical difficulties with cross-compilation errors, run-time optimizations are disabled for cross-compilation to Mac OS X targets. (`-O0` is specified as a compilation flag.) See [Pull Request #26564](https://github.com/CleverRaven/Cataclysm-DDA/pull/26564) for details.
### Dependencies
* OSX cross-compiling toolchain [osxcross](https://github.com/tpoechtrager/osxcross)
@@ -352,21 +354,25 @@ To build a signed release APK (ie. one that can be installed on a device), [buil
The app stores data files on the device in `/sdcard/Android/data/com.cleverraven/cataclysmdda/files`. The data is backwards compatible with the desktop version.
+## Linux Troubleshooting
+
+If you get an error stating `make: build-scripts/validate_pr_in_jenkins: Command not found` clone a separate copy of the upstream source to a new git repository as your git setup has become corrupted by the Blob.
+
# Mac OS X
-To build Cataclysm on Mac you'll need [Command Line Tools for Xcode](https://developer.apple.com/downloads/) and the [Homebrew](http://brew.sh) package manager. With Homebrew, you can easily install or build Cataclysm using the [Cataclysm](https://formulae.brew.sh/formula/cataclysm) forumla.
+To build Cataclysm on Mac you'll need [Command Line Tools for Xcode](https://developer.apple.com/downloads/) and the [Homebrew](http://brew.sh) package manager. With Homebrew, you can easily install or build Cataclysm using the [cataclysm](https://formulae.brew.sh/formula/cataclysm) forumla.
## Simple build using Homebrew
-Homebrew installation will come with tiles and sound support enabled by default.
+Homebrew installation will come with tiles and sound support enabled.
Once you have Homebrew installed, open Terminal and run one of the following commands.
-For a tiles build:
+For a stable tiles build:
brew install cataclysm
-For an experimental tiles build:
+For an experimental tiles build built from the current HEAD of [master](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/):
brew install cataclysm --HEAD
@@ -374,15 +380,14 @@ Whichever build you choose, Homebrew will install the appropriate dependencies a
To launch Cataclysm, just open Terminal and run `cataclysm`.
-To update an experimental build, you must uninstall Cataclysm, then reinstall using one of the above commands. Reinstall Cataclysm using the one of the following commands.
+To update a stable tiles build simply run:
-For a tiles build:
+ brew upgrade cataclysm
- brew reinstall cataclysm
+To update an experimental build, you must uninstall Cataclysm then reinstall with `--HEAD`, triggering a new build from source.
-For an experimental tiles build:
-
- brew reinstall cataclysm --HEAD
+ brew uninstall cataclysm
+ brew install cataclysm --HEAD
## Advanced info for Developers
@@ -472,7 +477,7 @@ The Cataclysm source is compiled using `make`.
### Make options
* `NATIVE=osx` build for OS X. Required for all Mac builds.
-* `OSX_MIN=version` sets `-mmacosx-version-min=` (for OS X > 10.5 set it to 10.6 or higher); omit for 10.5.
+* `OSX_MIN=version` sets `-mmacosx-version-min=` (for OS X > 10.5 set it to 10.6 or higher); omit for 10.5. 10.12 or higher is highly recommended (see ISSUES below).
* `TILES=1` build the SDL version with graphical tiles (and graphical ASCII); omit to build with `ncurses`.
* `SOUND=1` - if you want sound; this requires `TILES=1` and the additional dependencies mentioned above.
* `FRAMEWORK=1` (tiles only) link to SDL libraries under the OS X Frameworks folders; omit to use SDL shared libraries from Homebrew or Macports.
@@ -492,15 +497,15 @@ For more info, see the comments in the `Makefile`.
Build a release SDL version using Clang without gettext:
- make NATIVE=osx OSX_MIN=10.7 RELEASE=1 TILES=1 LOCALIZE=0 CLANG=1
+ make NATIVE=osx OSX_MIN=10.12 RELEASE=1 TILES=1 LOCALIZE=0 CLANG=1
Build a release SDL version using Clang, link to libraries in the OS X Frameworks folders, don't use `gettext`, and package it into `Cataclysm.app`:
- make app NATIVE=osx OSX_MIN=10.7 RELEASE=1 TILES=1 FRAMEWORK=1 LOCALIZE=0 CLANG=1
+ make app NATIVE=osx OSX_MIN=10.12 RELEASE=1 TILES=1 FRAMEWORK=1 LOCALIZE=0 CLANG=1
Build a release curses version with gettext supplied by Macports:
- make NATIVE=osx OSX_MIN=10.7 RELEASE=1 LOCALIZE=1 MACPORTS=1 CLANG=1
+ make NATIVE=osx OSX_MIN=10.12 RELEASE=1 LOCALIZE=1 MACPORTS=1 CLANG=1
### Compiling localization files
@@ -539,12 +544,18 @@ You can build a nice dmg distribution file with the `dmgdist` target. You will n
Once `dmgbuild` is installed, you will be able to use the `dmgdist` target like this. The use of `USE_HOME_DIR=1` is important here because it will allow for an easy upgrade of the game while keeping the user config and his saves in his home directory.
- make dmgdist NATIVE=osx OSX_MIN=10.7 RELEASE=1 TILES=1 FRAMEWORK=1 LOCALIZE=0 CLANG=1 USE_HOME_DIR=1
+ make dmgdist NATIVE=osx OSX_MIN=10.12 RELEASE=1 TILES=1 FRAMEWORK=1 LOCALIZE=0 CLANG=1 USE_HOME_DIR=1
You should see a `Cataclysm.dmg` file.
## Troubleshooting
+### ISSUE: Game runs very slowly when built for Mac OS X 10.11 or earlier
+
+For versions of OS X 10.11 and earlier, run-time optimizations are disabled for native builds (`-O0` is specified as a compilation flag) due to errors that can occur in compilation. See [Pull Request #26564](https://github.com/CleverRaven/Cataclysm-DDA/pull/26564) for details.
+
+If you're on a newer version of OS X, please use an appropriate value for the `OSX_MIN=` option, i.e. `OSX_MIN=10.14` if you are on Mojave.
+
### ISSUE: crash on startup due to libint.8.dylib aborting
If you're compiling on Mountain Lion or above, it won't be possible to run successfully on older OS X versions due to libint.8 / pthreads version issue.
@@ -721,7 +732,7 @@ There are reports of CDDA building fine on recent OpenBSD and FreeBSD machines (
### Building on FreeBSD/amd64 10.1 with the system compiler
-FreeBSD uses clang as the default compiler as of 10.0, and combines it with libc++ to provide C++11 support out of the box. You will however need gmake (examples for binary packages):
+FreeBSD uses clang as the default compiler as of 10.0, and combines it with libc++ to provide C++14 support out of the box. You will however need gmake (examples for binary packages):
`pkg install gmake`
diff --git a/CataclysmWin.cbp b/CataclysmWin.cbp
index 7bba07d40e578..0117c18f9fbff 100644
--- a/CataclysmWin.cbp
+++ b/CataclysmWin.cbp
@@ -258,7 +258,7 @@
-
+
diff --git a/Makefile b/Makefile
index 4ee38160cf0ca..0212bd3486835 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,9 @@
# Win32 (non-Cygwin)
# Run: make NATIVE=win32
# OS X
-# Run: make NATIVE=osx
+# Run: make NATIVE=osx OSX_MIN=10.12
+# It is highly recommended to supply OSX_MIN > 10.11
+# otherwise optimizations are automatically disabled with -O0
# Build types:
# Debug (no optimizations)
@@ -81,7 +83,7 @@
# PROFILE is for use with gprof or a similar program -- don't bother generally.
# RELEASE_FLAGS is flags for release builds.
RELEASE_FLAGS =
-WARNINGS = -Werror -Wall -Wextra -Woverloaded-virtual -Wpedantic
+WARNINGS = -Werror -Wall -Wextra -Woverloaded-virtual -Wpedantic -Wmissing-declarations
# Uncomment below to disable warnings
#WARNINGS = -w
DEBUGSYMS = -g
@@ -310,6 +312,10 @@ else
OTHERS += -std=c++14
endif
+ifeq ($(CYGWIN),1)
+WARNINGS += -Wimplicit-fallthrough=0
+endif
+
CXXFLAGS += $(WARNINGS) $(DEBUG) $(DEBUGSYMS) $(PROFILE) $(OTHERS) -MMD -MP
BINDIST_EXTRAS += README.md data doc
@@ -1028,7 +1034,9 @@ clean-tests:
$(MAKE) -C tests clean
validate-pr:
+ifneq ($(CYGWIN),1)
@build-scripts/validate_pr_in_jenkins
+endif
.PHONY: tests check ctags etags clean-tests install lint validate-pr
diff --git a/android/app/jni/Application.mk b/android/app/jni/Application.mk
index bc4e1e1d4594f..592e16a900310 100644
--- a/android/app/jni/Application.mk
+++ b/android/app/jni/Application.mk
@@ -2,7 +2,7 @@
# See CPLUSPLUS-SUPPORT.html in the NDK documentation for more information
APP_STL := c++_shared
-APP_CPPFLAGS += -std=c++11
+APP_CPPFLAGS += -std=c++14
ifneq ($(OS),Windows_NT)
APP_LDFLAGS += -fuse-ld=gold
endif
diff --git a/build-scripts/build.sh b/build-scripts/build.sh
index b9fbcac025cbd..521abd96877e1 100755
--- a/build-scripts/build.sh
+++ b/build-scripts/build.sh
@@ -18,6 +18,10 @@ if [ -n "$TEST_STAGE" ]
then
build-scripts/lint-json.sh
make -j "$num_jobs" style-json
+
+ # Also build chkjson (even though we're not using it), to catch any
+ # compile errors there
+ make -j "$num_jobs" chkjson
elif [ -n "$JUST_JSON" ]
then
echo "Early exit on just-json change"
@@ -107,7 +111,7 @@ else
run_tests ./tests/cata_test &
if [ -n "$MODS" ]
then
- run_tests ./tests/cata_test $MODS &
+ run_tests ./tests/cata_test --user-dir=modded $MODS &
wait -n
fi
wait -n
diff --git a/build-scripts/requirements.sh b/build-scripts/requirements.sh
index b99be52d9f83e..99ad8505ab89c 100644
--- a/build-scripts/requirements.sh
+++ b/build-scripts/requirements.sh
@@ -22,9 +22,9 @@ if just_json; then
fi
if [ -n "${CODE_COVERAGE}" ]; then
- travis_retry pip install --user pyyaml cpp-coveralls;
- export CXXFLAGS=--coverage;
- export LDFLAGS=--coverage;
+ travis_retry pip install --user pyyaml cpp-coveralls
+ export CXXFLAGS="$CXXFLAGS --coverage"
+ export LDFLAGS="$LDFLAGS --coverage"
fi
if [ -n "$CATA_CLANG_TIDY" ]; then
diff --git a/data/json/bionics.json b/data/json/bionics.json
index fc57a2642187c..b6e52abf6df83 100644
--- a/data/json/bionics.json
+++ b/data/json/bionics.json
@@ -53,7 +53,7 @@
"name": "Alloy Plating - Arms",
"description": "The flesh on your arms has been surgically replaced by a strong armor, protecting you greatly.",
"occupied_bodyparts": [ [ "ARM_L", 4 ], [ "ARM_R", 4 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_armor_eyes",
@@ -61,7 +61,7 @@
"name": "Protective Lenses",
"description": "Your eye sockets have been surgically sealed with highly protective mirrored lenses and your tear ducts have been re-routed to your mouth. When you cry, you must spit out or swallow your tears.",
"occupied_bodyparts": [ [ "EYES", 1 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_armor_head",
@@ -69,7 +69,7 @@
"name": "Alloy Plating - Head",
"description": "The flesh on your head has been surgically replaced by a strong armor, protecting both your head and jaw regions.",
"occupied_bodyparts": [ [ "HEAD", 5 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_armor_legs",
@@ -77,7 +77,7 @@
"name": "Alloy Plating - Legs",
"description": "The flesh on your legs has been surgically replaced by a strong armor, protecting you greatly.",
"occupied_bodyparts": [ [ "LEG_L", 6 ], [ "LEG_R", 6 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_armor_torso",
@@ -85,7 +85,7 @@
"name": "Alloy Plating - Torso",
"description": "The flesh on your torso has been surgically replaced by a strong armor, protecting you greatly.",
"occupied_bodyparts": [ [ "TORSO", 10 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_batteries",
@@ -156,7 +156,7 @@
"capacity": 10,
"description": "You have a complex port surgically mounted above your hip. While active, it will drain power through a jumper cable held on your person.",
"occupied_bodyparts": [ [ "TORSO", 10 ] ],
- "flags": [ "BIONIC_POWER_SOURCE", "BIONIC_TOGGLED" ]
+ "flags": [ "BIONIC_POWER_SOURCE", "BIONIC_SHOCKPROOF", "BIONIC_TOGGLED" ]
},
{
"id": "bio_carbon",
@@ -175,7 +175,7 @@
[ "FOOT_L", 1 ],
[ "FOOT_R", 1 ]
],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_chain_lightning",
@@ -274,7 +274,7 @@
"name": "Expanded Digestive System",
"description": "You have been outfitted with three synthetic stomachs and industrial-grade intestines. Not only can you extract much more nutrition from food, but you are highly resistant to foodborne illness, and can sometimes eat rotten food.",
"occupied_bodyparts": [ [ "TORSO", 20 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_dis_acid",
@@ -340,7 +340,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", "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_POWER_SOURCE", "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_evap",
@@ -390,7 +390,7 @@
[ "FOOT_L", 1 ],
[ "FOOT_R", 1 ]
],
- "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ],
+ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ],
"act_cost": 1,
"react_cost": 1,
"time": 2
@@ -948,14 +948,6 @@
"occupied_bodyparts": [ [ "TORSO", 2 ], [ "ARM_L", 1 ], [ "ARM_R", 1 ], [ "LEG_L", 1 ], [ "LEG_R", 1 ], [ "FOOT_L", 1 ], [ "FOOT_R", 1 ] ],
"flags": [ "BIONIC_FAULTY" ]
},
- {
- "id": "bio_storage",
- "type": "bionic",
- "name": "Internal Storage",
- "description": "Space inside your chest cavity has been surgically converted into a storage area. You may carry an extra 2 liters of volume.",
- "occupied_bodyparts": [ [ "TORSO", 32 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
- },
{
"id": "bio_str_enhancer",
"type": "bionic",
@@ -1122,7 +1114,7 @@
"name": "Titanium Skeletal Bracing",
"description": "Titanium bracing has been installed onto your elbows, knees, and spine, making them far better at handling strain. Your carrying capacity is increased by 20 kilograms, or about 44 pounds.",
"occupied_bodyparts": [ [ "TORSO", 8 ], [ "ARM_L", 3 ], [ "ARM_R", 3 ], [ "LEG_L", 3 ], [ "LEG_R", 3 ] ],
- "flags": [ "BIONIC_NPC_USABLE" ]
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
},
{
"id": "bio_shock_absorber",
diff --git a/data/json/construction.json b/data/json/construction.json
index 2aee34a82be62..e3472d26f57a3 100644
--- a/data/json/construction.json
+++ b/data/json/construction.json
@@ -4,7 +4,7 @@
"description": "Deconstruct Furniture",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SCREW", "level": 1 } ] ],
"pre_special": "check_deconstruct",
"post_special": "done_deconstruct"
@@ -14,7 +14,7 @@
"description": "Deconstruct Simple Furniture",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 10,
+ "time": "10 m",
"pre_note": "Certain terrain and furniture can be deconstructed without any tools.",
"pre_flags": "EASY_DECONSTRUCT",
"pre_special": "check_deconstruct",
@@ -25,7 +25,7 @@
"description": "Make crafting spot",
"category": "OTHER",
"required_skills": [ ],
- "time": 0,
+ "time": "0 m",
"pre_note": "Mark a spot for crafting. Crafting tasks next to this tile will automatically use this location instead of attempting to craft in your hands, with the usual crafting speed penalty for working on the ground. Does not prevent using a proper workbench, if available. Deconstruct or smash to remove.",
"pre_special": "check_empty",
"post_terrain": "f_ground_crafting_spot"
@@ -35,7 +35,7 @@
"description": "Spike Pit",
"category": "DIG",
"required_skills": [ [ "survival", 1 ] ],
- "time": 30,
+ "time": "30 m",
"components": [ [ [ "spear_wood", 4 ], [ "pointy_stick", 4 ] ] ],
"pre_terrain": "t_pit",
"post_terrain": "t_pit_spiked"
@@ -45,7 +45,7 @@
"description": "Glass Pit",
"category": "DIG",
"required_skills": [ [ "survival", 1 ] ],
- "time": 30,
+ "time": "30 m",
"components": [ [ [ "glass_shard", 20 ] ] ],
"pre_terrain": "t_pit",
"post_terrain": "t_pit_glass"
@@ -55,7 +55,7 @@
"description": "Chop Tree Trunk Into Planks",
"category": "FARM_WOOD",
"required_skills": [ [ "survival", 2 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ] ],
"pre_terrain": "t_trunk",
"post_terrain": "t_dirt",
@@ -67,9 +67,9 @@
"description": "Build Improvised Shelter",
"category": "CONSTRUCT",
"required_skills": [ [ "survival", 2 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ] ],
- "components": [ [ [ "stick", 12 ], [ "2x4", 6 ] ], [ [ "pine_bough", 24 ], [ "willowbark", 24 ] ] ],
+ "components": [ [ [ "stick", 12 ], [ "2x4", 6 ], [ "wood_panel", 1 ] ], [ [ "pine_bough", 24 ], [ "willowbark", 24 ] ] ],
"pre_terrain": "t_pit_shallow",
"post_terrain": "t_improvised_shelter"
},
@@ -79,7 +79,7 @@
"//": "Door frame not required",
"category": "CONSTRUCT",
"required_skills": [ [ "tailor", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "nail", 4 ], [ "pointy_stick", 2 ], [ "spike", 2 ] ],
@@ -96,7 +96,7 @@
"description": "Build Beaded Curtain",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "wooden_bead", 2000 ] ], [ [ "stick_long", 1 ] ], [ [ "string_36", 20 ] ] ],
"pre_note": "Can be deconstructed without tools.",
@@ -108,9 +108,9 @@
"description": "Build Makeshift Door",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "CUT", "level": 1 } ] ],
- "components": [ [ [ "2x4", 6 ], [ "stick", 6 ] ], [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ] ] ],
+ "components": [ [ [ "2x4", 6 ], [ "stick", 6 ], [ "wood_panel", 1 ] ], [ [ "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"
@@ -121,7 +121,7 @@
"//": "Step 1: door frame",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 12 ] ], [ [ "nail", 24 ] ] ],
"pre_special": "check_empty",
@@ -133,9 +133,9 @@
"//": "Step 2: door",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 12 ] ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 2 ] ], [ [ "wood_panel", 1 ] ], [ [ "nail", 12 ] ] ],
"pre_terrain": "t_door_frame",
"post_terrain": "t_door_c"
},
@@ -145,7 +145,7 @@
"//": "Step 3: peephole",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 15,
+ "time": "15 m",
"qualities": [ [ { "id": "DRILL", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [ [ [ "peephole", 1 ] ] ],
"pre_terrain": "t_door_c",
@@ -157,9 +157,9 @@
"//": "Repair the regular door",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 12 ] ] ],
+ "components": [ [ [ "2x4", 3 ], [ "wood_panel", 1 ] ], [ [ "nail", 12 ] ] ],
"pre_terrain": "t_door_b",
"post_terrain": "t_door_c"
},
@@ -169,9 +169,9 @@
"//": "Repair the peephole door",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 12 ] ] ],
+ "components": [ [ [ "2x4", 3 ], [ "wood_panel", 1 ] ], [ [ "nail", 12 ] ] ],
"pre_terrain": "t_door_b_peep",
"post_terrain": "t_door_c_peep"
},
@@ -181,9 +181,9 @@
"//": "Repair the reinforced door",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 45,
+ "time": "45 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 24 ] ] ],
+ "components": [ [ [ "2x4", 6 ], [ "wood_panel", 1 ] ], [ [ "nail", 24 ] ] ],
"pre_terrain": "t_rdoor_b",
"post_terrain": "t_rdoor_c"
},
@@ -193,9 +193,9 @@
"//": "regular door",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_flags": "BARRICADABLE_DOOR",
"post_terrain": "t_door_boarded"
},
@@ -205,9 +205,9 @@
"//": "peephole door",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_terrain": "t_door_c_peep",
"post_terrain": "t_door_boarded_peep"
},
@@ -217,9 +217,9 @@
"//": "boarded damaged door",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_flags": "BARRICADABLE_DOOR_DAMAGED",
"post_terrain": "t_door_boarded_damaged"
},
@@ -229,9 +229,9 @@
"//": "boarded damaged peephole door",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_terrain": "t_door_b_peep",
"post_terrain": "t_door_boarded_damaged_peep"
},
@@ -241,9 +241,9 @@
"//": "the reinforced doors",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_flags": "BARRICADABLE_DOOR_REINFORCED",
"post_terrain": "t_rdoor_boarded"
},
@@ -253,9 +253,9 @@
"//": "damaged reinforced doors",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_flags": "BARRICADABLE_DOOR_REINFORCED_DAMAGED",
"post_terrain": "t_rdoor_boarded_damaged"
},
@@ -264,9 +264,9 @@
"description": "Reinforce Wood Door",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 90,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 48 ] ] ],
+ "time": "90 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 6 ], [ "wood_panel", 1 ] ], [ [ "2x4", 6 ] ], [ [ "nail", 48 ] ] ],
"pre_flags": "BARRICADABLE_DOOR",
"post_terrain": "t_rdoor_c"
},
@@ -276,7 +276,7 @@
"//": "step 1: door frame",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ],
"components": [ [ [ "spike", 8 ] ], [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ],
"pre_special": "check_empty",
@@ -288,7 +288,7 @@
"//": "Step 2: metal door",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 7 ] ],
- "time": 120,
+ "time": "120 m",
"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",
@@ -300,7 +300,7 @@
"//": "Step 3: peephole",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 25,
+ "time": "25 m",
"qualities": [ [ { "id": "DRILL", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [ [ [ "peephole", 1 ] ] ],
"pre_terrain": "t_door_metal_c",
@@ -312,7 +312,7 @@
"//": "Step 1: window frame",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 75,
+ "time": "75 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 15 ], [ "log", 2 ] ], [ [ "nail", 30 ] ] ],
"pre_special": "check_empty",
@@ -324,7 +324,7 @@
"//": "Step 2: window, no curtains",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 30,
+ "time": "30 m",
"components": [ [ [ "glass_sheet", 1 ] ] ],
"pre_terrain": "t_window_empty",
"post_terrain": "t_window_no_curtains"
@@ -335,7 +335,7 @@
"//": "Step 3: window with curtains",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"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",
@@ -346,7 +346,7 @@
"description": "Clean Broken Window",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 5,
+ "time": "5 m",
"pre_terrain": "t_window_frame",
"post_terrain": "t_window_empty"
},
@@ -356,7 +356,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 5,
+ "time": "5 m",
"components": [ [ [ "duct_tape", 50 ] ] ],
"pre_terrain": "t_window",
"post_terrain": "t_window_taped"
@@ -367,7 +367,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 5,
+ "time": "5 m",
"components": [ [ [ "duct_tape", 50 ] ] ],
"pre_terrain": "t_window_domestic",
"post_terrain": "t_window_domestic_taped"
@@ -378,7 +378,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 5,
+ "time": "5 m",
"components": [ [ [ "duct_tape", 50 ] ] ],
"pre_terrain": "t_window_alarm",
"post_terrain": "t_window_alarm_taped"
@@ -389,7 +389,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 5,
+ "time": "5 m",
"components": [ [ [ "duct_tape", 50 ] ] ],
"pre_terrain": "t_window_no_curtains",
"post_terrain": "t_window_no_curtains_taped"
@@ -400,7 +400,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 2,
+ "time": "2 m",
"qualities": [ [ { "id": "CUT", "level": 1 } ] ],
"pre_terrain": "t_window_taped",
"post_terrain": "t_window"
@@ -411,7 +411,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 2,
+ "time": "2 m",
"qualities": [ [ { "id": "CUT", "level": 1 } ] ],
"pre_terrain": "t_window_domestic_taped",
"post_terrain": "t_window_domestic"
@@ -422,7 +422,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 2,
+ "time": "2 m",
"qualities": [ [ { "id": "CUT", "level": 1 } ] ],
"pre_terrain": "t_window_alarm_taped",
"post_terrain": "t_window_alarm"
@@ -433,7 +433,7 @@
"//": "Need a recipe for each type of window tapable due to how code works",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 2,
+ "time": "2 m",
"qualities": [ [ { "id": "CUT", "level": 1 } ] ],
"pre_terrain": "t_window_no_curtains_taped",
"post_terrain": "t_window_no_curtains"
@@ -444,7 +444,7 @@
"//": "Board up normal window",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_flags": "BARRICADABLE_WINDOW",
@@ -456,7 +456,7 @@
"//": "Board up window with curtains",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_flags": "BARRICADABLE_WINDOW_CURTAINS",
@@ -469,7 +469,7 @@
"//": "Board up empty window",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_terrain": "t_window_empty",
@@ -481,7 +481,7 @@
"//": "Board up window frame only",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_terrain": "t_window_frame",
@@ -493,7 +493,7 @@
"//": "For regular windows",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 40,
+ "time": "40 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 8 ] ], [ [ "nail", 16 ] ] ],
"pre_terrain": "t_window_boarded",
@@ -505,7 +505,7 @@
"//": "For windows with no glass that were barricaded",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 40,
+ "time": "40 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 8 ] ], [ [ "nail", 16 ] ] ],
"pre_terrain": "t_window_boarded_noglass",
@@ -517,7 +517,7 @@
"//": "Armo up regular reinforced window",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "spike", 4 ] ], [ [ "steel_plate", 1 ], [ "sheet_metal", 4 ] ] ],
"pre_terrain": "t_window_reinforced",
@@ -529,7 +529,7 @@
"//": "When underlying window has no glass",
"category": "REINFORCE",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "spike", 4 ] ], [ [ "steel_plate", 1 ], [ "sheet_metal", 4 ] ] ],
"pre_terrain": "t_window_reinforced_noglass",
@@ -540,7 +540,7 @@
"description": "Build Metal Bars",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 60,
+ "time": "60 m",
"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 ] ] ],
@@ -553,7 +553,7 @@
"//": "Step 1: half of a wall in an empty space",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ], [ "survival", 3 ] ],
- "time": 50,
+ "time": "50 m",
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"components": [
[ [ "2x4", 5 ], [ "stick", 10 ] ],
@@ -571,7 +571,7 @@
"//": "Step 2: complete the half made wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ], [ "survival", 3 ] ],
- "time": 50,
+ "time": "50 m",
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"components": [
[ [ "2x4", 5 ], [ "stick", 10 ] ],
@@ -588,7 +588,7 @@
"description": "Repair Wattle-and-Daub Wall",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 2 ], [ "survival", 2 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"components": [
[ [ "2x4", 2 ], [ "stick", 4 ] ],
@@ -606,7 +606,7 @@
"//": "Step 1: half of a wall where a window used to be",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 50,
+ "time": "50 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ],
"pre_terrain": "t_window_empty",
@@ -615,10 +615,10 @@
{
"type": "construction",
"description": "Build Wood Wall",
- "//": "Step 1: half of a wall in an empty space",
+ "//": "Step 1: frame wall in an empty space",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 50,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ],
"pre_special": "check_empty",
@@ -627,12 +627,12 @@
{
"type": "construction",
"description": "Build Wood Wall",
- "//": "Step 2: complete the half made wall",
+ "//": "Step 2: complete the half made wall by putting paneling on it",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 50,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "nail", 20 ] ] ],
"pre_terrain": "t_wall_half",
"post_terrain": "t_wall_wood"
},
@@ -642,9 +642,9 @@
"//": "fix a chip",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 16 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 16 ] ] ],
"pre_terrain": "t_wall_wood_chipped",
"post_terrain": "t_wall_wood"
},
@@ -654,9 +654,9 @@
"//": "fix the broken to chipped",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 32 ] ] ],
+ "components": [ [ [ "2x4", 8 ], [ "wood_panel", 1 ] ], [ [ "nail", 32 ] ] ],
"pre_terrain": "t_wall_wood_broken",
"post_terrain": "t_wall_wood_chipped"
},
@@ -666,7 +666,7 @@
"//": "Step 1: half of a log wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "log", 2 ] ], [ [ "stick", 3 ], [ "2x4", 6 ] ] ],
"pre_terrain": "t_pit_shallow",
@@ -678,7 +678,7 @@
"//": "Step 2: Finish the log wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "log", 2 ] ], [ [ "stick", 3 ], [ "2x4", 6 ] ] ],
"pre_terrain": "t_wall_log_half",
@@ -690,7 +690,7 @@
"//": "Fix the chipped back to normal",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 16 ] ] ],
"pre_terrain": "t_wall_log_chipped",
@@ -702,7 +702,7 @@
"//": "fix broken back to chipped",
"category": "REPAIR",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 50,
+ "time": "50 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 1 ] ], [ [ "2x4", 2 ] ], [ [ "nail", 24 ] ] ],
"pre_terrain": "t_wall_log_broken",
@@ -714,7 +714,7 @@
"//": "Step 1: Build sandbag barricade",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 16,
+ "time": "16 m",
"components": [ [ [ "sandbag", 16 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_special": "check_empty",
@@ -726,7 +726,7 @@
"//": "Step 2: Finish the sandbag wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 20,
+ "time": "20 m",
"components": [ [ [ "sandbag", 20 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_terrain": "f_sandbag_half",
@@ -738,7 +738,7 @@
"//": "Step 1: Build earthbag barricade",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 16,
+ "time": "16 m",
"components": [ [ [ "earthbag", 16 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_special": "check_empty",
@@ -750,7 +750,7 @@
"//": "Step 2: Finish the earthbag wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 20,
+ "time": "20 m",
"components": [ [ [ "earthbag", 20 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_terrain": "f_earthbag_half",
@@ -762,7 +762,7 @@
"//": "Step 1: foundation",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [ { "id": "GLARE", "level": 2 } ],
"tools": [ [ [ "oxy_torch", 10 ], [ "welder", 50 ], [ "welder_crude", 75 ], [ "toolset", 75 ] ] ],
"components": [ [ [ "steel_plate", 2 ] ] ],
@@ -775,7 +775,7 @@
"//": "Step 2: finish wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [ { "id": "GLARE", "level": 2 } ],
"tools": [ [ [ "oxy_torch", 10 ], [ "welder", 50 ], [ "welder_crude", 75 ], [ "toolset", 75 ] ] ],
"components": [ [ [ "steel_plate", 2 ] ] ],
@@ -788,7 +788,7 @@
"//": "Step 1: start wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "brick", 15 ] ], [ [ "mortar_build", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ],
"pre_terrain": "t_dirt",
@@ -800,7 +800,7 @@
"//": "Step 2: finish wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "brick", 15 ] ], [ [ "mortar_build", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ],
"pre_terrain": "t_brick_wall_halfway",
@@ -812,20 +812,53 @@
"//": "Builds a concrete floor from a pit.",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 60,
+ "time": "60 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ],
"components": [ [ [ "concrete", 2 ] ], [ [ "water", 2 ] ] ],
"pre_terrain": "t_pit_shallow",
"post_terrain": "t_concrete"
},
+ {
+ "type": "construction",
+ "description": "Fill Pit With Dirt",
+ "//": "Fills a deep pit with dirt.",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": 40,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "components": [ [ [ "material_soil", 200 ] ] ],
+ "pre_terrain": "t_pit",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Make Woodchip Floor",
+ "//": "Adds wood chippings to a shallowed dirt area to prevent plants growing, or for looks.",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": 40,
+ "components": [ [ [ "splinter", 50 ] ] ],
+ "post_terrain": "t_woodchips"
+ },
+ {
+ "type": "construction",
+ "description": "Build Wooden Floor",
+ "//": "Makes an outside wooden paving, similar to what would be used in patios.",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 1 ] ],
+ "time": 100,
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 14 ] ], [ [ "nail", 28 ] ] ],
+ "post_terrain": "t_floor_noroof"
+ },
{
"type": "construction",
"description": "Build Simple Concrete Wall",
"//": "Step 1: foundation",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 180,
+ "time": "180 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ],
"components": [ [ [ "concrete", 4 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ],
@@ -838,7 +871,7 @@
"//": "Step 2: finish wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 180,
+ "time": "180 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ],
"components": [ [ [ "concrete", 4 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ],
@@ -851,7 +884,7 @@
"//": "Step 1: rebar cage",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ],
"components": [ [ [ "rebar", 16 ] ] ],
"pre_terrain": "t_pit",
@@ -863,7 +896,7 @@
"//": "Step 2: foundation",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 120,
+ "time": "120 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "concrete", 6 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ],
@@ -876,7 +909,7 @@
"//": "Step 3: finish wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 120,
+ "time": "120 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "concrete", 6 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ],
@@ -889,7 +922,7 @@
"//": "Step 1: rebar cage",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ],
"components": [ [ [ "rebar", 16 ] ] ],
"pre_terrain": "t_pit",
@@ -901,7 +934,7 @@
"//": "Step 2: foundation",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 120,
+ "time": "120 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "concrete", 6 ] ], [ [ "2x4", 12 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ],
@@ -914,7 +947,7 @@
"//": "Step 3: finish column",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 120,
+ "time": "120 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "concrete", 6 ] ], [ [ "water", 4 ], [ "water_clean", 4 ] ] ],
@@ -926,7 +959,7 @@
"description": "Build Metal Roof",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [ { "id": "GLARE", "level": 2 } ],
"tools": [ [ [ "oxy_torch", 10 ], [ "welder", 50 ], [ "welder_crude", 75 ], [ "toolset", 75 ] ] ],
"components": [ [ [ "steel_plate", 2 ] ] ],
@@ -940,7 +973,7 @@
"//": "Step 1: rebar cage & supports",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ],
"components": [ [ [ "rebar", 8 ] ], [ [ "2x4", 12 ] ], [ [ "pipe", 4 ] ] ],
"pre_terrain": "t_pit_shallow",
@@ -952,7 +985,7 @@
"//": "Step 2: roof & floor",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 120,
+ "time": "120 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ],
"components": [ [ [ "concrete", 4 ] ], [ [ "water", 4 ] ] ],
@@ -965,7 +998,7 @@
"//": "Step 1: rebar cage & supports",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 180,
+ "time": "180 m",
"qualities": [ [ { "id": "WELD", "level": 2 } ], [ { "id": "GLARE", "level": 2 } ] ],
"components": [ [ [ "rebar", 12 ] ], [ [ "2x4", 12 ] ], [ [ "pipe", 4 ] ] ],
"pre_terrain": "t_pit",
@@ -977,7 +1010,7 @@
"//": "Step 2: start roof & floor",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 180,
+ "time": "180 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "concrete", 6 ] ], [ [ "water", 3 ] ] ],
@@ -990,7 +1023,7 @@
"//": "Step 3: finish roof & floor",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ] ],
- "time": 180,
+ "time": "180 m",
"tools": [ [ [ "con_mix", 50 ] ] ],
"qualities": [ [ { "id": "SMOOTH", "level": 2 } ] ],
"components": [ [ [ "concrete", 6 ] ], [ [ "water", 3 ] ] ],
@@ -1002,7 +1035,7 @@
"description": "Build Palisade Wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ] ],
"components": [
[ [ "log", 3 ] ],
@@ -1024,7 +1057,7 @@
"//": "Step 1: half the wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ], [ "survival", 2 ] ],
- "time": 180,
+ "time": "180 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "rock", 12 ] ] ],
"pre_special": "check_empty",
@@ -1036,7 +1069,7 @@
"//": "Step 2: the full wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 6 ], [ "survival", 2 ] ],
- "time": 180,
+ "time": "180 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "rock", 12 ] ] ],
"pre_terrain": "t_rock_wall_half",
@@ -1048,9 +1081,9 @@
"//": "a thin half-wall used to divide rooms.",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 50,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 20 ] ] ],
+ "time": "50 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 10 ], [ "wood_panel", 1 ] ], [ [ "nail", 20 ] ] ],
"pre_special": "check_empty",
"post_terrain": "t_ponywall"
},
@@ -1059,9 +1092,9 @@
"description": "Build Roof",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 120,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 40 ] ] ],
+ "time": "120 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "2x4", 6 ] ], [ [ "nail", 40 ] ] ],
"pre_note": "Must be supported on at least two sides.",
"pre_special": "check_support",
"post_terrain": "t_floor"
@@ -1071,7 +1104,7 @@
"description": "Build Thatched Roof",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ], [ "survival", 7 ] ],
- "time": 360,
+ "time": "360 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 5 ], [ "stick", 10 ] ], [ [ "straw_pile", 60 ], [ "withered", 60 ] ], [ [ "cordage", 8, "LIST" ] ] ],
"pre_special": "check_support",
@@ -1082,7 +1115,7 @@
"description": "Build Log & Sod Roof",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "log", 2 ] ],
@@ -1099,7 +1132,7 @@
"description": "Build Rope & Pulley System",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ], [ "mechanics", 2 ] ],
- "time": 60,
+ "time": "60 m",
"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",
@@ -1110,7 +1143,7 @@
"description": "Build Palisade Gate",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ] ],
- "time": 120,
+ "time": "120 m",
"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.",
@@ -1122,7 +1155,7 @@
"description": "Build Fence Posts",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ], [ "survival", 0 ] ],
- "time": 15,
+ "time": "15 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ] ],
"pre_flags": "DIGGABLE",
@@ -1133,7 +1166,7 @@
"description": "Build Fence",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 15,
+ "time": "15 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 5 ] ], [ [ "nail", 8 ] ] ],
"pre_terrain": "t_fence_post",
@@ -1144,7 +1177,7 @@
"description": "Build Fence Gate",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ], [ [ "2x4", 5 ] ], [ [ "nail", 12 ] ] ],
"pre_flags": "DIGGABLE",
@@ -1155,7 +1188,7 @@
"description": "Build Rope Fence",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 15,
+ "time": "15 m",
"components": [ [ [ "rope_6", 2 ] ] ],
"pre_terrain": "t_fence_post",
"post_terrain": "t_fence_rope"
@@ -1165,7 +1198,7 @@
"description": "Build Wire Fence",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 15,
+ "time": "15 m",
"components": [ [ [ "wire", 2 ] ] ],
"pre_terrain": "t_fence_post",
"post_terrain": "t_fence_wire"
@@ -1175,7 +1208,7 @@
"description": "Build Barbed Wire Fence",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 15,
+ "time": "15 m",
"components": [ [ [ "wire_barbed", 2 ] ] ],
"pre_terrain": "t_fence_post",
"post_terrain": "t_fence_barbed"
@@ -1186,7 +1219,7 @@
"//": "Step 1: fence posts",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "pipe", 6 ] ], [ [ "scrap", 8 ] ] ],
"pre_flags": "DIGGABLE",
@@ -1198,7 +1231,7 @@
"//": "Step 2: chainlink",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 120,
+ "time": "120 m",
"components": [ [ [ "wire", 20 ] ] ],
"pre_terrain": "t_chainfence_posts",
"post_terrain": "t_chainfence"
@@ -1208,7 +1241,7 @@
"description": "Build Chainlink Gate",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 150,
+ "time": "150 m",
"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",
@@ -1220,7 +1253,7 @@
"//": "Step 1: 2x4 stud frame",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 5 ] ], [ [ "nail", 20 ] ] ],
"pre_flags": "DIGGABLE",
@@ -1232,7 +1265,7 @@
"//": "Step 2: chickenwire",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"components": [ [ [ "wire", 10 ] ] ],
"pre_terrain": "t_chickenwire_fence_post",
"post_terrain": "t_chickenwire_fence"
@@ -1242,7 +1275,7 @@
"description": "Build Chickenwire Gate",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 45,
+ "time": "45 m",
"components": [ [ [ "wire", 10 ] ], [ [ "2x4", 5 ] ], [ [ "nail", 20 ] ] ],
"pre_note": "Needs to be supported on both sides by fencing, walls, etc.",
"pre_special": "check_support",
@@ -1253,7 +1286,7 @@
"description": "Seal Crate",
"category": "FURN",
"required_skills": [ [ "mechanics", 0 ] ],
- "time": 10,
+ "time": "10 m",
"//": "You can re-use the lid and most of the nails",
"components": [ [ [ "nail", 6 ] ] ],
"qualities": [ [ { "id": "HAMMER", "level": 1 } ] ],
@@ -1265,9 +1298,9 @@
"description": "Build Crate",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 45,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 8 ] ], [ [ "nail", 24 ] ] ],
+ "time": "45 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "wood_sheet", 2 ], [ "wood_panel", 4 ] ], [ [ "2x4", 4 ] ], [ [ "nail", 24 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_crate_o"
},
@@ -1276,10 +1309,11 @@
"description": "Build Coffin",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 60,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
+ "time": "60 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
"components": [
- [ [ "2x4", 12 ] ],
+ [ [ "2x4", 6 ] ],
+ [ [ "wood_panel", 4 ], [ "wood_sheet", 2 ] ],
[ [ "sheet", 2 ], [ "blanket", 1 ], [ "down_blanket", 1 ], [ "fur_blanket", 1 ] ],
[ [ "nail", 24 ] ]
],
@@ -1291,7 +1325,7 @@
"description": "Seal Coffin",
"category": "FURN",
"required_skills": [ [ "mechanics", 0 ] ],
- "time": 10,
+ "time": "10 m",
"components": [ [ [ "nail", 6 ] ] ],
"qualities": [ [ { "id": "HAMMER", "level": 1 } ] ],
"pre_terrain": "f_coffin_o",
@@ -1302,7 +1336,7 @@
"description": "Dig Grave and Bury Sealed Coffin",
"category": "DIG",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 1 } ], [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "rock", 20 ], [ "2x4", 2 ] ] ],
"pre_flags": "DIGGABLE",
@@ -1315,9 +1349,9 @@
"description": "Build Bulletin Board",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
- "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_bulletin"
},
@@ -1326,9 +1360,9 @@
"description": "Build Dresser",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
- "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ],
+ "components": [ [ [ "2x4", 4 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_dresser"
},
@@ -1337,9 +1371,9 @@
"description": "Build Bookcase",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
- "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 16 ] ] ],
+ "components": [ [ [ "2x4", 6 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "nail", 16 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_bookcase"
},
@@ -1348,7 +1382,7 @@
"description": "Build Locker",
"category": "FURN",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [ [ [ "sheet_metal", 2 ] ], [ [ "pipe", 8 ] ] ],
"pre_special": "check_empty",
@@ -1359,7 +1393,7 @@
"description": "Build Metal Rack",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [ [ [ "pipe", 12 ] ], [ [ "sheet_metal", 2 ] ] ],
"pre_special": "check_empty",
@@ -1370,7 +1404,7 @@
"description": "Build Coat Rack",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 25,
+ "time": "25 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 3 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
@@ -1381,9 +1415,9 @@
"description": "Build Cupboard",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 20,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 8 ] ] ],
+ "time": "20 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 3 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_cupboard"
},
@@ -1392,9 +1426,9 @@
"description": "Build Counter",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
+ "components": [ [ [ "2x4", 2 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_counter"
},
@@ -1403,9 +1437,9 @@
"description": "Build Table",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
- "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
+ "components": [ [ [ "2x4", 4 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_table"
},
@@ -1414,7 +1448,7 @@
"description": "Place Table",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 1,
+ "time": "1 m",
"components": [ [ [ "w_table", 1 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_table"
@@ -1424,7 +1458,7 @@
"description": "Build Workbench",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 60,
+ "time": "60 m",
"using": [ [ "welding_standard", 5 ] ],
"components": [ [ [ "pipe", 8 ] ], [ [ "sheet_metal", 2 ] ], [ [ "sheet_metal_small", 4 ] ] ],
"pre_special": "check_empty",
@@ -1435,7 +1469,7 @@
"description": "Place Workbench",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 1,
+ "time": "1 m",
"components": [ [ [ "workbench", 1 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_workbench"
@@ -1445,7 +1479,7 @@
"description": "Build Chair",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
@@ -1456,7 +1490,7 @@
"description": "Build Stool",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 25,
+ "time": "25 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_special": "check_empty",
@@ -1467,7 +1501,7 @@
"description": "Build Bench",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 4 ] ], [ [ "nail", 10 ] ] ],
"pre_special": "check_empty",
@@ -1478,7 +1512,7 @@
"description": "Build Makeshift Bed",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 45,
+ "time": "45 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "2x4", 4 ] ],
@@ -1493,7 +1527,7 @@
"description": "Build Straw Bed",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"components": [ [ [ "2x4", 4 ] ], [ [ "straw_pile", 8 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_special": "check_empty",
@@ -1501,25 +1535,42 @@
},
{
"type": "construction",
- "description": "Build Bed",
+ "description": "Build Bed from Scratch",
"category": "FURN",
- "required_skills": [ [ "fabrication", 4 ], [ "tailor", 4 ] ],
- "time": 60,
+ "required_skills": [ [ "fabrication", 4 ] ],
+ "time": "60 m",
"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 ] ]
- ],
+ "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 10 ] ], [ [ "mattress", 1 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_bed"
},
+ {
+ "type": "construction",
+ "description": "Build Bed Frame",
+ "category": "FURN",
+ "required_skills": [ [ "fabrication", 4 ] ],
+ "time": 55,
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
+ "components": [ [ [ "2x4", 12 ] ], [ [ "nail", 10 ] ] ],
+ "pre_special": "check_empty",
+ "post_terrain": "f_bed_frame"
+ },
+ {
+ "type": "construction",
+ "description": "Add Mattress to Bed Frame",
+ "category": "FURN",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": 5,
+ "components": [ [ [ "mattress", 1 ] ] ],
+ "pre_terrain": "f_bed_frame",
+ "post_terrain": "f_bed"
+ },
{
"type": "construction",
"description": "Build Armchair",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ], [ "tailor", 3 ] ],
- "time": 45,
+ "time": "45 m",
"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",
@@ -1530,7 +1581,7 @@
"description": "Build Sofa",
"category": "FURN",
"required_skills": [ [ "fabrication", 4 ], [ "tailor", 3 ] ],
- "time": 60,
+ "time": "60 m",
"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",
@@ -1541,9 +1592,9 @@
"description": "Build Sign",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 20,
+ "time": "20 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
- "components": [ [ [ "2x4", 3 ] ], [ [ "nail", 6 ] ] ],
+ "components": [ [ [ "2x4", 1 ], [ "wood_panel", 1 ] ], [ [ "2x4", 2 ] ], [ [ "nail", 6 ] ] ],
"pre_special": "check_empty",
"post_terrain": "f_sign"
},
@@ -1552,7 +1603,7 @@
"description": "Build Stone Fireplace",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "rock", 40 ] ] ],
"pre_special": "check_empty",
@@ -1563,7 +1614,7 @@
"description": "Build Wood Stove",
"category": "FURN",
"required_skills": [ [ "fabrication", 5 ], [ "mechanics", 3 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "SAW_M", "level": 1 } ] ],
"components": [ [ [ "metal_tank", 1 ] ], [ [ "pipe", 1 ] ] ],
"pre_special": "check_empty",
@@ -1574,7 +1625,7 @@
"description": "Build Fermenting Vat",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ], [ "cooking", 3 ] ],
- "time": 90,
+ "time": "90 m",
"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",
@@ -1585,7 +1636,7 @@
"description": "Build Wooden Keg",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ], [ "cooking", 2 ] ],
- "time": 120,
+ "time": "120 m",
"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",
@@ -1597,7 +1648,7 @@
"//": "a freestanding metal tank, useful for holding liquids",
"category": "FURN",
"required_skills": [ [ "fabrication", 2 ], [ "cooking", 1 ] ],
- "time": 180,
+ "time": "180 m",
"qualities": [
[ { "id": "HAMMER", "level": 2 } ],
[ { "id": "SAW_M", "level": 1 } ],
@@ -1613,7 +1664,7 @@
"description": "Place Forge",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 1,
+ "time": "1 m",
"components": [ [ [ "char_forge", 1 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_special": "check_empty",
@@ -1624,7 +1675,7 @@
"description": "Place Still",
"category": "FURN",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 1,
+ "time": "1 m",
"components": [ [ [ "still", 1 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_special": "check_empty",
@@ -1635,7 +1686,7 @@
"description": "Build Water Well",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ], [ "survival", 4 ] ],
- "time": 480,
+ "time": "480 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "rock", 40 ] ], [ [ "2x4", 4 ] ], [ [ "nail", 8 ] ] ],
"pre_terrain": "t_pit",
@@ -1646,18 +1697,156 @@
"description": "Build Water Well",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ], [ "mechanics", 2 ] ],
- "time": 180,
+ "time": "180 m",
"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": "Place Hay Bale",
+ "category": "FURN",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": "10 m",
+ "components": [ [ [ "straw_pile", 40 ], [ "withered", 40 ] ], [ [ "rope_30", 1 ], [ "rope_makeshift_30", 1 ], [ "vine_30", 1 ] ] ],
+ "pre_special": "check_empty",
+ "post_terrain": "f_hay"
+ },
+ {
+ "type": "construction",
+ "description": "Build Desk",
+ "category": "FURN",
+ "required_skills": [ [ "fabrication", 4 ] ],
+ "time": "90 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ], [ { "id": "CUT", "level": 1 } ] ],
+ "components": [ [ [ "2x4", 8 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "nail", 24 ] ] ],
+ "pre_special": "check_empty",
+ "post_terrain": "f_desk"
+ },
+ {
+ "type": "construction",
+ "description": "Build Wardrobe",
+ "category": "FURN",
+ "required_skills": [ [ "fabrication", 4 ] ],
+ "time": "60 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ], [ { "id": "SAW_M", "level": 1 } ] ],
+ "components": [ [ [ "2x4", 10 ] ], [ [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ], [ [ "nail", 24 ] ], [ [ "pipe", 2 ] ] ],
+ "pre_special": "check_empty",
+ "post_terrain": "f_wardrobe"
+ },
+ {
+ "type": "construction",
+ "description": "Paint Grass White",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "40 m",
+ "tools": [ [ "paint_brush" ] ],
+ "components": [ [ [ "w_paint", 25 ] ] ],
+ "pre_terrain": "t_grass",
+ "post_terrain": "t_grass_white"
+ },
+ {
+ "type": "construction",
+ "description": "Paint Grass White",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "40 m",
+ "tools": [ [ "paint_brush" ] ],
+ "components": [ [ [ "w_paint", 25 ] ] ],
+ "pre_terrain": "t_grass_dead",
+ "post_terrain": "t_grass_white"
+ },
+ {
+ "type": "construction",
+ "description": "Paint Grass White",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "40 m",
+ "tools": [ [ "paint_brush" ] ],
+ "components": [ [ [ "w_paint", 25 ] ] ],
+ "pre_terrain": "t_grass_golf",
+ "post_terrain": "t_grass_white"
+ },
+ {
+ "type": "construction",
+ "description": "Paint Pavement Yellow",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "40 m",
+ "tools": [ [ "paint_brush" ] ],
+ "components": [ [ [ "y_paint", 25 ] ] ],
+ "pre_terrain": "t_pavement",
+ "post_terrain": "t_pavement_y"
+ },
+ {
+ "type": "construction",
+ "description": "Paint Pavement Yellow",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "40 m",
+ "tools": [ [ "paint_brush" ] ],
+ "components": [ [ [ "y_paint", 25 ] ] ],
+ "pre_terrain": "t_pavement_bg_dp",
+ "post_terrain": "t_pavement_y_bg_dp"
+ },
+ {
+ "type": "construction",
+ "description": "Take Paint Off Pavement",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "80 m",
+ "tools": [ [ "chipper" ] ],
+ "pre_terrain": "t_pavement_y",
+ "post_terrain": "t_pavement"
+ },
+ {
+ "type": "construction",
+ "description": "Take Paint Off Pavement",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "80 m",
+ "tools": [ [ "chipper" ] ],
+ "pre_terrain": "t_pavement_y_bg_dp",
+ "post_terrain": "t_pavement_bg_dp"
+ },
+ {
+ "type": "construction",
+ "description": "Build Wooden Railing",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 2 ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 2 ] ], [ [ "nail", 6 ] ], [ [ "steel_chunk", 1 ], [ "scrap", 5 ] ] ],
+ "pre_terrain": "t_floor",
+ "post_terrain": "t_railing"
+ },
+ {
+ "type": "construction",
+ "description": "Cover Manhole",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "mechanics", 0 ] ],
+ "time": "1 m",
+ "components": [ [ [ "manhole_cover", 1 ] ] ],
+ "pre_terrain": "t_manhole",
+ "post_terrain": "t_manhole_cover"
+ },
+ {
+ "type": "construction",
+ "description": "Remove Wax From Floor",
+ "category": "DECORATE",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "80 m",
+ "tools": [ [ "chipper" ] ],
+ "pre_terrain": "t_floor_waxed_y",
+ "post_terrain": "t_floor"
+ },
{
"type": "construction",
"description": "Paint Wall Red",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 40,
+ "time": "40 m",
"tools": [ [ "paint_brush" ] ],
"components": [ [ [ "r_paint", 25 ] ] ],
"pre_terrain": "t_wall",
@@ -1668,7 +1857,7 @@
"description": "Paint Wall Blue",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 40,
+ "time": "40 m",
"tools": [ [ "paint_brush" ] ],
"components": [ [ [ "b_paint", 25 ] ] ],
"pre_terrain": "t_wall",
@@ -1679,7 +1868,7 @@
"description": "Paint Wall white",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 40,
+ "time": "40 m",
"tools": [ [ "paint_brush" ] ],
"components": [ [ [ "w_paint", 25 ] ] ],
"pre_terrain": "t_wall",
@@ -1690,7 +1879,7 @@
"description": "Paint Wall Green",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 40,
+ "time": "40 m",
"tools": [ [ "paint_brush" ] ],
"components": [ [ [ "g_paint", 25 ] ] ],
"pre_terrain": "t_wall",
@@ -1701,7 +1890,7 @@
"description": "Paint Wall Purple",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 40,
+ "time": "40 m",
"tools": [ [ "paint_brush" ] ],
"components": [ [ [ "p_paint", 25 ] ] ],
"pre_terrain": "t_wall",
@@ -1712,7 +1901,7 @@
"description": "Paint Wall Yellow",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 40,
+ "time": "40 m",
"tools": [ [ "paint_brush" ] ],
"components": [ [ [ "y_paint", 25 ] ] ],
"pre_terrain": "t_wall",
@@ -1724,7 +1913,7 @@
"//": "For vertical walls",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 80,
+ "time": "80 m",
"tools": [ [ "chipper" ] ],
"pre_flags": "CHIP",
"post_terrain": "t_wall"
@@ -1734,7 +1923,7 @@
"description": "Remove Carpet",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"pre_flags": "RUG",
"post_terrain": "t_floor"
@@ -1744,7 +1933,7 @@
"description": "Carpet Floor Red",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "nail", 5 ] ], [ [ "r_carpet", 1 ] ] ],
"pre_terrain": "t_floor",
@@ -1755,7 +1944,7 @@
"description": "Carpet Floor Purple",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "nail", 5 ] ], [ [ "p_carpet", 1 ] ] ],
"pre_terrain": "t_floor",
@@ -1766,7 +1955,7 @@
"description": "Carpet Floor Yellow",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "nail", 5 ] ], [ [ "y_carpet", 1 ] ] ],
"pre_terrain": "t_floor",
@@ -1777,7 +1966,7 @@
"description": "Carpet Floor Green",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "nail", 5 ] ], [ [ "g_carpet", 1 ] ] ],
"pre_terrain": "t_floor",
@@ -1788,7 +1977,7 @@
"description": "Wax Floor",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"tools": [ [ [ "mop", -1 ], [ "paint_brush", -1 ] ], [ [ "surface_heat", 2, "LIST" ] ] ],
"components": [ [ [ "wax", 5 ] ] ],
"pre_terrain": "t_floor",
@@ -1799,7 +1988,7 @@
"description": "Remove Wax From Floor",
"category": "DECORATE",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 80,
+ "time": "80 m",
"tools": [ [ "chipper" ] ],
"pre_terrain": "t_floor_waxed",
"post_terrain": "t_floor"
@@ -1809,7 +1998,7 @@
"description": "Dig Downstair",
"category": "DIG",
"required_skills": [ [ "fabrication", 5 ], [ "survival", 3 ] ],
- "time": 420,
+ "time": "420 m",
"qualities": [
[ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
[ { "id": "HAMMER", "level": 2 } ],
@@ -1825,7 +2014,7 @@
"description": "Mine Downstair",
"category": "DIG",
"required_skills": [ [ "fabrication", 6 ], [ "survival", 4 ] ],
- "time": 480,
+ "time": "480 m",
"qualities": [
[ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
[ { "id": "HAMMER", "level": 2 } ],
@@ -1842,7 +2031,7 @@
"description": "Mine Upstair",
"category": "DIG",
"required_skills": [ [ "fabrication", 6 ], [ "survival", 4 ] ],
- "time": 480,
+ "time": "480 m",
"qualities": [
[ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
[ { "id": "HAMMER", "level": 2 } ],
@@ -1874,11 +2063,11 @@
{
"type": "construction",
"description": "Start Vehicle Construction",
- "//": "Rest of vehicle construction done in the vehicle construction menu",
+ "//": "no components required, they are filled in at runtime based on the vehicle parts that can be used to start a vehicle",
"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",
+ "time": "10 m",
+ "//2": "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
@@ -1888,7 +2077,7 @@
"description": "Build Road Barricade",
"category": "OTHER",
"required_skills": [ [ "fabrication", 1 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "HAMMER", "level": 1 } ] ],
"components": [ [ [ "2x4", 6 ] ], [ [ "nail", 12 ] ] ],
"pre_special": "check_empty",
@@ -1900,7 +2089,7 @@
"//": "Set up pontoon bridge",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 80,
+ "time": "80 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ],
"components": [
[ [ "2x4", 8 ] ],
@@ -1916,10 +2105,11 @@
"//": "Set up River bridge",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 80,
+ "time": "80 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ],
"components": [
- [ [ "2x4", 8 ] ],
+ [ [ "2x4", 4 ] ],
+ [ [ "2x4", 4 ], [ "wood_sheet", 1 ], [ "wood_panel", 2 ] ],
[ [ "rope_makeshift_30", 1 ], [ "rope_30", 1 ], [ "vine_30", 1 ] ],
[ [ "55gal_drum", 2 ], [ "30gal_drum", 2 ], [ "wooden_barrel", 2 ] ]
],
@@ -1932,7 +2122,7 @@
"//": "Set up dock",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 80,
+ "time": "80 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ],
"components": [ [ [ "2x4", 6 ] ], [ [ "log", 1 ] ], [ [ "nail", 12 ] ] ],
"pre_terrain": "t_water_moving_sh",
@@ -1944,7 +2134,7 @@
"//": "Set up Water Mill",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 40,
+ "time": "40 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "water_mill", 1 ] ] ],
"pre_terrain": "t_water_moving_sh",
@@ -1956,7 +2146,7 @@
"//": "Set up Wind Mill",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ] ],
- "time": 40,
+ "time": "40 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"components": [ [ [ "wind_mill", 1 ] ] ],
"pre_terrain": "t_pit_shallow",
@@ -1968,7 +2158,7 @@
"//": "Set up shallow bridge",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 80,
+ "time": "80 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ],
"components": [ [ [ "2x4", 6 ] ], [ [ "log", 1 ] ], [ [ "nail", 12 ] ] ],
"pre_terrain": "t_water_sh",
@@ -1979,7 +2169,7 @@
"description": "Build Planter",
"catergory": "FURN",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 25,
+ "time": "25 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ] ],
"components": [ [ [ "2x4", 12 ] ], [ [ "nail", 36 ] ], [ [ "pebble", 200 ] ], [ [ "material_soil", 75 ] ] ],
"post_terrain": "f_planter"
@@ -1989,7 +2179,7 @@
"description": "Cut Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"byproducts": [ { "item": "straw_pile" } ],
"pre_terrain": "t_grass_long",
"post_terrain": "t_grass",
@@ -2000,7 +2190,7 @@
"description": "Cut Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"byproducts": [ { "item": "straw_pile", "count": [ 1, 2 ] } ],
"pre_terrain": "t_grass_tall",
"post_terrain": "t_grass",
@@ -2011,7 +2201,7 @@
"description": "Remove Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"byproducts": [ { "item": "straw_pile", "count": [ 0, 1 ] } ],
"pre_terrain": "t_grass",
@@ -2022,7 +2212,7 @@
"description": "Remove Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"byproducts": [ { "item": "straw_pile" } ],
"pre_terrain": "t_grass_long",
@@ -2033,7 +2223,7 @@
"description": "Remove Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"byproducts": [ { "item": "straw_pile", "count": [ 1, 2 ] } ],
"pre_terrain": "t_grass_tall",
@@ -2044,7 +2234,7 @@
"description": "Remove Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"byproducts": [ { "item": "straw_pile", "count": [ 0, 1 ] } ],
"pre_terrain": "t_grass_dead",
@@ -2055,7 +2245,7 @@
"description": "Remove Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"pre_terrain": "t_grass_golf",
"post_terrain": "t_dirt"
@@ -2065,7 +2255,7 @@
"description": "Remove Grass",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 6,
+ "time": "6 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"pre_terrain": "t_grass_white",
"post_terrain": "t_dirt"
@@ -2075,7 +2265,7 @@
"description": "Extract Sand",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"byproducts": [ { "item": "material_sand", "charges": [ 300, 600 ] } ],
"pre_terrain": "t_sand",
@@ -2086,7 +2276,7 @@
"description": "Extract Clay",
"category": "OTHER",
"required_skills": [ [ "survival", 0 ] ],
- "time": 30,
+ "time": "30 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"byproducts": [ { "item": "clay_lump", "count": [ 6, 12 ] } ],
"pre_terrain": "t_clay",
@@ -2097,7 +2287,7 @@
"description": "Build Charcoal Kiln",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "rock", 40 ] ] ],
"pre_note": "Can be deconstructed without tools.",
@@ -2109,7 +2299,7 @@
"description": "Build Metal Charcoal Kiln",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ] ],
- "time": 60,
+ "time": "60 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ],
"components": [ [ [ "metal_tank", 4 ] ], [ [ "pipe", 4 ] ] ],
"pre_special": "check_empty",
@@ -2120,7 +2310,7 @@
"description": "Build Smoking Rack",
"category": "FURN",
"required_skills": [ [ "fabrication", 3 ], [ "cooking", 2 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [
[ { "id": "DIG", "level": 1 } ],
[ { "id": "HAMMER", "level": 2 } ],
@@ -2137,7 +2327,7 @@
"description": "Build Rock Forge",
"category": "FURN",
"required_skills": [ [ "fabrication", 5 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "rock", 40 ] ] ],
"pre_note": "Can be deconstructed without tools.",
@@ -2149,7 +2339,7 @@
"description": "Build Clay Kiln",
"category": "FURN",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 150,
+ "time": "150 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "rock", 40 ] ],
@@ -2166,7 +2356,7 @@
"//": "Step 1 : metal frame",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 7 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ],
"components": [ [ [ "spike", 8 ] ], [ [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ],
"pre_special": "check_empty",
@@ -2178,7 +2368,7 @@
"//": "Step 2 : Reinforced Glass",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 8 ] ],
- "time": 150,
+ "time": "150 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ],
"components": [ [ [ "reinforced_glass_sheet", 1 ] ] ],
"pre_terrain": "t_m_frame",
@@ -2190,7 +2380,7 @@
"//": "Step 3 : Metal shutters",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 8 ] ],
- "time": 150,
+ "time": "150 m",
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_M", "level": 1 } ] ],
"components": [ [ [ "steel_plate", 2 ] ] ],
"pre_terrain": "t_reinforced_glass",
@@ -2201,7 +2391,7 @@
"description": "Build Root Cellar",
"category": "CONSTRUCT",
"required_skills": [ [ "survival", 4 ], [ "fabrication", 4 ] ],
- "time": 130,
+ "time": "130 m",
"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.",
@@ -2213,7 +2403,7 @@
"description": "Mark firewood source",
"category": "OTHER",
"required_skills": [ ],
- "time": 0,
+ "time": "0 m",
"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"
@@ -2223,7 +2413,7 @@
"description": "Mark practice target",
"category": "OTHER",
"required_skills": [ ],
- "time": 0,
+ "time": "0 m",
"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"
@@ -2233,7 +2423,7 @@
"description": "Build Butchering Rack",
"category": "FURN",
"required_skills": [ [ "fabrication", 1 ], [ "survival", 3 ] ],
- "time": 45,
+ "time": "45 m",
"qualities": [ [ { "id": "CUT", "level": 1 } ], [ { "id": "SAW_W", "level": 1 } ] ],
"components": [
[ [ "stick_long", 6 ] ],
@@ -2249,7 +2439,7 @@
"description": "Build Junk Metal Barrier",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [
[ { "id": "DIG", "level": 1 } ],
[ { "id": "HAMMER", "level": 1 } ],
@@ -2269,7 +2459,7 @@
"description": "Reinforce Junk Metal Wall using bolts",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [
[ { "id": "SAW_M", "level": 1 } ],
[ { "id": "HAMMER", "level": 1 } ],
@@ -2296,7 +2486,7 @@
"description": "Reinforce Junk Metal Wall using spot-welds",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 90,
+ "time": "90 m",
"qualities": [ [ { "id": "SAW_M", "level": 1 } ] ],
"using": [ [ "welding_standard", 2 ] ],
"components": [
@@ -2318,7 +2508,7 @@
"description": "Build Junk Metal Floor",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 4 ] ],
- "time": 120,
+ "time": "120 m",
"qualities": [
[ { "id": "SAW_M", "level": 1 } ],
[ { "id": "HAMMER", "level": 1 } ],
@@ -2345,18 +2535,34 @@
"description": "Build Pillow Fort",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 0 ] ],
- "time": 15,
+ "time": "15 m",
"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"
},
+ {
+ "type": "construction",
+ "description": "Build Cardboard Fort",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 0 ] ],
+ "time": "15 m",
+ "pre_special": "check_empty",
+ "components": [
+ [ [ "pillow", 4 ], [ "down_pillow", 4 ] ],
+ [ [ "down_blanket", 2 ], [ "blanket", 2 ], [ "fur_blanket", 2 ] ],
+ [ [ "box_large", 1 ] ],
+ [ [ "plastic_sheet", 1 ] ],
+ [ [ "duct_tape", 4 ] ]
+ ],
+ "post_terrain": "f_cardboard_fort"
+ },
{
"type": "construction",
"description": "Build Fire Ring",
"category": "FURN",
"required_skills": [ [ "survival", 0 ] ],
- "time": 15,
+ "time": "15 m",
"components": [ [ [ "rock", 20 ] ] ],
"pre_note": "Can be deconstructed without tools.",
"pre_terrain": "t_pit_shallow",
@@ -2367,7 +2573,7 @@
"description": "Build Rammed Earth Wall",
"category": "CONSTRUCT",
"required_skills": [ [ "fabrication", 2 ], [ "survival", 2 ] ],
- "time": 360,
+ "time": "360 m",
"qualities": [ { "id": "HAMMER", "level": 2 } ],
"tools": [ [ "frame_wood_light" ], [ "log" ] ],
"components": [
@@ -2377,5 +2583,119 @@
],
"pre_terrain": "t_fence_post",
"post_terrain": "t_wall_rammed_earth"
+ },
+ {
+ "type": "construction",
+ "description": "Build Counter Gate",
+ "category": "FURN",
+ "required_skills": [ [ "fabrication", 1 ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 10 ] ] ],
+ "pre_special": "check_empty",
+ "post_terrain": "f_counter_gate_c"
+ },
+ {
+ "type": "construction",
+ "description": "Build Split Rail Fence Gate",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ],
+ "time": "30 m",
+ "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_splitrail_fencegate_c"
+ },
+ {
+ "type": "construction",
+ "description": "Build Privacy Fence Gate",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
+ "components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ], [ [ "2x4", 8 ] ], [ [ "nail", 20 ] ] ],
+ "pre_flags": "DIGGABLE",
+ "post_terrain": "t_privacy_fencegate_c"
+ },
+ {
+ "type": "construction",
+ "description": "Build Split Rail Fence",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
+ "components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ], [ [ "2x4", 4 ] ], [ [ "nail", 20 ] ] ],
+ "pre_flags": "DIGGABLE",
+ "post_terrain": "t_splitrail_fence"
+ },
+ {
+ "type": "construction",
+ "description": "Build Privacy Fence",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ],
+ "time": "30 m",
+ "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "DIG", "level": 2 } ] ],
+ "components": [ [ [ "pointy_stick", 2 ], [ "spear_wood", 2 ] ], [ [ "2x4", 8 ] ], [ [ "nail", 20 ] ] ],
+ "pre_flags": "DIGGABLE",
+ "post_terrain": "t_privacy_fence"
+ },
+ {
+ "type": "construction",
+ "description": "Build Brick Wall from Adobe",
+ "//": "Step 1: start wall",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 3 ] ],
+ "time": 120,
+ "qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ],
+ "components": [
+ [ [ "adobe_brick", 10 ] ],
+ [ [ "mortar_adobe", 1 ] ],
+ [ [ "water", 1 ], [ "water_clean", 1 ] ],
+ [ [ "material_sand", 20 ] ]
+ ],
+ "pre_terrain": "t_dirt",
+ "post_terrain": "t_adobe_brick_wall_halfway"
+ },
+ {
+ "type": "construction",
+ "description": "Build Brick Wall from Adobe",
+ "//": "Step 2: finish wall",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 3 ] ],
+ "time": 120,
+ "qualities": [ [ { "id": "SMOOTH", "level": 1 } ] ],
+ "components": [
+ [ [ "adobe_brick", 10 ] ],
+ [ [ "mortar_adobe", 1 ] ],
+ [ [ "water", 1 ], [ "water_clean", 1 ] ],
+ [ [ "material_sand", 20 ] ]
+ ],
+ "pre_terrain": "t_adobe_brick_wall_halfway",
+ "post_terrain": "t_adobe_brick_wall"
+ },
+ {
+ "type": "construction",
+ "skill": "survival",
+ "description": "Build Pine Lean-To",
+ "category": "CONSTRUCT",
+ "difficulty": 2,
+ "time": "90m",
+ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
+ "components": [ [ [ "stick", 6 ], [ "2x4", 3 ] ] ],
+ "pre_terrain": "t_tree_pine",
+ "post_terrain": "t_leanto"
+ },
+ {
+ "type": "construction",
+ "skill": "survival",
+ "description": "Build Tarp Lean-To",
+ "category": "CONSTRUCT",
+ "difficulty": 1,
+ "time": "50m",
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "components": [ [ [ "pointy_stick", 4 ] ], [ [ "string_36", 1 ], [ "string_6", 4 ] ], [ [ "tarp", 1 ], [ "plastic_sheet", 1 ] ] ],
+ "pre_note": "Can be deconstructed without tools.",
+ "pre_flags": [ "DIGGABLE", "FLAT" ],
+ "post_terrain": "t_tarptent"
}
]
diff --git a/data/json/emit.json b/data/json/emit.json
index d8e96946b8ef7..42db5caf96584 100644
--- a/data/json/emit.json
+++ b/data/json/emit.json
@@ -90,6 +90,20 @@
"field": "fd_electricity",
"qty": 40
},
+ {
+ "id": "emit_cold_air2_stream",
+ "type": "emit",
+ "//": "Medium cold air emitter",
+ "field": "fd_cold_air2",
+ "qty": 50
+ },
+ {
+ "id": "emit_cold_air2_blast",
+ "type": "emit",
+ "//": "Large cold air emitter",
+ "field": "fd_cold_air2",
+ "qty": 100
+ },
{
"id": "emit_hot_air2_stream",
"type": "emit",
diff --git a/data/json/flags.json b/data/json/flags.json
index fe5fc55bf7ea3..5e4be1c36c27e 100644
--- a/data/json/flags.json
+++ b/data/json/flags.json
@@ -119,6 +119,11 @@
"context": [ "ARMOR", "TOOL_ARMOR" ],
"info": "This gear completely protects you from electric discharges."
},
+ {
+ "id": "ETHEREAL_ITEM",
+ "type": "json_flag",
+ "info": "This item disappears as soon as its timer runs out whether it is food or not."
+ },
{
"id": "ONLY_ONE",
"type": "json_flag",
@@ -314,6 +319,12 @@
"info": "This clothing partially protects you from radiation.",
"conflicts": [ "RAD_PROOF" ]
},
+ {
+ "id": "REQUIRES_BALANCE",
+ "type": "json_flag",
+ "context": [ "ARMOR", "TOOL_ARMOR" ],
+ "info": "This gear requires careful balance to use. Being hit while wearing it could make you fall down."
+ },
{
"id": "TWO_WAY_RADIO",
"type": "json_flag",
diff --git a/data/json/furniture.json b/data/json/furniture.json
index 8c47b535b5294..8ed6dcf9e10c9 100644
--- a/data/json/furniture.json
+++ b/data/json/furniture.json
@@ -10,13 +10,14 @@
"comfort": 2,
"floor_bedding_warmth": 100,
"required_str": 6,
- "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "ORGANIC", "MOUNTABLE", "SHORT" ],
+ "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "ORGANIC", "MOUNTABLE", "SHORT", "EASY_DECONSTRUCT" ],
+ "deconstruct": { "items": [ { "item": "straw_pile", "count": 40 }, { "item": "rope_makeshift_30", "count": 1 } ] },
"bash": {
"str_min": 1,
"str_max": 12,
"sound": "whish!",
"sound_fail": "whish.",
- "items": [ { "item": "straw_pile", "count": [ 6, 10 ] }, { "item": "rope_6", "count": [ 1, 3 ] } ]
+ "items": [ { "item": "straw_pile", "count": [ 6, 10 ] }, { "item": "rope_makeshift_6", "count": [ 1, 3 ] } ]
}
},
{
@@ -71,7 +72,7 @@
"type": "furniture",
"id": "f_rubble_rock",
"name": "pile of rocky rubble",
- "description": "Pile of rocks. Useless.",
+ "description": "Pile of rocks. Useless?",
"symbol": "^",
"color": "dark_gray",
"move_cost_mod": 6,
@@ -95,7 +96,7 @@
"type": "furniture",
"id": "f_rubble_landfill",
"name": "pile of trashy rubble",
- "description": "Trash topped with dirt and grass, it smells gross and but another mans trash...",
+ "description": "Trash topped with dirt and grass, it smells gross, but another man's trash...",
"symbol": "#",
"color": "green",
"move_cost_mod": 8,
@@ -283,7 +284,7 @@
"type": "furniture",
"id": "f_bulletin",
"name": "bulletin board",
- "description": "Pin some notes for other survivors to read.",
+ "description": "A big, cork bulletin board capable of sporting various notices. Pin some notes for other survivors to read.",
"symbol": "6",
"color": "blue",
"move_cost_mod": -1,
@@ -381,18 +382,16 @@
"id": "f_bed",
"name": "bed",
"symbol": "#",
- "description": "Quite comfortable to sleep in.",
+ "description": "This is a bed. A luxury in these times. Quite comfortable to sleep in.",
"color": "magenta",
"move_cost_mod": 3,
"coverage": 40,
"comfort": 5,
"floor_bedding_warmth": 1000,
"required_str": -1,
- "deconstruct": {
- "items": [ { "item": "2x4", "count": 12 }, { "item": "blanket", "count": 2 }, { "item": "nail", "charges": [ 8, 10 ] } ]
- },
+ "deconstruct": { "items": [ { "item": "mattress", "count": 1 } ], "furn_set": "f_bed_frame" },
"max_volume": 4000,
- "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "MOUNTABLE" ],
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "MOUNTABLE", "CAN_SIT", "EASY_DECONSTRUCT" ],
"bash": {
"str_min": 12,
"str_max": 40,
@@ -406,13 +405,62 @@
]
}
},
+ {
+ "type": "furniture",
+ "id": "f_bed_frame",
+ "name": "bed frame",
+ "symbol": "#",
+ "description": "This is an empty bed frame. With a mattress on it, it would be a nice place to sleep. Sleeping on it right now wouldn't be great.",
+ "color": "brown",
+ "move_cost_mod": 4,
+ "coverage": 40,
+ "required_str": 5,
+ "deconstruct": { "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": [ 8, 10 ] } ] },
+ "max_volume": 4000,
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "MOUNTABLE", "CAN_SIT" ],
+ "bash": {
+ "str_min": 10,
+ "str_max": 40,
+ "sound": "crunch!",
+ "sound_fail": "whack.",
+ "items": [
+ { "item": "2x4", "count": [ 5, 8 ] },
+ { "item": "nail", "charges": [ 6, 8 ] },
+ { "item": "splinter", "count": [ 3, 6 ] }
+ ]
+ }
+ },
+ {
+ "type": "furniture",
+ "id": "f_floor_mattress",
+ "name": "mattress",
+ "description": "A comfortable mattress has been tossed on the floor for sleeping here. It's not quite as comfy as a real bed, but it's pretty close.",
+ "symbol": "0",
+ "color": "magenta",
+ "move_cost_mod": 3,
+ "coverage": 40,
+ "comfort": 4,
+ "floor_bedding_warmth": 800,
+ "required_str": 7,
+ "deployed_item": "mattress",
+ "examine_action": "deployed_furniture",
+ "flags": [ "TRANSPARENT", "SHORT", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "MOUNTABLE" ],
+ "deconstruct": { "items": [ { "item": "mattress", "count": 1 } ] },
+ "bash": {
+ "str_min": 8,
+ "str_max": 30,
+ "sound": "rrrrip!",
+ "sound_fail": "whump.",
+ "items": [ { "item": "rag", "count": [ 40, 55 ] } ]
+ }
+ },
{
"type": "furniture",
"id": "f_toilet",
"name": "toilet",
"symbol": "&",
"color": "white",
- "description": "Emergency water source, from the tank, and provider of relief.",
+ "description": "A porcelain throne. Emergency water source, from the tank, and provider of relief.",
"move_cost_mod": 2,
"coverage": 30,
"required_str": -1,
@@ -488,7 +536,7 @@
"id": "f_sink",
"name": "sink",
"symbol": "&",
- "description": "Emergency relief provider. Water isn't running, so no water.",
+ "description": "Emergency relief provider. Water isn't running, so it's basically useless.",
"color": "white",
"move_cost_mod": 2,
"coverage": 60,
@@ -511,7 +559,7 @@
"id": "f_oven",
"name": "oven",
"symbol": "#",
- "description": "Used for heating and cooking food with electricity. Doesn't look like it's working, although it still has parts.",
+ "description": "Used for heating and cooking food with electricity. Doesn't look like it's working, although it still has parts. It might be safe to light a fire inside of it, if you had to.",
"color": "dark_gray",
"move_cost_mod": 2,
"coverage": 60,
@@ -553,7 +601,7 @@
"name": "wood stove",
"symbol": "#",
"bgcolor": "red",
- "description": "Wood stove for heating and cooking. Much more effective than an open flame.",
+ "description": "Wood stove for heating and cooking. Much more efficient than an open flame.",
"move_cost_mod": 2,
"coverage": 60,
"required_str": 10,
@@ -574,7 +622,7 @@
"id": "f_fireplace",
"name": "fireplace",
"symbol": "#",
- "description": "Ah. The relaxation of sitting in front of a fire as the world around you crumbles.",
+ "description": "Ah. The relaxation of sitting in front of a fire as the world around you crumbles. Towards the End, you could also get this service on your television.",
"bgcolor": "white",
"move_cost_mod": 2,
"coverage": 50,
@@ -758,14 +806,21 @@
"coverage": 55,
"required_str": -1,
"flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "CONTAINER", "PLACE_ITEM", "ORGANIC", "MOUNTABLE" ],
- "deconstruct": { "items": [ { "item": "2x4", "count": 3 }, { "item": "nail", "charges": [ 6, 8 ] } ] },
+ "deconstruct": {
+ "items": [ { "item": "2x4", "count": 3 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 8 ] } ]
+ },
"max_volume": 4000,
"bash": {
"str_min": 8,
"str_max": 30,
"sound": "smash!",
"sound_fail": "whump.",
- "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "nail", "charges": [ 2, 6 ] }, { "item": "splinter", "count": 1 } ]
+ "items": [
+ { "item": "2x4", "count": [ 1, 3 ] },
+ { "item": "wood_panel", "count": [ 0, 1 ] },
+ { "item": "nail", "charges": [ 2, 6 ] },
+ { "item": "splinter", "count": 1 }
+ ]
}
},
{
@@ -773,7 +828,7 @@
"id": "f_trashcan",
"name": "trash can",
"symbol": "&",
- "description": "One man's trash is another mans dinner.",
+ "description": "One man's trash is another man's dinner.",
"color": "light_cyan",
"move_cost_mod": 1,
"required_str": 5,
@@ -812,20 +867,27 @@
"id": "f_desk",
"name": "desk",
"symbol": "#",
- "description": "Sit down at it, and, if up to, work on it.",
+ "description": "Sit down at it or work on it.",
"color": "light_red",
"move_cost_mod": 1,
"coverage": 45,
"required_str": 8,
"flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "CONTAINER", "PLACE_ITEM", "ORGANIC", "MOUNTABLE", "FLAT_SURF" ],
- "deconstruct": { "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 10 ] } ] },
+ "deconstruct": {
+ "items": [ { "item": "2x4", "count": 8 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 16, 24 ] } ]
+ },
"max_volume": 4000,
"bash": {
"str_min": 12,
"str_max": 40,
"sound": "smash!",
"sound_fail": "whump.",
- "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "nail", "charges": [ 2, 6 ] }, { "item": "splinter", "count": 1 } ]
+ "items": [
+ { "item": "2x4", "count": [ 4, 7 ] },
+ { "item": "wood_panel", "count": [ 0, 1 ] },
+ { "item": "nail", "charges": [ 10, 16 ] },
+ { "item": "splinter", "count": [ 4, 12 ] }
+ ]
},
"examine_action": "workbench",
"workbench": { "multiplier": 1.1, "mass": 200000, "volume": "75L" }
@@ -835,7 +897,7 @@
"id": "f_exercise",
"name": "exercise machine",
"symbol": "T",
- "description": "Typically used for, well, exercising. You're not up for it.",
+ "description": "Typically used for, well, exercising. You're getting quite enough of that; running for your life.",
"color": "dark_gray",
"move_cost_mod": 1,
"coverage": 35,
@@ -866,7 +928,7 @@
"type": "furniture",
"id": "f_ball_mach",
"name": "ball machine",
- "description": "Remember when baseball was a thing?",
+ "description": "An unpowered machine that seems like it could've been used to launch various balls for different types of sports. It's only good for parts now if disassembled.",
"symbol": "T",
"color": "dark_gray",
"move_cost_mod": 1,
@@ -885,7 +947,7 @@
"id": "f_bench",
"name": "bench",
"symbol": "#",
- "description": "Hobo bed. Use at your own risk.",
+ "description": "Hobo bed. Airy. Use at your own risk.",
"color": "brown",
"move_cost_mod": 1,
"coverage": 35,
@@ -934,13 +996,20 @@
"required_str": 8,
"max_volume": 4000,
"flags": [ "TRANSPARENT", "FLAMMABLE", "ORGANIC", "MOUNTABLE", "SHORT", "FLAT_SURF" ],
- "deconstruct": { "items": [ { "item": "2x4", "count": 6 }, { "item": "nail", "charges": [ 6, 8 ] } ] },
+ "deconstruct": {
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 8 ] } ]
+ },
"bash": {
"str_min": 12,
"str_max": 50,
"sound": "smash!",
"sound_fail": "whump.",
- "items": [ { "item": "2x4", "count": [ 2, 6 ] }, { "item": "nail", "charges": [ 4, 8 ] }, { "item": "splinter", "count": 1 } ]
+ "items": [
+ { "item": "2x4", "count": [ 2, 4 ] },
+ { "item": "wood_panel", "count": [ 0, 1 ] },
+ { "item": "nail", "charges": [ 4, 8 ] },
+ { "item": "splinter", "count": 1 }
+ ]
},
"examine_action": "workbench",
"workbench": { "multiplier": 1.1, "mass": 200000, "volume": "75L" }
@@ -1014,7 +1083,7 @@
"id": "f_mailbox",
"name": "mailbox",
"symbol": "P",
- "description": "A metal box attached to the top of a wooden post. You've got mail.",
+ "description": "A metal box attached to the top of a wooden post. Mail delivery hasn't come for awhile. Doesn't look like it's coming again anytime soon.",
"color": "light_gray",
"move_cost_mod": 1,
"required_str": -1,
@@ -1086,12 +1155,57 @@
"examine_action": "workbench",
"workbench": { "multiplier": 1.1, "mass": 200000, "volume": "75L" }
},
+ {
+ "type": "furniture",
+ "id": "f_counter_gate_c",
+ "name": "closed counter gate",
+ "description": "A commercial quality swining door made of wood that allows passage behind counters.",
+ "symbol": "+",
+ "color": "blue",
+ "move_cost": 3,
+ "move_cost_mod": 2,
+ "required_str": 4,
+ "coverage": 60,
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR", "ORGANIC" ],
+ "connects_to": "COUNTER",
+ "open": "f_counter_gate_o",
+ "deconstruct": { "ter_set": "t_floor", "items": [ { "item": "2x4", "count": 6 }, { "item": "nail", "charges": 10 } ] },
+ "bash": {
+ "str_min": 12,
+ "str_max": 40,
+ "sound": "smash!",
+ "sound_fail": "whump.",
+ "items": [ { "item": "2x4", "count": [ 2, 6 ] }, { "item": "nail", "charges": [ 4, 8 ] }, { "item": "splinter", "count": 1 } ]
+ }
+ },
+ {
+ "type": "furniture",
+ "id": "f_counter_gate_o",
+ "name": "open counter gate",
+ "description": "A commercial quality swinging door made of wood that allows passage behind counters.",
+ "symbol": ".",
+ "color": "blue",
+ "move_cost": 2,
+ "move_cost_mod": 2,
+ "required_str": 4,
+ "connects_to": "COUNTER",
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "ROAD", "ORGANIC" ],
+ "close": "f_counter_gate_c",
+ "deconstruct": { "ter_set": "t_floor", "items": [ { "item": "2x4", "count": 6 }, { "item": "nail", "charges": 10 } ] },
+ "bash": {
+ "str_min": 12,
+ "str_max": 40,
+ "sound": "smash!",
+ "sound_fail": "whump.",
+ "items": [ { "item": "2x4", "count": [ 2, 6 ] }, { "item": "nail", "charges": [ 4, 8 ] }, { "item": "splinter", "count": 1 } ]
+ }
+ },
{
"type": "furniture",
"id": "f_fridge",
"name": "refrigerator",
"symbol": "{",
- "description": "Freeze your food with the amazing science of electricity! Oh wait, none is flowing.",
+ "description": "Freeze your food with the amazing science of electricity! Oh wait, none is flowing. Well, as long as you don't open it, maybe it'll stay cool for awhile.",
"color": "light_cyan",
"move_cost_mod": -1,
"coverage": 90,
@@ -1138,7 +1252,7 @@
"name": "glass door fridge",
"symbol": "{",
"color": "light_cyan",
- "description": "Wow! See INTO your fridge before you open it!",
+ "description": "Wow! See INTO your fridge before you open it and discover it's not working!",
"move_cost_mod": -1,
"coverage": 90,
"required_str": 10,
@@ -1183,7 +1297,7 @@
"id": "f_dresser",
"name": "dresser",
"symbol": "{",
- "description": "Dress yourself for the prom, or other occasions.",
+ "description": "Dress yourself for the zombie prom, or other occasions.",
"color": "brown",
"move_cost_mod": -1,
"coverage": 70,
@@ -1267,9 +1381,9 @@
{
"type": "furniture",
"id": "f_bookcase",
- "name": "book case",
+ "name": "bookcase",
"symbol": "{",
- "description": "Stores books. Y'know, Those things. Who reads books anymore?",
+ "description": "Stores books. Y'know, those things. Who reads books anymore?",
"color": "brown",
"move_cost_mod": -1,
"coverage": 80,
@@ -1331,7 +1445,7 @@
"type": "furniture",
"id": "f_dryer",
"name": "dryer",
- "description": "Dry your clothes!",
+ "description": "'Dry your clothes!' would be what you'd do if electricity was running.",
"symbol": "{",
"bgcolor": "white",
"move_cost_mod": -1,
@@ -1371,7 +1485,7 @@
"id": "f_bigmirror",
"name": "standing mirror",
"symbol": "{",
- "description": "Lookin' good- is that blood?",
+ "description": "Lookin' good - is that blood?",
"color": "white",
"move_cost_mod": 2,
"coverage": 80,
@@ -1433,7 +1547,7 @@
"type": "furniture",
"id": "f_vending_o",
"name": "broken vending machine",
- "description": "Ponder if you could buy stuff, as it's broken.",
+ "description": "Ponder if you could buy stuff, as it's broken. Maybe if you broke it more, you wouldn't need to pay at all!",
"symbol": "{",
"color": "dark_gray",
"move_cost_mod": -1,
@@ -1458,7 +1572,7 @@
"type": "furniture",
"id": "f_dumpster",
"name": "dumpster",
- "description": "Stores your trash.",
+ "description": "Stores trash. Doesn't get picked up anymore. Note the smell.",
"symbol": "{",
"color": "green",
"move_cost_mod": 3,
@@ -1499,7 +1613,7 @@
"type": "furniture",
"id": "f_coffin_c",
"name": "coffin",
- "description": "Holds the bodies of the countless you kill.",
+ "description": "Holds the bodies of the countless killed in the Cataclysm.",
"symbol": "0",
"bgcolor": "brown",
"move_cost_mod": -1,
@@ -1538,7 +1652,7 @@
"type": "furniture",
"id": "f_coffin_o",
"name": "open coffin",
- "description": "Look at the bodies of the countless you've killed.",
+ "description": "You can only hope you'll look good enough for one of these, when the time comes.",
"symbol": "O",
"bgcolor": "brown",
"move_cost_mod": -1,
@@ -1566,7 +1680,7 @@
"type": "furniture",
"id": "f_crate_c",
"name": "crate",
- "description": "What's inside? Find out!",
+ "description": "What's inside? Pry it open to find out! Or just smash it, but you might break the contents.",
"symbol": "X",
"bgcolor": "brown",
"move_cost_mod": -1,
@@ -1658,6 +1772,7 @@
"type": "furniture",
"id": "f_canvas_door",
"name": "canvas flap",
+ "description": "This canvas flap door could be pulled aside.",
"symbol": "+",
"color": "blue",
"move_cost_mod": -1,
@@ -1678,6 +1793,7 @@
"type": "furniture",
"id": "f_canvas_door_o",
"name": "open canvas flap",
+ "description": "This canvas flap door has been pulled aside.",
"symbol": ".",
"color": "blue",
"move_cost_mod": 0,
@@ -1697,6 +1813,7 @@
"type": "furniture",
"id": "f_large_canvas_door",
"name": "canvas flap",
+ "description": "This heavy canvas flap door could be pulled aside.",
"symbol": "+",
"color": "blue",
"move_cost_mod": -1,
@@ -1718,6 +1835,7 @@
"type": "furniture",
"id": "f_large_canvas_door_o",
"name": "open canvas flap",
+ "description": "This heavy canvas flap door has been pulled aside.",
"symbol": ".",
"color": "blue",
"move_cost_mod": 0,
@@ -1738,6 +1856,7 @@
"type": "furniture",
"id": "f_groundsheet",
"name": "groundsheet",
+ "description": "This plastic groundsheet could keep you dry.",
"symbol": ";",
"color": "green",
"move_cost_mod": 0,
@@ -1759,6 +1878,7 @@
"type": "furniture",
"id": "f_large_groundsheet",
"name": "groundsheet",
+ "description": "This large plastic groundsheet could keep you dry.",
"symbol": ";",
"color": "green",
"move_cost_mod": 0,
@@ -1778,6 +1898,7 @@
"type": "furniture",
"id": "f_center_groundsheet",
"name": "groundsheet",
+ "description": "This plastic groundsheet could keep you dry.",
"symbol": ";",
"color": "green",
"move_cost_mod": 0,
@@ -1800,6 +1921,7 @@
"type": "furniture",
"id": "f_fema_groundsheet",
"name": "groundsheet",
+ "description": "This plastic government-issue groundsheet could keep you dry, but was made by the lowest bidder.",
"symbol": ";",
"color": "green",
"move_cost_mod": 0,
@@ -1838,6 +1960,7 @@
"type": "furniture",
"id": "f_skin_door",
"name": "animalskin flap",
+ "description": "This animal skin flap could be pulled aside.",
"symbol": "+",
"color": "white",
"move_cost_mod": -1,
@@ -1858,6 +1981,7 @@
"type": "furniture",
"id": "f_skin_door_o",
"name": "open animalskin flap",
+ "description": "This animal skin flap has been pulled aside.",
"symbol": ".",
"color": "white",
"move_cost_mod": 0,
@@ -1877,6 +2001,7 @@
"type": "furniture",
"id": "f_skin_groundsheet",
"name": "animalskin floor",
+ "description": "This animal skin groundsheet could keep you dry.",
"symbol": ";",
"color": "brown",
"move_cost_mod": 0,
@@ -1903,7 +2028,7 @@
"color": "light_red",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
"examine_action": "flower_poppy",
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
@@ -2074,6 +2199,7 @@
"type": "furniture",
"id": "f_plant_seed",
"name": "seed",
+ "description": "A humble planted seed. Actions are the seed of fate deeds grow into destiny.",
"symbol": "^",
"color": "brown",
"move_cost_mod": 0,
@@ -2081,13 +2207,13 @@
"flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_SEED" ],
"examine_action": "aggie_plant",
"bash": { "str_min": 1, "str_max": 5, "sound": "crunch.", "sound_fail": "whish." },
- "plant_transform": "f_plant_seedling",
- "plant_base": "f_null"
+ "plant_data": { "transform": "f_plant_seedling", "base": "f_null" }
},
{
"type": "furniture",
"id": "f_plant_seedling",
"name": "seedling",
+ "description": "This plant is just getting started.",
"symbol": "^",
"color": "green",
"move_cost_mod": 0,
@@ -2095,13 +2221,13 @@
"flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_SEEDLING" ],
"examine_action": "aggie_plant",
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." },
- "plant_transform": "f_plant_mature",
- "plant_base": "f_null"
+ "plant_data": { "transform": "f_plant_mature", "base": "f_null" }
},
{
"type": "furniture",
"id": "f_plant_mature",
"name": "mature plant",
+ "description": "This plant has matured.",
"symbol": "#",
"color": "green",
"move_cost_mod": 0,
@@ -2109,13 +2235,13 @@
"flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_MATURE" ],
"examine_action": "aggie_plant",
"bash": { "str_min": 3, "str_max": 8, "sound": "crunch.", "sound_fail": "whish." },
- "plant_transform": "f_plant_harvest",
- "plant_base": "f_null"
+ "plant_data": { "transform": "f_plant_harvest", "base": "f_null" }
},
{
"type": "furniture",
"id": "f_plant_harvest",
"name": "harvestable plant",
+ "description": "This plant is ready for harvest. Examine it more closely to identify how to harvest the plant appropriately.",
"symbol": "#",
"color": "light_green",
"move_cost_mod": 0,
@@ -2123,8 +2249,7 @@
"flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_HARVEST" ],
"examine_action": "aggie_plant",
"bash": { "str_min": 4, "str_max": 10, "sound": "crunch.", "sound_fail": "whish." },
- "plant_transform": "f_null",
- "plant_base": "f_null"
+ "plant_data": { "transform": "f_null", "base": "f_null" }
},
{
"type": "furniture",
@@ -2136,13 +2261,12 @@
"move_cost_mod": 1,
"required_str": 10,
"looks_like": "t_dirtmound",
- "plant_transform": "f_planter_seed",
"flags": [ "TRANSPARENT", "PLANTABLE", "FLAT", "MOUNTABLE" ],
"deconstruct": {
"items": [
{ "item": "2x4", "count": [ 11, 12 ] },
- { "item": "nail", "count": [ 30, 36 ] },
- { "item": "pebble", "count": [ 180, 200 ] },
+ { "item": "nail", "charges": [ 30, 36 ] },
+ { "item": "pebble", "charges": [ 180, 200 ] },
{ "item": "material_soil", "count": [ 70, 75 ] }
]
},
@@ -2153,11 +2277,12 @@
"sound_fail": "whish.",
"items": [
{ "item": "2x4", "count": [ 4, 10 ] },
- { "item": "nail", "count": [ 15, 30 ] },
- { "item": "pebble", "count": [ 150, 200 ] },
+ { "item": "nail", "charges": [ 15, 30 ] },
+ { "item": "pebble", "charges": [ 150, 200 ] },
{ "item": "material_soil", "count": [ 60, 75 ] }
]
},
+ "plant_data": { "transform": "f_planter_seed" },
"examine_action": "dirtmound"
},
{
@@ -2175,8 +2300,8 @@
"deconstruct": {
"items": [
{ "item": "2x4", "count": [ 11, 12 ] },
- { "item": "nail", "count": [ 30, 36 ] },
- { "item": "pebble", "count": [ 180, 200 ] },
+ { "item": "nail", "charges": [ 30, 36 ] },
+ { "item": "pebble", "charges": [ 180, 200 ] },
{ "item": "material_soil", "count": [ 70, 75 ] }
]
},
@@ -2187,13 +2312,12 @@
"sound_fail": "whish.",
"items": [
{ "item": "2x4", "count": [ 4, 10 ] },
- { "item": "nail", "count": [ 15, 30 ] },
- { "item": "pebble", "count": [ 150, 200 ] },
+ { "item": "nail", "charges": [ 15, 30 ] },
+ { "item": "pebble", "charges": [ 150, 200 ] },
{ "item": "material_soil", "count": [ 60, 75 ] }
]
},
- "plant_transform": "f_planter_seedling",
- "plant_base": "f_planter"
+ "plant_data": { "transform": "f_planter_seedling", "base": "f_planter" }
},
{
"type": "furniture",
@@ -2210,8 +2334,8 @@
"deconstruct": {
"items": [
{ "item": "2x4", "count": [ 11, 12 ] },
- { "item": "nail", "count": [ 30, 36 ] },
- { "item": "pebble", "count": [ 180, 200 ] },
+ { "item": "nail", "charges": [ 30, 36 ] },
+ { "item": "pebble", "charges": [ 180, 200 ] },
{ "item": "material_soil", "count": [ 70, 75 ] }
]
},
@@ -2222,13 +2346,12 @@
"sound_fail": "whish.",
"items": [
{ "item": "2x4", "count": [ 4, 10 ] },
- { "item": "nail", "count": [ 15, 30 ] },
- { "item": "pebble", "count": [ 150, 200 ] },
+ { "item": "nail", "charges": [ 15, 30 ] },
+ { "item": "pebble", "charges": [ 150, 200 ] },
{ "item": "material_soil", "count": [ 60, 75 ] }
]
},
- "plant_transform": "f_planter_mature",
- "plant_base": "f_planter"
+ "plant_data": { "transform": "f_planter_mature", "base": "f_planter" }
},
{
"type": "furniture",
@@ -2245,8 +2368,8 @@
"deconstruct": {
"items": [
{ "item": "2x4", "count": [ 11, 12 ] },
- { "item": "nail", "count": [ 30, 36 ] },
- { "item": "pebble", "count": [ 180, 200 ] },
+ { "item": "nail", "charges": [ 30, 36 ] },
+ { "item": "pebble", "charges": [ 180, 200 ] },
{ "item": "material_soil", "count": [ 70, 75 ] }
]
},
@@ -2257,13 +2380,12 @@
"sound_fail": "whish.",
"items": [
{ "item": "2x4", "count": [ 4, 10 ] },
- { "item": "nail", "count": [ 15, 30 ] },
- { "item": "pebble", "count": [ 150, 200 ] },
+ { "item": "nail", "charges": [ 15, 30 ] },
+ { "item": "pebble", "charges": [ 150, 200 ] },
{ "item": "material_soil", "count": [ 60, 75 ] }
]
},
- "plant_transform": "f_planter_harvest",
- "plant_base": "f_planter"
+ "plant_data": { "transform": "f_planter_harvest", "base": "f_planter" }
},
{
"type": "furniture",
@@ -2280,8 +2402,8 @@
"deconstruct": {
"items": [
{ "item": "2x4", "count": [ 11, 12 ] },
- { "item": "nail", "count": [ 30, 36 ] },
- { "item": "pebble", "count": [ 180, 200 ] },
+ { "item": "nail", "charges": [ 30, 36 ] },
+ { "item": "pebble", "charges": [ 180, 200 ] },
{ "item": "material_soil", "count": [ 70, 75 ] }
]
},
@@ -2292,13 +2414,12 @@
"sound_fail": "whish.",
"items": [
{ "item": "2x4", "count": [ 4, 10 ] },
- { "item": "nail", "count": [ 15, 30 ] },
- { "item": "pebble", "count": [ 150, 200 ] },
+ { "item": "nail", "charges": [ 15, 30 ] },
+ { "item": "pebble", "charges": [ 150, 200 ] },
{ "item": "material_soil", "count": [ 60, 75 ] }
]
},
- "plant_transform": "f_planter",
- "plant_base": "f_planter"
+ "plant_data": { "transform": "f_planter", "base": "f_planter" }
},
{
"type": "furniture",
@@ -2374,7 +2495,7 @@
"type": "furniture",
"id": "f_wood_keg",
"name": "wooden keg",
- "description": "A keg made mostly of wood. Holds liquids, preferably beer.",
+ "description": "A keg made mostly of wood. Holds liquids, preferably alcoholic.",
"symbol": "H",
"color": "brown",
"move_cost_mod": -1,
@@ -2411,7 +2532,7 @@
"type": "furniture",
"id": "f_statue",
"name": "statue",
- "description": "A carved statue made of stone..",
+ "description": "A carved statue made of stone.",
"symbol": "S",
"color": "dark_gray",
"move_cost_mod": -1,
@@ -2430,7 +2551,7 @@
"type": "furniture",
"id": "f_mannequin",
"name": "mannequin",
- "description": "Put clothes on it and wish you looked as good.",
+ "description": "Put clothes on it, talk to it. Who's around to judge you? Wait... did it just move?",
"symbol": "@",
"color": "brown",
"move_cost_mod": 2,
@@ -2561,7 +2682,7 @@
"type": "furniture",
"id": "f_TV_antenna",
"name": "TV antenna",
- "description": "The television antenna improves reception for televisions.",
+ "description": "The television antenna improved reception for televisions.",
"symbol": "#",
"color": "light_gray",
"move_cost_mod": 2,
@@ -2684,8 +2805,14 @@
"color": "blue",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
- "examine_action": "flower_bluebell",
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
+ "examine_action": "harvest_furn_nectar",
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] }, { "drop": "seed_flower", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
{
@@ -2696,7 +2823,7 @@
"color": "magenta",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
"examine_action": "flower_dahlia",
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
@@ -2704,13 +2831,19 @@
"type": "furniture",
"id": "f_datura",
"name": "datura",
+ "description": "A pretty moonflower.",
"symbol": "*",
"color": "light_green",
"move_cost_mod": 1,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "ORGANIC" ],
"examine_action": "harvest_furn_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn" ], "entries": [ { "drop": "datura_seed", "base_num": [ 2, 6 ] } ] } ],
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "datura_seed", "base_num": [ 2, 6 ] }, { "drop": "withered", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
{
@@ -2734,7 +2867,7 @@
"color": "yellow",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
"examine_action": "harvest_furn_nectar",
"harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn" ], "entries": [ { "drop": "raw_dandelion", "base_num": [ 1, 4 ] } ] } ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
@@ -2743,11 +2876,14 @@
"type": "furniture",
"id": "f_chamomile",
"name": "chamomile",
+ "description": "Ahh, soothing chamomile tea.",
"symbol": "f",
"color": "white",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
+ "examine_action": "harvest_furn",
+ "harvest_by_season": [ { "seasons": [ "summer", "autumn" ], "entries": [ { "drop": "chamomile", "base_num": [ 1, 2 ] } ] } ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
{
@@ -2759,8 +2895,14 @@
"color": "magenta",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
- "examine_action": "flower_tulip",
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
+ "examine_action": "harvest_furn_nectar",
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] }, { "drop": "seed_flower", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
{
@@ -2772,19 +2914,26 @@
"color": "light_green",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
- "examine_action": "flower_spurge",
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
+ "examine_action": "harvest_furn_nectar",
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] }, { "drop": "seed_flower", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
{
"type": "furniture",
"id": "f_cattails",
"name": "cattails",
+ "description": "This useful plant is available all year round. Many parts of the plant are edible.",
"symbol": "i",
"color": "brown",
"move_cost_mod": 1,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "ORGANIC" ],
"examine_action": "harvest_furn",
"harvest_by_season": [
{ "seasons": [ "winter" ], "entries": [ { "drop": "cattail_rhizome" } ] },
@@ -2804,8 +2953,14 @@
"color": "yellow",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
"examine_action": "harvest_furn_nectar",
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] }, { "drop": "seed_flower", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"//": "Add flower and bud spawns once useful.",
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
@@ -2818,8 +2973,14 @@
"color": "magenta",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "ORGANIC" ],
"examine_action": "harvest_furn_nectar",
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] }, { "drop": "seed_flower", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"//": "Add flower and bud spawns once useful.",
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
@@ -2832,8 +2993,14 @@
"color": "yellow",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "ORGANIC" ],
"examine_action": "harvest_furn_nectar",
+ "harvest_by_season": [
+ {
+ "seasons": [ "spring", "summer", "autumn" ],
+ "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] }, { "drop": "seed_flower", "base_num": [ 1, 2 ] } ]
+ }
+ ],
"//": "Add flower and bud spawns once useful.",
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
@@ -2846,7 +3013,7 @@
"color": "yellow",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
"examine_action": "harvest_furn_nectar",
"harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "sunflower" } ] } ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
@@ -2855,11 +3022,14 @@
"type": "furniture",
"id": "f_lilypad",
"name": "lilypad",
+ "description": "These lilypads don't look they'd support the weight of the things you've heard croaking in the swamp.",
"symbol": "f",
"color": "green",
"move_cost_mod": 0,
"required_str": -1,
- "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE" ],
+ "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ],
+ "examine_action": "harvest_furn",
+ "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn" ], "entries": [ { "drop": "withered", "base_num": [ 1, 2 ] } ] } ],
"bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." }
},
{
@@ -2918,6 +3088,7 @@
"type": "furniture",
"id": "f_egg_sackbw",
"name": "spider egg sack",
+ "description": "Much too large, off-white egg sack. Kind of icky. Something IS moving in there.",
"symbol": "O",
"color": "white",
"move_cost_mod": 3,
@@ -2930,6 +3101,7 @@
"type": "furniture",
"id": "f_egg_sackcs",
"name": "spider egg sack",
+ "description": "Bulbous mass of spider eggs. More than kind of icky. Something IS moving in there.",
"symbol": "O",
"color": "white",
"move_cost_mod": 3,
@@ -2942,6 +3114,7 @@
"type": "furniture",
"id": "f_egg_sackws",
"name": "spider egg sack",
+ "description": "A horrifyingly oversized egg sack. Something IS moving in there. If you're seeing this, you're already too close to it.",
"symbol": "O",
"color": "yellow",
"move_cost_mod": 3,
@@ -2954,6 +3127,7 @@
"type": "furniture",
"id": "f_egg_sacke",
"name": "ruptured egg sack",
+ "description": "Super icky. Spider stuff's spilling out.",
"symbol": "X",
"color": "white",
"move_cost_mod": 3,
@@ -2965,7 +3139,7 @@
"type": "furniture",
"id": "f_vending_reinforced",
"name": "reinforced vending machine",
- "description": "A bit tougher to crack open than regular vending machines.",
+ "description": "A bit tougher to crack open than regular vending machines. That just makes it all the sweeter a target, doesn't it?",
"symbol": "{",
"color": "light_red",
"move_cost_mod": -1,
@@ -2990,7 +3164,7 @@
"type": "furniture",
"id": "f_arcade_machine",
"name": "arcade machine",
- "description": "Play stupid games, win stupid prizes.",
+ "description": "Play stupid games, win stupid prizes. That was the idea, anyway. Now, without power, it's just stupid. Smarter to disassemble for all kinds of useful electronic parts.",
"symbol": "6",
"color": "red",
"move_cost_mod": -1,
@@ -3030,7 +3204,7 @@
"type": "furniture",
"id": "f_pinball_machine",
"name": "pinball machine",
- "description": "Most underrated game of the 20th century. Press buttons so it doesn't go in the hole.",
+ "description": "Most underrated game of the 20th century. Press buttons so the ball doesn't go in the hole. It doesn't seem to be working without electricity. Could be disassembled for various electronic parts.",
"symbol": "7",
"color": "red",
"move_cost_mod": -1,
@@ -3121,7 +3295,7 @@
"type": "furniture",
"id": "f_treadmill",
"name": "treadmill",
- "description": "Used for training leg muscles. It'll be hard without power.",
+ "description": "Used for training leg muscles. It'll be extra hard without power. Could be taken apart for its... parts.",
"symbol": "L",
"color": "dark_gray",
"move_cost_mod": 1,
@@ -3156,7 +3330,7 @@
"type": "furniture",
"id": "f_displaycase",
"name": "display case",
- "description": "Display your stuff. Securely.",
+ "description": "Display your stuff fancily and securely.",
"symbol": "#",
"color": "light_cyan",
"move_cost_mod": 2,
@@ -3219,7 +3393,7 @@
"type": "furniture",
"id": "f_floor_canvas",
"name": "heavy punching bag",
- "description": "Punch Punch! Exercise those arms!",
+ "description": "Punch Punch! Exercise those arms! Main selling point: it doesn't fight back!",
"symbol": "0",
"color": "dark_gray",
"move_cost_mod": -1,
@@ -3262,7 +3436,7 @@
"max_volume": 500,
"crafting_pseudo_item": "char_kiln",
"flags": [ "CONTAINER", "FIRE_CONTAINER", "PLACE_ITEM", "EASY_DECONSTRUCT", "MINEABLE" ],
- "deconstruct": { "items": [ { "item": "rock", "count": [ 30, 30 ] } ] },
+ "deconstruct": { "items": [ { "item": "rock", "count": [ 35, 40 ] } ] },
"bash": {
"str_min": 25,
"str_max": 180,
@@ -3348,6 +3522,7 @@
"type": "furniture",
"id": "f_robotic_arm",
"name": "robotic arm",
+ "description": "Automation! Science! Industry! Make a better horse! This robot arm promises to do it all. Except it's currently unpowered. You could remove the casing and retrieve the electronics through disassembly.",
"symbol": "&",
"bgcolor": "yellow",
"move_cost_mod": 3,
@@ -3389,6 +3564,7 @@
"type": "furniture",
"id": "f_aut_gas_console",
"name": "automated gas console",
+ "description": "Automated gas flow control console.",
"symbol": "9",
"color": "blue",
"move_cost_mod": -1,
@@ -3402,6 +3578,7 @@
"type": "furniture",
"id": "f_aut_gas_console_o",
"name": "broken automated gas console",
+ "description": "Automated gas flow control console. Broken. This is not a good thing.",
"symbol": "9",
"color": "dark_gray",
"move_cost_mod": -1,
@@ -3660,6 +3837,7 @@
"type": "furniture",
"id": "f_shackle",
"name": "manacles",
+ "description": "Chain serfs in your dungeon. All you need now is an iron ball to chain to it.",
"symbol": "8",
"color": "light_gray",
"move_cost_mod": 1,
@@ -3735,6 +3913,7 @@
"type": "furniture",
"id": "f_grave_monument",
"name": "obelisk",
+ "description": "Monument to pride.",
"symbol": "$",
"color": "black_white",
"move_cost_mod": -1,
@@ -3753,6 +3932,7 @@
"type": "furniture",
"id": "f_brazier",
"name": "brazier",
+ "description": "A raised metal dish in which to safely burn things.",
"symbol": "#",
"color": "red",
"move_cost_mod": 2,
@@ -3774,10 +3954,61 @@
]
}
},
+ {
+ "type": "furniture",
+ "id": "f_55gal_firebarrel",
+ "name": "fire barrel (200L)",
+ "description": "A large metal barrel used to contain a fire. It has multiple holes punched in its walls for air supply. Fires set in a fire barrel will not spread to surrounding flammable objects.",
+ "symbol": "#",
+ "color": "red",
+ "looks_like": "55gal_drum",
+ "move_cost_mod": 2,
+ "coverage": 35,
+ "required_str": 8,
+ "flags": [ "PLACE_ITEM", "TRANSPARENT", "FIRE_CONTAINER", "EASY_DECONSTRUCT" ],
+ "deployed_item": "55gal_firebarrel",
+ "examine_action": "fireplace",
+ "max_volume": 4000,
+ "bash": {
+ "str_min": 8,
+ "str_max": 30,
+ "sound": "metal screeching!",
+ "sound_fail": "clang!",
+ "items": [
+ { "item": "scrap", "count": [ 8, 20 ] },
+ { "item": "sheet_metal_small", "count": [ 3, 10 ] },
+ { "item": "sheet_metal", "count": [ 0, 1 ] }
+ ]
+ }
+ },
+ {
+ "type": "furniture",
+ "id": "f_30gal_firebarrel",
+ "name": "fire barrel (100L)",
+ "description": "A large metal barrel used to contain a fire. It has multiple holes punched in its walls for air supply. Fires set in a fire barrel will not spread to surrounding flammable objects.",
+ "symbol": "#",
+ "color": "red",
+ "looks_like": "30gal_drum",
+ "move_cost_mod": 2,
+ "coverage": 35,
+ "required_str": 8,
+ "flags": [ "PLACE_ITEM", "TRANSPARENT", "FIRE_CONTAINER", "EASY_DECONSTRUCT" ],
+ "deployed_item": "30gal_firebarrel",
+ "examine_action": "fireplace",
+ "max_volume": 4000,
+ "bash": {
+ "str_min": 8,
+ "str_max": 30,
+ "sound": "metal screeching!",
+ "sound_fail": "clang!",
+ "items": [ { "item": "scrap", "count": [ 5, 15 ] }, { "item": "sheet_metal_small", "count": [ 1, 9 ] } ]
+ }
+ },
{
"id": "f_firering",
"type": "furniture",
"name": "fire ring",
+ "description": "A ring of stones to safely contain a fire.",
"symbol": "#",
"bgcolor": [ "white" ],
"move_cost_mod": 2,
@@ -4094,6 +4325,27 @@
"items": [ { "item": "leather_tarp", "count": [ 1, 1 ] } ]
}
},
+ {
+ "type": "furniture",
+ "id": "f_plastic_groundsheet",
+ "name": "plastic groundsheet",
+ "description": "A large sheet of thick plastic has been tossed on the ground here. It would be a useful place to do some butchery, perhaps.",
+ "symbol": "D",
+ "bgcolor": "light_blue",
+ "move_cost_mod": 0,
+ "required_str": 3,
+ "deployed_item": "plastic_sheet",
+ "examine_action": "deployed_furniture",
+ "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ],
+ "deconstruct": { "items": [ { "item": "plastic_sheet", "count": 1 } ] },
+ "bash": {
+ "str_min": 5,
+ "str_max": 10,
+ "sound": "whuff!",
+ "sound_fail": "crinkle.",
+ "items": [ { "item": "plastic_sheet", "count": 1 } ]
+ }
+ },
{
"type": "furniture",
"id": "f_fiber_mat",
@@ -4120,7 +4372,7 @@
"id": "f_pillow_fort",
"name": "pillow fort",
"symbol": "^",
- "description": "A comfy place to hide from the world.",
+ "description": "A comfy place to hide from the world. Not very defensible, though.",
"color": "white",
"move_cost_mod": 3,
"coverage": 90,
@@ -4149,10 +4401,115 @@
"items": [ { "item": "pillow", "count": 19 }, { "item": "blanket", "count": 3 } ]
}
},
+ {
+ "type": "furniture",
+ "id": "f_cardboard_fort",
+ "name": "cardboard fort",
+ "symbol": "^",
+ "description": "A fort built by tipping a cardboard box on its side, lining it with blankets, and partly weather sealing it with a plastic sheet.",
+ "color": "brown",
+ "move_cost_mod": 3,
+ "coverage": 95,
+ "comfort": 4,
+ "floor_bedding_warmth": 700,
+ "required_str": 3,
+ "deconstruct": {
+ "items": [
+ { "item": "box_large", "count": 1 },
+ { "item": "plastic_sheet", "count": 1 },
+ { "item": "blanket", "count": 2 },
+ { "item": "pillow", "count": 4 }
+ ]
+ },
+ "max_volume": 4000,
+ "flags": [
+ "TRANSPARENT",
+ "FLAMMABLE_ASH",
+ "PLACE_ITEM",
+ "ORGANIC",
+ "REDUCE_SCENT",
+ "EASY_DECONSTRUCT",
+ "BASHABLE",
+ "HIDE_PLACE",
+ "NO_SIGHT",
+ "BLOCK_WIND"
+ ],
+ "bash": {
+ "str_min": 4,
+ "str_max": 15,
+ "sound": "crumple!",
+ "sound_fail": "thud.",
+ "items": [ { "item": "paper", "count": [ 50, 100 ] } ]
+ }
+ },
+ {
+ "type": "furniture",
+ "id": "f_cardboard_wall",
+ "name": "cardboard wall",
+ "symbol": "#",
+ "bgcolor": "brown",
+ "move_cost_mod": -1,
+ "coverage": 100,
+ "description": "This is a pile of cardboard boxes that have been filled with rags and junk and stacked together like bricks to form a wall.",
+ "required_str": -1,
+ "flags": [ "NOITEM", "BLOCKSDOOR", "FLAMMABLE_ASH", "ORGANIC", "EASY_DECONSTRUCT", "BLOCK_WIND" ],
+ "deconstruct": {
+ "items": [
+ { "item": "box_large", "count": 1 },
+ { "item": "box_medium", "count": 2 },
+ { "item": "box_small", "count": 4 },
+ { "item": "rag", "count": 50 },
+ { "item": "paper", "count": 50 },
+ { "item": "plastic_chunk", "count": 20 },
+ { "item": "plastic_sheet", "count": 2 }
+ ]
+ },
+ "bash": {
+ "str_min": 8,
+ "str_max": 30,
+ "sound": "crash!",
+ "sound_fail": "whump.",
+ "items": [
+ { "item": "box_large", "count": [ 0, 1 ] },
+ { "item": "box_medium", "count": [ 0, 2 ] },
+ { "item": "box_small", "count": [ 0, 4 ] },
+ { "item": "rag", "count": [ 20, 50 ] },
+ { "item": "paper", "count": [ 50, 150 ] },
+ { "item": "plastic_chunk", "count": [ 5, 20 ] },
+ { "item": "plastic_sheet", "count": [ 0, 2 ] }
+ ]
+ }
+ },
+ {
+ "type": "furniture",
+ "id": "f_cardboard_box",
+ "name": "large cardboard box",
+ "symbol": "X",
+ "description": "A large cardboard box: this could be used to store things, or as a hiding place.",
+ "color": "brown",
+ "move_cost_mod": 7,
+ "coverage": 90,
+ "comfort": 1,
+ "floor_bedding_warmth": 200,
+ "required_str": 3,
+ "deconstruct": { "items": [ { "item": "box_large", "count": 1 } ] },
+ "max_volume": 6000,
+ "deployed_item": "box_large",
+ "examine_action": "deployed_furniture",
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM", "ORGANIC", "EASY_DECONSTRUCT", "BASHABLE", "HIDE_PLACE", "NO_SIGHT" ],
+ "bash": {
+ "str_min": 2,
+ "str_max": 15,
+ "sound": "crumple!",
+ "sound_fail": "thud.",
+ "items": [ { "item": "paper", "count": [ 50, 100 ] } ]
+ }
+ },
{
"type": "furniture",
"id": "f_beaded_door",
"name": "beaded curtain",
+ "description": "This beaded curtain could be pulled aside.",
"symbol": "+",
"color": "pink",
"looks_like": "f_canvas_door",
@@ -4181,6 +4538,7 @@
"type": "furniture",
"id": "f_beaded_door_o",
"name": "open beaded curtain",
+ "description": "This beaded curtain has been pulled aside.",
"symbol": ".",
"color": "pink",
"looks_like": "f_canvas_door_o",
@@ -4244,21 +4602,29 @@
"coverage": 85,
"required_str": 9,
"flags": [ "CONTAINER", "FLAMMABLE", "PLACE_ITEM", "ORGANIC", "BLOCKSDOOR", "MOUNTABLE" ],
- "deconstruct": { "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": [ 8, 12 ] } ] },
+ "deconstruct": {
+ "items": [ { "item": "2x4", "count": 20 }, { "item": "nail", "charges": [ 16, 24 ] }, { "item": "pipe", "count": 2 } ]
+ },
"max_volume": 2000,
"bash": {
"str_min": 12,
"str_max": 40,
"sound": "smash!",
"sound_fail": "whump.",
- "items": [ { "item": "2x4", "count": [ 4, 8 ] }, { "item": "nail", "charges": [ 6, 12 ] }, { "item": "splinter", "count": 1 } ]
+ "items": [
+ { "item": "2x4", "count": [ 8, 12 ] },
+ { "item": "nail", "charges": [ 8, 14 ] },
+ { "item": "splinter", "count": [ 4, 10 ] },
+ { "item": "pipe", "count": [ 0, 1 ] },
+ { "item": "scrap", "count": [ 2, 5 ] }
+ ]
}
},
{
"type": "furniture",
"id": "f_piano",
"name": "piano",
- "description": "The ol' ebony and ivory.",
+ "description": "The ol' ebony and ivory. Really classes up the place. You could take it apart if you wanted... you monster.",
"symbol": "P",
"color": "i_black",
"move_cost_mod": 6,
@@ -4300,10 +4666,11 @@
"symbol": "0",
"bgcolor": "white",
"move_cost_mod": -1,
- "coverage": 40,
+ "coverage": 60,
"required_str": -1,
"max_volume": 4000,
- "flags": [ "CONTAINER", "PLACE_ITEM", "BLOCKSDOOR" ],
+ "flags": [ "CONTAINER", "PLACE_ITEM", "FIRE_CONTAINER", "SUPPRESS_SMOKE", "BLOCKSDOOR" ],
+ "examine_action": "fireplace",
"deconstruct": {
"items": [
{ "item": "pipe", "count": 1 },
@@ -6020,7 +6387,7 @@
"id": "f_dishwasher",
"name": "dishwasher",
"looks_like": "f_oven",
- "description": "This metal box used to spray hot water and soap at dirty dishes to make them clean and to save people an unpleasant chore. Now, with the power off and it sitting for a while, it is starting to smell a bit off.",
+ "description": "This metal box used to spray hot water and soap at dirty dishes to make them clean and to save people an unpleasant chore. Now, with the power gone and it sitting for a while, it's starting to smell a bit off.",
"symbol": "{",
"bgcolor": "white",
"move_cost_mod": -1,
diff --git a/data/json/game_balance.json b/data/json/game_balance.json
index 8b80b24ddb6ed..359be372126be 100644
--- a/data/json/game_balance.json
+++ b/data/json/game_balance.json
@@ -166,5 +166,33 @@
"info": "Disable additional spawn of large groups of monsters fighting each other on swamps.",
"stype": "bool",
"value": false
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "SPEEDYDEX_MIN_DEX",
+ "info": "The minimum dex required for speedydex mod to add speed",
+ "stype": "int",
+ "value": 0
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "SPEEDYDEX_DEX_SPEED",
+ "info": "The amount of moves gained per dex above SPEEDYDEX_MIN_DEX",
+ "stype": "int",
+ "value": 0
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "MAX_HARVEST_COUNT",
+ "info": "The maximum amount of produce that can be harvested from a plant.",
+ "stype": "int",
+ "value": 12
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "DISABLE_ROBOT_RESPONSE",
+ "info": "Disables robot spawning from alerts and from being wanted.",
+ "stype": "bool",
+ "value": false
}
]
diff --git a/data/json/harvest.json b/data/json/harvest.json
index 8e6b46cfabab8..9018323198017 100644
--- a/data/json/harvest.json
+++ b/data/json/harvest.json
@@ -9,6 +9,14 @@
"type": "harvest",
"entries": [ ]
},
+ {
+ "id": "fish_tiny",
+ "type": "harvest",
+ "entries": [
+ { "drop": "fish", "type": "flesh", "mass_ratio": 0.32 },
+ { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.08 }
+ ]
+ },
{
"id": "fish_small",
"type": "harvest",
diff --git a/data/json/item_actions.json b/data/json/item_actions.json
index 8f11bc7ac2ef0..143375a22a173 100644
--- a/data/json/item_actions.json
+++ b/data/json/item_actions.json
@@ -104,6 +104,11 @@
"id": "DIRECTIONAL_HOLOGRAM",
"name": "Create a moving hologram"
},
+ {
+ "type": "item_action",
+ "id": "MIND_SPLICER",
+ "name": "Extract data from memory banks"
+ },
{
"type": "item_action",
"id": "ROBOTCONTROL",
@@ -199,6 +204,16 @@
"id": "countdown",
"name": "Start countdown"
},
+ {
+ "type": "item_action",
+ "id": "learn_spell",
+ "name": "Learn spell"
+ },
+ {
+ "type": "item_action",
+ "id": "cast_spell",
+ "name": "Cast spell"
+ },
{
"type": "item_action",
"id": "holster",
@@ -612,12 +627,12 @@
{
"type": "item_action",
"id": "MP3",
- "name": "Turn on"
+ "name": "Play music"
},
{
"type": "item_action",
"id": "MP3_ON",
- "name": "Turn off"
+ "name": "Turn off music"
},
{
"type": "item_action",
diff --git a/data/json/item_groups.json b/data/json/item_groups.json
index 279cd8f8f8d92..36087a856abc6 100644
--- a/data/json/item_groups.json
+++ b/data/json/item_groups.json
@@ -37,6 +37,7 @@
[ "backpack", 38 ],
[ "slingpack", 19 ],
[ "pockknife", 14 ],
+ [ "roller_shoes_off", 10 ],
[ "knife_swissarmy", 10 ],
[ "hairpin", 5 ],
[ "fc_hairpin", 1 ],
@@ -100,6 +101,7 @@
[ "pine_bough", 20 ],
[ "acorns", 15 ],
[ "pinecone", 5 ],
+ [ "juniper", 5 ],
[ "hickory_root", 3 ],
[ "hickory_nut", 5 ],
[ "one_year_old_newspaper", 2 ],
@@ -733,6 +735,7 @@
[ "irradiated_lemon", 25 ],
[ "pear", 50 ],
[ "irradiated_pear", 25 ],
+ [ "juniper", 1 ],
[ "grapefruit", 5 ],
[ "irradiated_grapefruit", 2 ],
[ "cherries", 10 ],
@@ -844,6 +847,7 @@
[ "mask_hockey", 5 ],
[ "hockey_stick", 10 ],
[ "roller_blades", 20 ],
+ [ "roller_shoes_off", 10 ],
[ "jersey", 40 ],
[ "puck", 5 ],
[ "baseball", 5 ],
@@ -923,8 +927,8 @@
[ "lighter", 60 ],
[ "ref_lighter", 2 ],
[ "matches", 60 ],
- [ "sewing_kit", 30 ],
- [ "tailors_kit", 20 ],
+ [ "sewing_kit", 47 ],
+ [ "tailors_kit", 3 ],
[ "thread", 40 ],
[ "scissors", 50 ],
[ "soldering_iron", 70 ],
@@ -1903,8 +1907,8 @@
[ "towel", 40 ],
[ "bottle_plastic", 10 ],
[ "bottle_plastic_small", 5 ],
- [ "sewing_kit", 30 ],
- [ "tailors_kit", 20 ],
+ [ "sewing_kit", 47 ],
+ [ "tailors_kit", 3 ],
[ "thread", 40 ],
[ "rag", 1 ],
[ "scissors", 50 ],
@@ -2078,6 +2082,8 @@
[ "misc_repairkit", 5 ],
[ "mess_kit", 10 ],
[ "pot", 20 ],
+ [ "inflatable_boat", 25 ],
+ [ "hand_pump", 5 ],
[ "pot_copper", 5 ],
[ "bowl_pewter", 25 ],
[ "teapot", 5 ],
@@ -2125,8 +2131,8 @@
[ "lighter", 60 ],
[ "ref_lighter", 10 ],
[ "matches", 60 ],
- [ "sewing_kit", 30 ],
- [ "tailors_kit", 20 ],
+ [ "sewing_kit", 47 ],
+ [ "tailors_kit", 3 ],
[ "thread", 40 ],
[ "hammer", 35 ],
[ "flashlight", 40 ],
@@ -2214,7 +2220,13 @@
[ "l-stick", 1 ],
[ "tourist_table", 30 ],
[ "trailmap", 5 ],
- [ "chem_hexamine", 5 ]
+ [ "chem_hexamine", 5 ],
+ [ "flint_steel", 10 ],
+ [ "bottle_metal", 5 ],
+ [ "tarp", 10 ],
+ [ "esbit_stove", 10 ],
+ [ "bottle_folding", 10 ],
+ [ "mess_tin", 10 ]
]
},
{
@@ -2228,6 +2240,8 @@
[ "bat", 60 ],
[ "bat_metal", 60 ],
[ "boxing_gloves", 40 ],
+ [ "inflatable_boat", 35 ],
+ [ "hand_pump", 10 ],
[ "baseball", 60 ],
[ "football_armor", 10 ],
[ "helmet_football", 10 ],
@@ -2334,8 +2348,8 @@
[ "lighter", 60 ],
[ "ref_lighter", 2 ],
[ "matches", 60 ],
- [ "sewing_kit", 30 ],
- [ "tailors_kit", 20 ],
+ [ "sewing_kit", 47 ],
+ [ "tailors_kit", 3 ],
[ "thread", 40 ],
[ "hammer", 35 ],
[ "flashlight", 40 ],
@@ -2429,7 +2443,13 @@
[ "powered_earmuffs", 80 ],
[ "bandolier_wrist", 100 ],
[ "tourist_table", 20 ],
- [ "chem_hexamine", 5 ]
+ [ "chem_hexamine", 5 ],
+ [ "flint_steel", 10 ],
+ [ "bottle_metal", 5 ],
+ [ "tarp", 10 ],
+ [ "esbit_stove", 10 ],
+ [ "bottle_folding", 5 ],
+ [ "mess_tin", 10 ]
]
},
{
@@ -2538,6 +2558,7 @@
[ "seed_wheat", 5 ],
[ "seed_tomato", 5 ],
[ "seed_weed", 5 ],
+ [ "seed_flower", 5 ],
[ "seed_tobacco", 1 ],
[ "joint_roach", 5 ],
[ "pipe", 20 ],
@@ -2580,6 +2601,8 @@
[ "razor_blade", 10 ],
[ "survnote", 5 ],
[ "eclipse_glasses", 1 ],
+ [ "plastic_sheet", 5 ],
+ [ "box_medium", 5 ],
[ "thermos", 30 ]
]
},
@@ -2596,7 +2619,8 @@
[ "wrapper", 30 ],
[ "flyer", 15 ],
[ "scorecard", 10 ],
- [ "eclipse_glasses", 1 ]
+ [ "eclipse_glasses", 1 ],
+ [ "plastic_sheet", 5 ]
]
},
{
@@ -2623,6 +2647,7 @@
[ "leathersandals", 10 ],
[ "rollerskates", 1 ],
[ "roller_blades", 5 ],
+ [ "roller_shoes_off", 1 ],
[ "mocassins", 20 ]
]
},
@@ -2834,6 +2859,7 @@
[ "leathersandals", 100 ],
[ "rollerskates", 10 ],
[ "roller_blades", 20 ],
+ [ "roller_shoes_off", 10 ],
[ "boots_rubber", 20 ],
[ "clownshoes", 10 ],
[ "mocassins", 40 ]
@@ -3105,7 +3131,9 @@
[ "elec_hairtrimmer", 15 ],
[ "razor_blade", 5 ],
[ "kilt", 5 ],
- [ "l-stick", 1 ]
+ [ "l-stick", 1 ],
+ [ "flint_steel", 5 ],
+ [ "bottle_metal", 5 ]
]
},
{
@@ -3835,6 +3863,7 @@
[ "roller_blades", 20 ],
[ "rollerskates", 10 ],
[ "rollerskates", 10 ],
+ [ "roller_shoes_off", 10 ],
[ "survnote", 3 ],
[ "radio_car_box", 3 ],
[ "radiocontrol", 10 ],
@@ -3901,6 +3930,7 @@
"type": "item_group",
"id": "vault",
"items": [
+ { "group": "schematics", "prob": 5 },
[ "purifier", 12 ],
[ "plut_cell", 10 ],
[ "standard_template_construct", 5 ],
@@ -4060,6 +4090,8 @@
[ "mag_fieldrepair", 50 ],
[ "oxylamp", 50 ],
[ "polisher", 6 ],
+ [ "inflatable_boat", 10 ],
+ [ "hand_pump", 10 ],
[ "wakizashi_inferior", 30 ],
[ "katana_inferior", 30 ],
[ "zweihander_inferior", 30 ],
@@ -4315,6 +4347,7 @@
[ "boots_hiking", 10 ],
[ "roller_blades", 20 ],
[ "rollerskates", 10 ],
+ [ "roller_shoes_off", 10 ],
[ "runner_bag", 5 ],
[ "gloves_tactical", 1 ],
[ "glasses_bal", 5 ],
@@ -4452,6 +4485,8 @@
[ "kukri", 2 ],
[ "knife_hunting", 4 ],
[ "knife_rambo", 20 ],
+ [ "inflatable_boat", 40 ],
+ [ "hand_pump", 40 ],
[ "throwing_knife", 14 ],
[ "throwing_axe", 4 ],
[ "duffelbag", 25 ],
@@ -4526,7 +4561,10 @@
[ "bootsheath", 10 ],
[ "survnote", 1 ],
[ "solarpack", 1 ],
- [ "tourist_table", 5 ]
+ [ "tourist_table", 5 ],
+ [ "chem_hexamine", 5 ],
+ [ "esbit_stove", 10 ],
+ [ "mess_tin", 10 ]
]
},
{
@@ -4539,6 +4577,8 @@
[ "soup_meat", 15 ],
[ "soup_chicken", 15 ],
[ "soup_mushroom", 15 ],
+ [ "inflatable_boat", 5 ],
+ [ "hand_pump", 5 ],
[ "soup_tomato", 15 ],
[ "soup_dumplings", 15 ],
[ "curry_veggy", 15 ],
@@ -4620,8 +4660,8 @@
[ "lighter", 60 ],
[ "ref_lighter", 5 ],
[ "matches", 60 ],
- [ "sewing_kit", 30 ],
- [ "tailors_kit", 20 ],
+ [ "sewing_kit", 47 ],
+ [ "tailors_kit", 3 ],
[ "thread", 40 ],
[ "hammer", 35 ],
[ "extinguisher", 20 ],
@@ -4673,7 +4713,14 @@
[ "holster", 4 ],
[ "bandolier_shotgun", 3 ],
[ "survnote", 2 ],
- [ "bodypillow", 1 ]
+ [ "bodypillow", 1 ],
+ [ "flint_steel", 6 ],
+ [ "bottle_metal", 2 ],
+ [ "tarp", 15 ],
+ [ "chem_hexamine", 4 ],
+ [ "esbit_stove", 8 ],
+ [ "bottle_folding", 6 ],
+ [ "mess_tin", 8 ]
]
},
{
@@ -5055,6 +5102,8 @@
[ "seed_carrot", 1 ],
[ "seed_pumpkin", 1 ],
[ "seed_sunflower", 1 ],
+ [ "seed_flower", 1 ],
+ [ "seed_cactus", 1 ],
[ "seed_corn", 1 ],
[ "soybean_seed", 1 ],
[ "raw_edamame", 1 ],
@@ -5227,8 +5276,8 @@
[ "lighter", 50 ],
[ "ref_lighter", 4 ],
[ "matches", 60 ],
- [ "sewing_kit", 30 ],
- [ "tailors_kit", 20 ],
+ [ "sewing_kit", 47 ],
+ [ "tailors_kit", 3 ],
[ "thread", 40 ],
[ "scissors", 50 ],
[ "soldering_iron", 70 ],
@@ -5329,7 +5378,6 @@
[ "bio_torsionratchet", 10 ],
[ "bio_tools", 10 ],
[ "bio_ups", 10 ],
- [ "bio_storage", 10 ],
[ "bio_flashlight", 10 ],
[ "bio_tattoo_led", 10 ],
[ "bio_lighter", 10 ],
@@ -5422,7 +5470,6 @@
"items": [
[ "bio_power_storage", 10 ],
[ "bio_tools", 10 ],
- [ "bio_storage", 10 ],
[ "bio_flashlight", 10 ],
[ "bio_tattoo_led", 10 ],
[ "bio_lighter", 10 ],
@@ -5595,7 +5642,10 @@
[ "holster", 15 ],
[ "sholster", 10 ],
[ "bandolier_shotgun", 8 ],
- [ "solarpack", 5 ]
+ [ "solarpack", 5 ],
+ [ "chem_hexamine", 3 ],
+ [ "esbit_stove", 6 ],
+ [ "mess_tin", 4 ]
]
},
{
@@ -5994,6 +6044,8 @@
[ "hose", 15 ],
[ "water_faucet", 20 ],
[ "screwdriver", 40 ],
+ [ "inflatable_boat", 10 ],
+ [ "hand_pump", 10 ],
[ "wrench", 30 ],
[ "pipe", 20 ],
[ "boots", 70 ],
@@ -6011,7 +6063,6 @@
[ "flashlight", 40 ],
[ "water_purifier", 5 ],
[ "bio_tools", 10 ],
- [ "bio_storage", 10 ],
[ "bio_flashlight", 10 ],
[ "bio_lighter", 10 ],
[ "bio_magnet", 10 ],
@@ -7009,7 +7060,10 @@
[ "bot_manhack", 1 ],
[ "bot_grenade_hack", 1 ],
[ "l-stick", 1 ],
- [ "solarpack", 2 ]
+ [ "solarpack", 2 ],
+ [ "chem_hexamine", 5 ],
+ [ "esbit_stove", 8 ],
+ [ "mess_tin", 4 ]
]
},
{
@@ -7990,6 +8044,9 @@
[ "can_drink_unsealed", 2 ],
[ "can_food_unsealed", 1 ],
[ "box_small", 2 ],
+ [ "box_medium", 1 ],
+ [ "box_large", 1 ],
+ [ "plastic_sheet", 1 ],
[ "jug_plastic", 1 ],
[ "jar_glass", 2 ],
[ "jar_3l_glass", 1 ],
@@ -8026,6 +8083,8 @@
[ "game_watch", 15 ],
[ "atomic_light", 1 ],
[ "manual_dodge_kid", 5 ],
+ [ "inflatable_boat", 10 ],
+ [ "hand_pump", 15 ],
[ "chocolate", 30 ],
[ "candy", 45 ],
[ "candy2", 45 ],
@@ -8287,6 +8346,8 @@
[ "seed_zucchini", 60 ],
[ "seed_cotton_boll", 10 ],
[ "seed_tobacco", 10 ],
+ [ "seed_cactus", 10 ],
+ [ "seed_flower", 60 ],
[ "seed_beans", 60 ],
[ "seed_chili_pepper", 60 ],
[ "seed_tomato", 60 ]
@@ -8343,7 +8404,9 @@
[ "pointy_stick", 50 ],
[ "copper_knife", 10 ],
[ "copper_ax", 10 ],
- [ "bone_flute", 10 ]
+ [ "bone_flute", 10 ],
+ [ "spear_stone", 50 ],
+ [ "hand_axe", 50 ]
]
},
{
@@ -8913,6 +8976,7 @@
"id": "recycle_paper",
"type": "item_group",
"items": [
+ { "group": "schematics", "prob": 2 },
[ "mag_dude", 25 ],
[ "mag_beauty", 25 ],
[ "mag_glam", 25 ],
@@ -8955,6 +9019,9 @@
{ "item": "paper", "prob": 50, "charges-min": 1, "charges-max": 15 },
[ "wrapper", 35 ],
[ "phonebook", 55 ],
+ [ "box_small", 55 ],
+ [ "box_medium", 35 ],
+ [ "box_large", 15 ],
[ "one_year_old_newspaper", 45 ],
[ "months_old_newspaper", 50 ],
[ "weeks_old_newspaper", 50 ],
@@ -9514,8 +9581,8 @@
"id": "sewing_group",
"type": "item_group",
"items": [
- [ "sewing_kit", 5 ],
- [ "tailors_kit", 5 ],
+ [ "sewing_kit", 1 ],
+ [ "tailors_kit", 9 ],
[ "knitting_needles", 15 ],
[ "kevlar_plate", 10 ],
[ "leather", 10 ],
@@ -9714,5 +9781,27 @@
"type": "item_group",
"id": "meth_ingredients",
"items": [ [ "dayquil", 2 ], [ "aspirin", 40 ], [ "adderall", 5 ], [ "energy_drink", 2 ], [ "caffeine", 20 ] ]
+ },
+ {
+ "id": "schematics",
+ "type": "item_group",
+ "items": [
+ [ "schematics_nursebot", 10 ],
+ [ "schematics_copbot", 50 ],
+ [ "schematics_eyebot", 50 ],
+ [ "schematics_secubot", 50 ],
+ [ "schematics_skitterbot", 50 ],
+ [ "schematics_chickenbot", 5 ],
+ [ "schematics_hazmatbot", 50 ],
+ [ "schematics_riotbot", 50 ],
+ [ "schematics_sciencebot", 10 ],
+ [ "schematics_tankbot", 5 ],
+ [ "schematics_tripod", 5 ],
+ [ "schematics_molebot", 20 ],
+ [ "schematics_dispatch", 25 ],
+ [ "schematics_dispatch_military", 20 ],
+ [ "schematics_antimateriel", 20 ],
+ [ "schematics_searchlight", 50 ]
+ ]
}
]
diff --git a/data/json/itemgroups/ammo.json b/data/json/itemgroups/ammo.json
index a89fa3f844ac0..191e56e9de66e 100644
--- a/data/json/itemgroups/ammo.json
+++ b/data/json/itemgroups/ammo.json
@@ -147,7 +147,17 @@
"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 ],
+ [ "4570_sp", 40 ],
+ [ "4570_pen", 20 ],
+ [ "4570_low", 40 ],
+ [ "762_m87", 25 ],
+ [ "8mm_civilian", 15 ]
+ ]
},
{
"type": "item_group",
@@ -193,6 +203,10 @@
[ "reloaded_308", 40 ],
[ "reloaded_556", 10 ],
[ "reloaded_556_incendiary", 5 ],
+ [ "reloaded_4570_sp", 15 ],
+ [ "reloaded_4570_pen", 5 ],
+ [ "reloaded_4570_low", 15 ],
+ [ "reloaded_4570_bp", 10 ],
[ "reloaded_762_51", 10 ],
[ "reloaded_762_51_incendiary", 5 ],
[ "reloaded_762_54R", 40 ],
@@ -370,6 +384,7 @@
{ "item": "44_casing", "prob": 80, "count": 20 },
{ "item": "45_casing", "prob": 80, "count": 20 },
{ "item": "454_casing", "prob": 60, "count": 5 },
+ { "item": "4570_casing", "prob": 60, "count": 10 },
{ "item": "46mm_casing", "prob": 60, "count": 20 },
{ "item": "50_casing", "prob": 60, "count": 5 },
{ "item": "500_casing", "prob": 60, "count": 5 },
@@ -390,7 +405,8 @@
"items": [
{ "item": "light_battery_cell", "prob": 50, "charges-min": 0, "charges-max": 100 },
{ "item": "light_minus_battery_cell", "prob": 30, "charges-min": 0, "charges-max": 50 },
- { "item": "light_plus_battery_cell", "prob": 20, "charges-min": 0, "charges-max": 150 }
+ { "item": "light_plus_battery_cell", "prob": 20, "charges-min": 0, "charges-max": 150 },
+ { "item": "light_disposable_cell", "prob": 25, "charges-min": 0, "charges-max": 300 }
]
},
{
@@ -399,7 +415,8 @@
"items": [
{ "item": "light_battery_cell", "prob": 50, "charges-min": 100, "charges-max": 100 },
{ "item": "light_minus_battery_cell", "prob": 30, "charges-min": 50, "charges-max": 50 },
- { "item": "light_plus_battery_cell", "prob": 20, "charges-min": 150, "charges-max": 150 }
+ { "item": "light_plus_battery_cell", "prob": 20, "charges-min": 150, "charges-max": 150 },
+ { "item": "light_disposable_cell", "prob": 25, "charges-min": 300, "charges-max": 300 }
]
},
{
@@ -407,7 +424,8 @@
"id": "ammo_medium_batteries",
"items": [
{ "item": "medium_battery_cell", "prob": 80, "charges-min": 0, "charges-max": 500 },
- { "item": "medium_plus_battery_cell", "prob": 20, "charges-min": 0, "charges-max": 600 }
+ { "item": "medium_plus_battery_cell", "prob": 20, "charges-min": 0, "charges-max": 600 },
+ { "item": "medium_disposable_cell", "prob": 40, "charges-min": 0, "charges-max": 1200 }
]
},
{
@@ -415,7 +433,8 @@
"id": "ammo_medium_batteries_full",
"items": [
{ "item": "medium_battery_cell", "prob": 80, "charges-min": 500, "charges-max": 500 },
- { "item": "medium_plus_battery_cell", "prob": 20, "charges-min": 600, "charges-max": 600 }
+ { "item": "medium_plus_battery_cell", "prob": 20, "charges-min": 600, "charges-max": 600 },
+ { "item": "medium_disposable_cell", "prob": 40, "charges-min": 1200, "charges-max": 1200 }
]
},
{
@@ -423,7 +442,8 @@
"id": "ammo_heavy_batteries",
"items": [
{ "item": "heavy_battery_cell", "prob": 80, "charges-min": 0, "charges-max": 1000 },
- { "item": "heavy_plus_battery_cell", "prob": 20, "charges-min": 0, "charges-max": 1250 }
+ { "item": "heavy_plus_battery_cell", "prob": 20, "charges-min": 0, "charges-max": 1250 },
+ { "item": "heavy_disposable_cell", "prob": 40, "charges-min": 0, "charges-max": 2500 }
]
},
{
@@ -431,7 +451,8 @@
"id": "ammo_heavy_batteries_full",
"items": [
{ "item": "heavy_battery_cell", "prob": 80, "charges-min": 1000, "charges-max": 1000 },
- { "item": "heavy_plus_battery_cell", "prob": 20, "charges-min": 1250, "charges-max": 1250 }
+ { "item": "heavy_plus_battery_cell", "prob": 20, "charges-min": 1250, "charges-max": 1250 },
+ { "item": "heavy_disposable_cell", "prob": 40, "charges-min": 2500, "charges-max": 2500 }
]
},
{
diff --git a/data/json/itemgroups/books.json b/data/json/itemgroups/books.json
index 47de0eeb14631..34ed61141f797 100644
--- a/data/json/itemgroups/books.json
+++ b/data/json/itemgroups/books.json
@@ -564,5 +564,10 @@
"id": "record_patient",
"type": "item_group",
"items": [ [ "record_patient", 100 ] ]
+ },
+ {
+ "id": "tailorbooks",
+ "type": "item_group",
+ "items": [ [ "tailor_portfolio", 30 ], [ "mag_tailor", 50 ], [ "manual_tailor", 30 ], [ "textbook_tailor", 30 ] ]
}
]
diff --git a/data/json/itemgroups/clothing.json b/data/json/itemgroups/clothing.json
index 1cf4a5a40ae53..42609eddfd1fb 100644
--- a/data/json/itemgroups/clothing.json
+++ b/data/json/itemgroups/clothing.json
@@ -187,6 +187,19 @@
}
]
},
+ {
+ "id": "clothing_prisoner_shoes",
+ "type": "item_group",
+ "//": "All the footwear that prisoners might wear.",
+ "items": [
+ [ "sneakers", 80 ],
+ [ "boots", 70 ],
+ [ "lowtops", 45 ],
+ [ "golf_shoes", 20 ],
+ [ "boots_combat", 10 ],
+ [ "boots_hiking", 20 ]
+ ]
+ },
{
"id": "clothing_tactical_leg",
"type": "item_group",
@@ -397,5 +410,70 @@
{ "item": "socks" },
{ "item": "boots" }
]
+ },
+ {
+ "id": "underwear",
+ "type": "item_group",
+ "items": [
+ [ "bra", 70 ],
+ [ "sports_bra", 50 ],
+ [ "bikini_top", 10 ],
+ [ "panties", 70 ],
+ [ "bikini_bottom", 10 ],
+ [ "panties", 70 ],
+ [ "boy_shorts", 50 ],
+ [ "boxer_shorts", 70 ],
+ [ "briefs", 50 ],
+ [ "undershirt", 50 ],
+ [ "long_undertop", 20 ],
+ [ "under_armor", 20 ],
+ [ "tank_top", 50 ],
+ [ "boxer_shorts", 70 ],
+ [ "long_underpants", 20 ],
+ [ "under_armor_shorts", 20 ]
+ ]
+ },
+ {
+ "id": "jewelry_furshop",
+ "type": "item_group",
+ "items": [
+ [ "gold_watch", 50 ],
+ [ "sf_watch", 50 ],
+ [ "brooch", 80 ],
+ [ "pearl_collar", 50 ],
+ [ "silver_bracelet", 30 ],
+ [ "gold_bracelet", 20 ]
+ ]
+ },
+ {
+ "id": "dress_shop",
+ "type": "item_group",
+ "items": [
+ [ "skirt", 40 ],
+ [ "skirt_leather", 5 ],
+ [ "dress", 120 ],
+ [ "sundress", 50 ],
+ [ "nanoskirt", 30 ],
+ [ "camisole", 60 ],
+ [ "corset", 20 ],
+ [ "stockings", 50 ],
+ [ "leggings", 20 ],
+ [ "tights", 50 ]
+ ]
+ },
+ {
+ "id": "dress_shoes",
+ "type": "item_group",
+ "items": [ [ "dress_shoes", 50 ], [ "heels", 50 ], [ "leathersandals", 20 ] ]
+ },
+ {
+ "id": "wedding_dresses",
+ "type": "item_group",
+ "items": [ [ "dress", 50 ], [ "veil_wedding", 150 ], [ "dress_wedding", 150 ] ]
+ },
+ {
+ "id": "wedding_suits",
+ "type": "item_group",
+ "items": [ [ "tux", 100 ], [ "suit", 80 ], [ "waistcoat", 50 ], [ "dress_shirt", 100 ], [ "undershirt", 50 ] ]
}
]
diff --git a/data/json/itemgroups/collections_trades.json b/data/json/itemgroups/collections_trades.json
index 766a5ad852a99..694a6b6e922cc 100644
--- a/data/json/itemgroups/collections_trades.json
+++ b/data/json/itemgroups/collections_trades.json
@@ -21,6 +21,9 @@
{ "group": "hardware_bulk", "prob": 10 },
{ "group": "hardware_books", "prob": 10 },
[ "survnote", 1 ],
+ [ "box_medium", 2 ],
+ [ "box_large", 2 ],
+ [ "plastic_sheet", 2 ],
[ "machete", 5 ],
[ "boots_combat", 10 ],
[ "boots_hiking", 5 ],
diff --git a/data/json/itemgroups/guns.json b/data/json/itemgroups/guns.json
index 33fd8e4ed72e7..35af9f82c0ac7 100644
--- a/data/json/itemgroups/guns.json
+++ b/data/json/itemgroups/guns.json
@@ -61,6 +61,7 @@
"id": "guns_pistol_obscure",
"//": "Imported or otherwise very obscure pistols.",
"items": [
+ { "item": "bfr", "prob": 100, "charges-min": 0, "charges-max": 5 },
{ "item": "cop_38", "prob": 100, "charges-min": 0, "charges-max": 4 },
{ "item": "lemat_revolver", "prob": 150, "charges-min": 0, "charges-max": 9 },
{ "item": "makarov", "prob": 100, "charges-min": 0, "charges-max": 8 },
@@ -145,6 +146,7 @@
"items": [
{ "item": "browning_blr", "prob": 25, "charges-min": 0, "charges-max": 4 },
{ "item": "garand", "prob": 65, "charges-min": 0, "charges-max": 8 },
+ { "item": "ar10", "prob": 20, "charges-min": 0, "charges-max": 20 },
{ "item": "ar15", "prob": 30, "charges-min": 0, "charges-max": 30 },
{ "item": "cx4", "prob": 45, "charges-min": 0, "charges-max": 15 },
{ "item": "ksub2000", "prob": 30, "charges-min": 0, "charges-max": 15 },
@@ -155,7 +157,8 @@
{ "item": "ruger_1022", "prob": 70, "charges-min": 0, "charges-max": 10 },
{ "item": "ruger_mini", "prob": 60, "charges-min": 0, "charges-max": 5 },
{ "item": "sks", "prob": 40, "charges-min": 0, "charges-max": 10 },
- { "item": "win70", "prob": 15, "charges-min": 0, "charges-max": 3 }
+ { "item": "win70", "prob": 15, "charges-min": 0, "charges-max": 3 },
+ { "item": "1895sbl", "prob": 15, "charges-min": 0, "charges-max": 7 }
]
},
{
@@ -181,7 +184,9 @@
{ "item": "mosin91_30_ebr", "prob": 20, "charges-min": 0, "charges-max": 5 },
{ "item": "remington_700", "prob": 20, "charges-min": 0, "charges-max": 4 },
{ "item": "savage_111f", "prob": 15, "charges-min": 0, "charges-max": 3 },
- { "item": "weatherby_5", "prob": 15, "charges-min": 0, "charges-max": 3 }
+ { "item": "sharps", "prob": 15, "charges-min": 0, "charges-max": 1 },
+ { "item": "weatherby_5", "prob": 15, "charges-min": 0, "charges-max": 3 },
+ { "item": "hk417_13", "prob": 40, "charges-min": 0, "charges-max": 20 }
]
},
{
@@ -207,7 +212,8 @@
{ "item": "rm88_battle_rifle", "prob": 25, "charges-min": 0, "charges-max": 50 },
{ "item": "sig552", "prob": 100, "charges-min": 0, "charges-max": 30 },
{ "item": "scar_l", "prob": 50, "charges-min": 0, "charges-max": 30 },
- { "item": "scar_h", "prob": 50, "charges-min": 0, "charges-max": 20 }
+ { "item": "scar_h", "prob": 50, "charges-min": 0, "charges-max": 20 },
+ { "item": "m110a1", "prob": 50, "charges-min": 0, "charges-max": 20 }
]
},
{
@@ -329,6 +335,7 @@
[ "m202_flash", 100 ],
[ "m235tpa", 150 ],
[ "m3_carlgustav", 50 ],
+ [ "AT4", 50 ],
[ "84x246mm_he", 100 ],
[ "84x246mm_hedp", 80 ],
[ "84x246mm_smoke", 100 ]
@@ -444,7 +451,8 @@
{ "group": "guns_cop", "prob": 100 },
{ "item": "hk_ump45", "prob": 15, "charges-min": 0, "charges-max": 25 },
{ "item": "m1014", "prob": 10, "charges-min": 0, "charges-max": 8 },
- { "item": "m4a1", "prob": 35, "charges-min": 0, "charges-max": 30 }
+ { "item": "m4a1", "prob": 35, "charges-min": 0, "charges-max": 30 },
+ { "item": "hk417_13", "prob": 30, "charges-min": 0, "charges-max": 20 }
]
},
{
diff --git a/data/json/itemgroups/locations.json b/data/json/itemgroups/locations.json
index 5896cb5581786..a3e75ce86cfc3 100644
--- a/data/json/itemgroups/locations.json
+++ b/data/json/itemgroups/locations.json
@@ -165,7 +165,7 @@
"id": "prison_textile",
"type": "item_group",
"subtype": "collection",
- "entries": [ { "item": "blanket", "prob": 25 }, { "item": "jumpsuit", "prob": 35 } ]
+ "entries": [ { "item": "blanket", "prob": 25 }, { "item": "striped_shirt", "prob": 35 }, { "item": "striped_shirt", "prob": 35 } ]
},
{
"id": "bowling_alcohol",
@@ -508,5 +508,143 @@
{ "item": "gasoline", "prob": 30, "charges-min": 450, "charges-max": 4000, "container-item": "jerrycan" },
{ "item": "gasoline", "prob": 10, "charges-min": 2650, "charges-max": 10000, "container-item": "jerrycan_big" }
]
+ },
+ {
+ "type": "item_group",
+ "id": "oa_ig_ts_tables",
+ "//": "for cs_tire_shop",
+ "items": [
+ [ "radio", 30 ],
+ [ "rag", 30 ],
+ [ "cell_phone", 20 ],
+ [ "mag_mechanics", 20 ],
+ [ "manual_mechanics", 10 ],
+ [ "jack", 60 ],
+ [ "jack_small", 60 ],
+ [ "jack_makeshift", 30 ],
+ [ "wrench", 50 ],
+ [ "gloves_work", 30 ],
+ [ "glasses_safety", 20 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "oa_ig_ts_lockers",
+ "//": "for cs_tire_shop",
+ "items": [
+ { "group": "ammo_pocket_batteries_full", "prob": 10 },
+ [ "radio", 10 ],
+ [ "rag", 30 ],
+ [ "jack", 20 ],
+ [ "jack_small", 30 ],
+ [ "flashlight", 20 ],
+ [ "heavy_flashlight", 10 ],
+ [ "jumper_cable", 20 ],
+ [ "jumper_cable_heavy", 10 ],
+ [ "pliers", 10 ],
+ [ "battery_motorbike", 10 ],
+ [ "battery_car", 10 ],
+ [ "stereo", 10 ],
+ [ "wrench", 10 ],
+ [ "gloves_work", 10 ],
+ [ "glasses_safety", 10 ],
+ [ "solar_cell", 10 ],
+ [ "screwdriver", 15 ],
+ [ "superglue", 5 ],
+ [ "polisher", 15 ],
+ [ "solar_panel", 15 ],
+ [ "spare_tire_carrier", 10 ],
+ [ "mounted_spare_tire", 10 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "oa_ig_ts_crates",
+ "//": "for cs_tire_shop",
+ "items": [
+ { "group": "ammo_any_batteries_full", "prob": 10 },
+ [ "radio", 10 ],
+ [ "rag", 30 ],
+ [ "jack", 20 ],
+ [ "jack_small", 30 ],
+ [ "flashlight", 20 ],
+ [ "heavy_flashlight", 10 ],
+ [ "jumper_cable", 20 ],
+ [ "jumper_cable_heavy", 10 ],
+ [ "pliers", 10 ],
+ [ "battery_motorbike", 10 ],
+ [ "battery_car", 10 ],
+ [ "stereo", 10 ],
+ [ "wrench", 10 ],
+ [ "gloves_work", 10 ],
+ [ "glasses_safety", 10 ],
+ [ "solar_cell", 10 ],
+ [ "screwdriver", 15 ],
+ [ "superglue", 5 ],
+ [ "polisher", 15 ],
+ [ "solar_panel", 15 ],
+ [ "spare_tire_carrier", 10 ],
+ [ "mounted_spare_tire", 10 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "oa_ig_ts_tires",
+ "//": "for cs_tire_shop",
+ "items": [ [ "wheel_small", 30 ], [ "wheel", 30 ], [ "wheel_wide", 20 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "ss_merch_1",
+ "//": "for cs_sex_shop",
+ "items": [
+ [ "corset", 20 ],
+ [ "vibrator", 20 ],
+ [ "leather_cat_tail", 20 ],
+ [ "leather_cat_ears", 20 ],
+ [ "leather_collar", 20 ],
+ [ "bondage_mask", 20 ],
+ [ "bullwhip", 20 ],
+ [ "candle", 20 ],
+ [ "condom", 20 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "ss_merch_2",
+ "//": "for cs_sex_shop",
+ "items": [ [ "mag_porn", 50 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "ss_merch_3",
+ "//": "for cs_sex_shop",
+ "items": [
+ [ "wolfsuit", 15 ],
+ [ "dinosuit", 15 ],
+ [ "bondage_suit", 10 ],
+ [ "chaps_leather", 10 ],
+ [ "hot_pants", 20 ],
+ [ "hot_pants_leather", 20 ],
+ [ "hot_pants_fur", 20 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "backroom",
+ "//": "for cs_sex_shop",
+ "items": [
+ [ "weed", 10 ],
+ [ "coke", 10 ],
+ [ "meth", 10 ],
+ [ "aspirin", 10 ],
+ [ "mag_porn", 10 ],
+ [ "purse", 10 ],
+ [ "hairpin", 5 ],
+ [ "syringe", 10 ],
+ [ "blanket", 20 ],
+ [ "candle", 20 ],
+ [ "pillow", 20 ]
+ ]
}
]
diff --git a/data/json/itemgroups/magazines.json b/data/json/itemgroups/magazines.json
index 41c5ec71dfa12..b37bf8521ca7a 100644
--- a/data/json/itemgroups/magazines.json
+++ b/data/json/itemgroups/magazines.json
@@ -28,7 +28,9 @@
[ "scarhmag", 50 ],
[ "scarhbigmag", 20 ],
[ "stanag30", 20 ],
- [ "stanag50", 5 ]
+ [ "stanag50", 5 ],
+ [ "hk417mag_20rd", 30 ],
+ [ "hk417mag_10rd", 20 ]
]
},
{
@@ -84,7 +86,8 @@
[ "stanag30", 20 ],
[ "ump45mag", 20 ],
[ "usp45mag", 10 ],
- [ "usp9mag", 10 ]
+ [ "usp9mag", 10 ],
+ [ "hk417mag_20rd", 20 ]
]
},
{
@@ -194,7 +197,8 @@
[ "ruger5", 50 ],
[ "stanag10", 30 ],
[ "ruger30", 20 ],
- [ "stanag30", 10 ]
+ [ "stanag30", 10 ],
+ [ "ar10mag_20rd", 30 ]
]
},
{
diff --git a/data/json/itemgroups/mall_item_groups.json b/data/json/itemgroups/mall_item_groups.json
index a1a1629e066c2..90ce066f31814 100644
--- a/data/json/itemgroups/mall_item_groups.json
+++ b/data/json/itemgroups/mall_item_groups.json
@@ -155,6 +155,56 @@
[ "knife_rambo", 5 ]
]
},
+ {
+ "id": "leather_shop",
+ "type": "item_group",
+ "items": [
+ [ "hot_pants_leather", 20 ],
+ [ "cloak_leather", 20 ],
+ [ "duster_leather", 20 ],
+ [ "jacket_leather_red", 20 ],
+ [ "skirt_leather", 20 ],
+ [ "touring_suit", 20 ],
+ [ "chestwrap_leather", 20 ],
+ [ "chaps_leather", 35 ],
+ [ "trenchcoat_leather", 10 ],
+ [ "vest_leather", 50 ],
+ [ "apron_leather", 10 ],
+ [ "backpack_leather", 7 ],
+ [ "pants_leather", 20 ],
+ [ "bikini_top_leather", 20 ],
+ [ "jacket_leather", 5 ]
+ ]
+ },
+ {
+ "id": "leather_shop_accessories",
+ "type": "item_group",
+ "items": [
+ [ "leather_belt", 20 ],
+ [ "gloves_leather", 35 ],
+ [ "leather_harness_dog", 10 ],
+ [ "pockknife", 50 ],
+ [ "leather_tarp", 10 ],
+ [ "leather_cat_tail", 7 ],
+ [ "leather_cat_ears", 20 ],
+ [ "leather_collar", 20 ],
+ [ "bondage_mask", 5 ]
+ ]
+ },
+ {
+ "id": "leather_shop_repair",
+ "type": "item_group",
+ "items": [
+ [ "sewing_kit", 5 ],
+ [ "tailors_kit", 50 ],
+ [ "thread", 10 ],
+ [ "string_6", 50 ],
+ [ "leather", 10 ],
+ [ "fur", 7 ],
+ [ "tanned_hide", 20 ],
+ [ "tanned_pelt", 20 ]
+ ]
+ },
{
"id": "key_shop",
"type": "item_group",
@@ -230,7 +280,97 @@
[ "candle", 50 ],
[ "scissors", 30 ],
[ "soap", 45 ],
- [ "tailors_kit", 25 ]
+ [ "tailors_kit", 25 ],
+ [ "shavingkit", 20 ],
+ [ "elec_hairtrimmer", 20 ]
+ ]
+ },
+ {
+ "id": "costume_clothes",
+ "type": "item_group",
+ "items": [
+ [ "cloak", 40 ],
+ [ "cloak_leather", 30 ],
+ [ "cloak_wool", 40 ],
+ [ "jedi_cloak", 10 ],
+ [ "corset", 5 ],
+ [ "tux", 10 ],
+ [ "gown", 5 ],
+ [ "dress_wedding", 5 ],
+ [ "maid_dress", 35 ],
+ [ "postman_shirt", 50 ],
+ [ "postman_shorts", 30 ],
+ [ "robe", 45 ],
+ [ "kimono", 25 ],
+ [ "yukata", 20 ],
+ [ "coat_lab", 20 ],
+ [ "clown_suit", 20 ]
+ ]
+ },
+ {
+ "id": "costume_accessories",
+ "type": "item_group",
+ "items": [
+ [ "clownshoes", 20 ],
+ [ "bondage_mask", 30 ],
+ [ "long_glove_white", 20 ],
+ [ "porkpie", 10 ],
+ [ "postman_hat", 5 ],
+ [ "maid_hat", 10 ],
+ [ "fedora", 5 ],
+ [ "scarf_long", 5 ],
+ [ "mask_guy_fawkes", 35 ],
+ [ "mask_hockey", 20 ],
+ [ "cowboy_hat", 20 ],
+ [ "tophat", 25 ],
+ [ "hat_sombrero", 25 ],
+ [ "apron_leather", 20 ]
+ ]
+ },
+ {
+ "id": "costume_weapons",
+ "type": "item_group",
+ "items": [
+ [ "cutlass", 1 ],
+ [ "broadsword", 1 ],
+ [ "nodachi", 1 ],
+ [ "zweihander", 1 ],
+ [ "longsword", 1 ],
+ [ "katana", 1 ],
+ [ "kris", 1 ],
+ [ "rapier", 1 ],
+ [ "cavalry_sabre", 1 ],
+ [ "glaive", 1 ],
+ [ "naginata", 1 ],
+ [ "naginata_fake", 5 ],
+ [ "naginata_inferior", 3 ],
+ [ "estoc", 2 ],
+ [ "estoc_fake", 6 ],
+ [ "qiang", 3 ],
+ [ "halberd", 2 ],
+ [ "halberd_fake", 7 ],
+ [ "katana_fake", 4 ],
+ [ "katana_inferior", 8 ],
+ [ "zweihander_fake", 4 ],
+ [ "zweihander_inferior", 8 ],
+ [ "cutlass_fake", 4 ],
+ [ "cutlass_inferior", 8 ],
+ [ "jian", 2 ],
+ [ "jian_fake", 4 ],
+ [ "jian_inferior", 8 ],
+ [ "scimitar", 4 ],
+ [ "scimitar_fake", 8 ],
+ [ "arming_sword", 4 ],
+ [ "arming_sword_fake", 8 ],
+ [ "broadsword_fake", 4 ],
+ [ "broadsword_inferior", 8 ],
+ [ "longsword_fake", 4 ],
+ [ "longsword_inferior", 8 ],
+ [ "rapier_fake", 4 ],
+ [ "cavalry_sabre_fake", 4 ],
+ [ "wakizashi_fake", 4 ],
+ [ "wakizashi_inferior", 8 ],
+ [ "kris_fake", 8 ]
]
}
]
diff --git a/data/json/itemgroups/supplies.json b/data/json/itemgroups/supplies.json
index 726e1d74704de..4a6f8dc9fccf3 100644
--- a/data/json/itemgroups/supplies.json
+++ b/data/json/itemgroups/supplies.json
@@ -56,6 +56,8 @@
"//": "large quantities of common building supplies.",
"items": [
{ "item": "2x4", "prob": 100, "count": [ 5, 20 ] },
+ { "item": "wood_sheet", "prob": 50, "count": [ 1, 2 ] },
+ { "item": "wood_panel", "prob": 60, "count": [ 1, 4 ] },
{ "item": "rock", "prob": 70, "count": [ 10, 20 ] },
{ "item": "coal_lump", "prob": 20, "count": [ 1, 10 ] },
{ "item": "material_cement", "prob": 100, "charges": 500, "container-item": "bag_canvas" },
@@ -67,6 +69,7 @@
{ "item": "rope_6", "prob": 10 },
{ "item": "sheet_metal", "prob": 10 },
{ "item": "sheet_metal_small", "prob": 10 },
+ { "item": "plastic_sheet", "prob": 30, "count": [ 5, 15 ] },
{ "item": "rebar", "prob": 40, "count": [ 5, 10 ] },
{ "item": "brick", "prob": 40, "count": [ 5, 10 ] },
{ "item": "pipe", "prob": 40, "count": [ 5, 10 ] },
@@ -101,6 +104,7 @@
[ "bubblewrap", 20 ],
[ "pump_complex", 5 ],
[ "well_pump", 5 ],
+ [ "plastic_sheet", 20 ],
[ "recharge_station", 20 ]
]
},
@@ -132,6 +136,8 @@
{
"distribution": [
{ "item": "2x4", "prob": 500, "count": [ 20, 50 ] },
+ { "item": "wood_sheet", "prob": 400, "count": [ 10, 30 ] },
+ { "item": "wood_panel", "prob": 300, "count": [ 15, 40 ] },
{ "item": "log", "prob": 200, "count": [ 5, 10 ] },
{ "item": "stick_long", "prob": 100, "count": [ 10, 20 ] },
{ "item": "stick", "prob": 50, "count": [ 5, 10 ] },
@@ -139,6 +145,7 @@
],
"prob": 100
},
+ [ "plastic_sheet", 50 ],
[ "pine_bough", 10 ]
]
},
@@ -158,6 +165,10 @@
[ "rope_30", 35 ],
[ "circsaw_blade", 8 ],
[ "glass_sheet", 5 ],
+ [ "box_small", 2 ],
+ [ "box_medium", 2 ],
+ [ "box_large", 2 ],
+ [ "plastic_sheet", 30 ],
{ "item": "pipe", "prob": 20, "count": [ 5, 10 ] },
{ "item": "nail", "prob": 60, "count": [ 2, 4 ] },
[ "hose", 15 ],
@@ -167,6 +178,7 @@
[ "metal_tank", 10 ],
[ "metal_tank_little", 10 ],
[ "water_faucet", 10 ],
+ [ "wood_panel", 10 ],
{ "item": "wire", "prob": 50, "count": [ 1, 10 ] },
{ "item": "wire_barbed", "prob": 20, "count": [ 1, 10 ] },
[ "duct_tape", 60 ],
@@ -185,7 +197,8 @@
[ "chem_chromium_oxide", 5 ],
[ "chem_zinc_powder", 5 ],
[ "denat_alcohol", 5 ],
- [ "recharge_station", 10 ]
+ [ "recharge_station", 10 ],
+ [ "tarp", 15 ]
]
},
{
@@ -391,6 +404,10 @@
[ "clock", 2 ],
[ "coffeemaker", 2 ],
[ "bubblewrap", 10 ],
+ [ "box_small", 3 ],
+ [ "box_medium", 3 ],
+ [ "box_large", 2 ],
+ [ "plastic_sheet", 3 ],
[ "glowstick", 10 ],
[ "radio", 2 ],
[ "fan", 5 ],
@@ -422,5 +439,23 @@
[ "record_accounting", 1 ],
[ "money_bundle", 1 ]
]
+ },
+ {
+ "id": "gym_school",
+ "type": "item_group",
+ "items": [
+ [ "basketball", 100 ],
+ [ "baseball", 100 ],
+ [ "hat_ball", 10 ],
+ [ "helmet_ball", 20 ],
+ [ "bat", 80 ],
+ [ "football", 100 ],
+ [ "football_armor", 20 ],
+ [ "helmet_football", 20 ],
+ [ "medical_gauze", 10 ],
+ [ "heatpack", 10 ],
+ [ "whistle", 5 ],
+ [ "airhorn", 2 ]
+ ]
}
]
diff --git a/data/json/itemgroups/tools.json b/data/json/itemgroups/tools.json
index 506967ebaaa4e..d44b1317e16f3 100644
--- a/data/json/itemgroups/tools.json
+++ b/data/json/itemgroups/tools.json
@@ -254,7 +254,11 @@
[ "signal_flare", 20 ],
[ "sm_extinguisher", 20 ],
[ "whistle", 20 ],
- [ "hand_crank_charger", 15 ]
+ [ "hand_crank_charger", 15 ],
+ [ "flint_steel", 5 ],
+ [ "chem_hexamine", 10 ],
+ [ "esbit_stove", 15 ],
+ [ "mess_tin", 5 ]
]
},
{
@@ -263,11 +267,16 @@
"items": [
[ "needle_curved", 30 ],
[ "scissors", 1000 ],
- [ "sewing_kit", 100 ],
- [ "tailors_kit", 30 ],
+ [ "sewing_kit", 120 ],
+ [ "tailors_kit", 10 ],
[ "knitting_needles", 20 ]
]
},
+ {
+ "id": "tools_commercial_tailor",
+ "type": "item_group",
+ "items": [ [ "needle_curved", 30 ], [ "scissors", 1000 ], [ "sewing_kit", 10 ], [ "tailors_kit", 120 ] ]
+ },
{
"type": "item_group",
"id": "tools_science",
diff --git a/data/json/items/ammo.json b/data/json/items/ammo.json
index 736c050fb61c0..b0d16e9c5898b 100644
--- a/data/json/items/ammo.json
+++ b/data/json/items/ammo.json
@@ -12,18 +12,19 @@
"flags": "TRADER_AVOID",
"material": "iron",
"volume": 1,
- "weight": 1,
+ "//": "Setting battery volume to 0 causes weirdness in vehicle tests. Please don't do that.",
"ammo_type": "battery",
"reload_time": 1,
"count": 100,
- "//": "1 battery is 1 kJ of energy. 40 batteries is an alkaline C-cell.",
+ "//2": "1 battery is 1 kJ of energy. 40 batteries is an alkaline C-cell.",
"fuel": { "energy": 1 }
},
{
"id": "light_minus_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "ultra-light battery cell",
+ "name": "ultra-light battery",
+ "name_plural": "ultra-light batteries",
"description": "This is a light battery cell designed for small size over everything else. It retains its universal compatibility, though.",
"weight": 5,
"volume": 0,
@@ -40,8 +41,9 @@
"id": "light_minus_atomic_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "atomic ultra-light battery cell",
- "description": "This is an atomic battery designed for small size over everything else. It retains its universal compatibility, though. It cannot be recharged.",
+ "name": "ultra-light plutonium fuel battery",
+ "name_plural": "ultra-light plutonium fuel batteries",
+ "description": "This battery uses a thin plutonium-244 rod to stablize an exotic nanocompound. It is universally compatible with small devices. Although it stores a huge amount of power, it cannot be recharged.",
"weight": 80,
"volume": 0,
"price": 15000,
@@ -54,11 +56,31 @@
"looks_like": "battery",
"flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ]
},
+ {
+ "id": "light_minus_disposable_cell",
+ "type": "MAGAZINE",
+ "category": "spare_parts",
+ "name": "ultra-light disposable battery",
+ "name_plural": "ultra-light disposable batteries",
+ "description": "This is a light battery cell designed for small size over everything else. It retains its universal compatibility, though. The battery's chemistry means that it has a very high capacity, but cannot be recharged.",
+ "weight": 5,
+ "volume": 0,
+ "price": 3000,
+ "material": [ "iron" ],
+ "symbol": "=",
+ "color": "yellow",
+ "ammo_type": "battery",
+ "count": 100,
+ "capacity": 100,
+ "looks_like": "battery",
+ "flags": [ "NO_SALVAGE", "NO_UNLOAD" ]
+ },
{
"id": "light_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "light battery cell",
+ "name": "light battery",
+ "name_plural": "light batteries",
"description": "This is a light battery cell, universally compatible with all kinds of small devices.",
"weight": 50,
"volume": "75ml",
@@ -75,8 +97,8 @@
"id": "light_plus_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "light battery cell (high-capacity)",
- "name_plural": "light battery cells (high-capacity)",
+ "name": "light battery (high-capacity)",
+ "name_plural": "light batteries (high-capacity)",
"description": "This is a high-capacity light battery cell, universally compatible with all kinds of small devices.",
"weight": 75,
"volume": "115ml",
@@ -93,8 +115,9 @@
"id": "light_atomic_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "atomic light battery cell",
- "description": "This is an atomic battery, universally compatible with all kinds of personal electronic devices. It cannot be recharged.",
+ "name": "light plutonium fuel battery",
+ "name_plural": "light plutonium fuel batteries",
+ "description": "This battery uses a thin plutonium-244 rod to stablize an exotic nanocompound. It is universally compatible with all kinds of personal electronic devices. Although it stores a huge amount of power, it cannot be recharged.",
"weight": 160,
"volume": "115ml",
"price": 50000,
@@ -107,11 +130,31 @@
"looks_like": "battery",
"flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ]
},
+ {
+ "id": "light_disposable_cell",
+ "type": "MAGAZINE",
+ "category": "spare_parts",
+ "name": "light disposable battery",
+ "name_plural": "light disposable batteries",
+ "description": "This is a light battery cell, universally compatible with all kinds of small devices. The battery's chemistry means that it has a very high capacity, but cannot be recharged.",
+ "weight": 75,
+ "volume": "115ml",
+ "price": 10000,
+ "material": [ "iron" ],
+ "symbol": "=",
+ "color": "yellow",
+ "ammo_type": "battery",
+ "count": 300,
+ "capacity": 300,
+ "looks_like": "battery",
+ "flags": [ "NO_SALVAGE", "NO_UNLOAD" ]
+ },
{
"id": "medium_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "medium battery cell",
+ "name": "medium battery",
+ "name_plural": "medium batteries",
"description": "This is a medium battery cell, universally compatible with all kinds of appliances and power tools.",
"weight": 250,
"volume": "375ml",
@@ -128,8 +171,8 @@
"id": "medium_plus_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "medium battery cell (high-capacity)",
- "name_plural": "medium battery cells (high-capacity)",
+ "name": "medium battery (high-capacity)",
+ "name_plural": "medium batteries (high-capacity)",
"description": "This is a high-capacity medium battery cell, universally compatible with all kinds of appliances and power tools.",
"weight": 350,
"volume": "450ml",
@@ -146,8 +189,9 @@
"id": "medium_atomic_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "atomic medium battery cell",
- "description": "This is an atomic battery, universally compatible with all kinds of appliances and power tools. It cannot be recharged.",
+ "name": "medium plutonium fuel battery",
+ "name_plural": "medium plutonium fuel batteries",
+ "description": "This battery uses a thin plutonium-244 rod to stablize an exotic nanocompound. It is universally compatible with all kinds of appliances and power tools. Although it stores a huge amount of power, it cannot be recharged.",
"weight": 800,
"volume": "375ml",
"price": 100000,
@@ -160,11 +204,31 @@
"looks_like": "battery",
"flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ]
},
+ {
+ "id": "medium_disposable_cell",
+ "type": "MAGAZINE",
+ "category": "spare_parts",
+ "name": "medium disposable battery",
+ "name_plural": "medium disposable batteries",
+ "description": "This is a medium battery cell, universally compatible with all kinds of appliances and power tools. The battery's chemistry means that it has a very high capacity, but cannot be recharged.",
+ "weight": 350,
+ "volume": "450ml",
+ "price": 10000,
+ "material": [ "iron" ],
+ "symbol": "=",
+ "color": "yellow",
+ "ammo_type": "battery",
+ "count": 1200,
+ "capacity": 1200,
+ "looks_like": "battery",
+ "flags": [ "NO_SALVAGE", "NO_UNLOAD" ]
+ },
{
"id": "heavy_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "heavy battery cell",
+ "name": "heavy battery",
+ "name_plural": "heavy batteries",
"description": "This is a heavy battery cell, universally compatible with all kinds of industrial-grade equipment and large tools.",
"weight": 500,
"volume": "750ml",
@@ -181,8 +245,8 @@
"id": "heavy_plus_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "heavy battery cell (high-capacity)",
- "name_plural": "heavy battery cells (high-capacity)",
+ "name": "heavy battery (high-capacity)",
+ "name_plural": "heavy batteries (high-capacity)",
"description": "This is a high-capacity heavy battery cell, universally compatible with all kinds of industrial-grade equipment and large tools.",
"weight": 950,
"volume": "1000ml",
@@ -199,8 +263,9 @@
"id": "heavy_atomic_battery_cell",
"type": "MAGAZINE",
"category": "spare_parts",
- "name": "atomic heavy battery cell",
- "description": "This is an atomic battery, universally compatible with all kinds of industrial-grade equipment and large tools. It cannot be recharged.",
+ "name": "heavy plutonium fuel battery",
+ "name_plural": "heavy plutonium fuel batteries",
+ "description": "This battery uses a thin plutonium-244 rod to stablize an exotic nanocompound. It is universally compatible with all kinds of industrial-grade equipment and large tools. Although it stores a huge amount of power, it cannot be recharged.",
"weight": 1600,
"volume": "750ml",
"price": 100000,
@@ -213,6 +278,53 @@
"looks_like": "battery",
"flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ]
},
+ {
+ "id": "heavy_disposable_cell",
+ "type": "MAGAZINE",
+ "category": "spare_parts",
+ "name": "heavy disposable battery",
+ "name_plural": "heavy disposable batteries",
+ "description": "This is a heavy battery cell, universally compatible with all kinds of industrial-grade equipment and large tools. The battery's chemistry means that it has a very high capacity, but cannot be recharged.",
+ "weight": 950,
+ "volume": "1000ml",
+ "price": 10000,
+ "material": [ "iron" ],
+ "symbol": "=",
+ "color": "yellow",
+ "ammo_type": "battery",
+ "count": 2500,
+ "capacity": 2500,
+ "looks_like": "battery",
+ "flags": [ "NO_SALVAGE", "NO_UNLOAD", "RECHARGE" ]
+ },
+ {
+ "type": "TOOL",
+ "id": "betavoltaic",
+ "category": "spare_parts",
+ "price": 10000,
+ "name": "betavoltaic cell",
+ "symbol": "=",
+ "color": "green",
+ "description": "Harness the power of radiation in your own home! This looks similar to a D-cell battery, but actually contains folded layers of radioactive material inside. It can produce electricity for several years at a steady voltage... but it's barely enough to power a small LED, and these batteries were worth hundreds of dollars. Mostly they're a good way to brag to your neighbours that you have a nuclear power source in your house.",
+ "material": [ "steel", "plastic", "lead" ],
+ "flags": [ "LEAK_DAM", "RADIOACTIVE" ],
+ "volume": 1,
+ "weight": 160
+ },
+ {
+ "type": "TOOL",
+ "id": "RTG_coffee",
+ "category": "spare_parts",
+ "price": 20000,
+ "name": "radioisotope thermoelectric generator",
+ "symbol": "=",
+ "color": "green",
+ "description": "Did your neighbours brag about their cool beta-decay powered nightlights? Do them one better! The CuppaTech 4 radioisotope thermoelectric generator is a three kilogram chunk of metal - mostly lead - with a slug of curium-244 encased within. It is capable of generating somewhere between 100-150 Watts of thermal energy, although its electrical generation capacity is minimal at only 2 Watts. Careful! Curium is great at making heat, and also releases deadly gamma radiation. Keep away from cellular life forms.",
+ "material": [ "steel", "lead" ],
+ "flags": [ "LEAK_DAM", "RADIOACTIVE" ],
+ "volume": "500 ml",
+ "weight": 4000
+ },
{
"type": "AMMO",
"id": "aluminum_foil",
@@ -374,10 +486,10 @@
"id": "plut_cell",
"category": "spare_parts",
"price": 150000,
- "name": "plutonium cell",
+ "name": "plutonium fuel cell",
"symbol": "=",
"color": "green",
- "description": "A nuclear-powered battery. Used to charge advanced and rare electronics.",
+ "description": "This is neither a fuel cell, nor nuclear, but the name stuck. It uses plutonium-244 as a catalyst to stabilize a complicated nanocompound that can store enormous amounts of power. Unfortunately it cannot be recharged by conventional means: expended cells had to be sent to a central reprocessing facility that almost certainly doesn't exist anymore.",
"material": [ "steel", "plastic" ],
"flags": [ "LEAK_DAM", "RADIOACTIVE" ],
"volume": 1,
@@ -658,6 +770,7 @@
"description": "Firearm-quality gunpowder.",
"container": "bottle_plastic_small",
"material": "powder",
+ "flags": [ "TINDER" ],
"volume": 1,
"weight": 1,
"ammo_type": "components",
@@ -1208,7 +1321,7 @@
"price": 0,
"bashing": 1,
"material": "wood",
- "flags": [ "NO_SALVAGE" ],
+ "flags": [ "NO_SALVAGE", "TINDER" ],
"symbol": "=",
"color": "brown",
"count": 50,
diff --git a/data/json/items/ammo/4570.json b/data/json/items/ammo/4570.json
new file mode 100644
index 0000000000000..ff693c75842ec
--- /dev/null
+++ b/data/json/items/ammo/4570.json
@@ -0,0 +1,84 @@
+[
+ {
+ "id": "4570_sp",
+ "type": "AMMO",
+ "name": ".45-70 SP",
+ "description": ".45-70 Government ammunition loaded with a 305 grain soft point round. One of the oldest cartridges still in use, it is still a favorite for large game hunting at short ranges.",
+ "weight": 35,
+ "volume": 1,
+ "price": 4000,
+ "material": [ "brass", "powder" ],
+ "symbol": "+",
+ "color": "green",
+ "count": 20,
+ "stack_size": 20,
+ "ammo_type": "4570",
+ "casing": "4570_casing",
+ "range": 48,
+ "damage": 57,
+ "pierce": 3,
+ "dispersion": 20,
+ "recoil": 4300,
+ "effects": [ "COOKOFF" ]
+ },
+ {
+ "id": "4570_pen",
+ "copy-from": "4570_sp",
+ "type": "AMMO",
+ "name": ".45-70 +P penetrator",
+ "description": ".45-70 Government +P ammunition loaded with a 305 grain solid copper penetrator projectile. Designed for maximum penetration through thick hide and bone while maintaining ideal wounding characteristics.",
+ "price": 5000,
+ "count": 10,
+ "relative": { "range": 2, "damage": 4, "pierce": 7, "recoil": 300 }
+ },
+ {
+ "id": "4570_low",
+ "copy-from": "4570_sp",
+ "type": "AMMO",
+ "name": ".45-70 LFN cowboy",
+ "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet to original specifications for safe use in antique firearms. Quite a bit less powerful than modern ammo, but still packs a punch.",
+ "price": 3500,
+ "relative": { "range": -8, "damage": -14, "pierce": -2, "recoil": -900 }
+ },
+ {
+ "id": "reloaded_4570_sp",
+ "copy-from": "4570_sp",
+ "type": "AMMO",
+ "name": "reloaded .45-70 SP",
+ "description": ".45-70 Government ammunition loaded with a 305 grain soft point round. One of the oldest cartridges still in use, it is still a favorite for large game hunting at short ranges. This one has been hand-loaded.",
+ "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.1 },
+ "extend": { "effects": [ "RECYCLED" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ] }
+ },
+ {
+ "id": "reloaded_4570_pen",
+ "copy-from": "4570_pen",
+ "type": "AMMO",
+ "name": "reloaded .45-70 +P penetrator",
+ "description": ".45-70 Government +P ammunition loaded with a 305 grain solid copper penetrator projectile. Designed for maximum penetration through thick hide and bone while maintaining ideal wounding characteristics. This one has been hand-loaded.",
+ "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.1 },
+ "extend": { "effects": [ "RECYCLED" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ] }
+ },
+ {
+ "id": "reloaded_4570_low",
+ "copy-from": "4570_low",
+ "type": "AMMO",
+ "name": "reloaded .45-70 LFN cowboy",
+ "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet to original specifications for safe use in antique firearms. Quite a bit less powerful than modern ammo, but still packs a punch. This one has been hand-loaded.",
+ "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.1 },
+ "extend": { "effects": [ "RECYCLED" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ] }
+ },
+ {
+ "id": "reloaded_4570_bp",
+ "//": "***Add blackpowder effects once #30944 gets merged***",
+ "copy-from": "4570_low",
+ "type": "AMMO",
+ "name": "reloaded .45-70 black powder",
+ "description": ".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet using black powder to original specifications. Quite a bit less powerful and a lot dirtier than modern ammo, but still packs a punch. This one has been hand-loaded.",
+ "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.3 },
+ "extend": { "effects": [ "RECYCLED" ] },
+ "delete": { "effects": [ "NEVER_MISFIRES" ] }
+ }
+]
diff --git a/data/json/items/ammo/metal_rail.json b/data/json/items/ammo/metal_rail.json
index 69fe4f6e3d3b2..6c04defe8ae57 100644
--- a/data/json/items/ammo/metal_rail.json
+++ b/data/json/items/ammo/metal_rail.json
@@ -4,8 +4,8 @@
"type": "AMMO",
"name": "rebar rail",
"description": "A short piece of ferromagnetic rebar which has been straightened and sharpened on one end. Could be used as a projectile by a sufficiently powerful electromagnetic weapon.",
- "weight": 712,
- "volume": 1,
+ "weight": 160,
+ "volume": "25ml",
"price": 1000,
"to_hit": -1,
"bashing": 5,
@@ -27,7 +27,7 @@
"type": "AMMO",
"name": "steel rail",
"description": "A short piece of steel which has been forged true and sharpened on one end. Could be used as a projectile by a sufficiently powerful electromagnetic weapon.",
- "weight": 520,
+ "volume": "20ml",
"price": 1500,
"bashing": 4,
"cutting": 2,
diff --git a/data/json/items/ammo_types.json b/data/json/items/ammo_types.json
index 40bc129ecfcd8..25f9e8dcb8df7 100644
--- a/data/json/items/ammo_types.json
+++ b/data/json/items/ammo_types.json
@@ -17,6 +17,12 @@
"name": ".50 BMG",
"default": "50bmg"
},
+ {
+ "type": "ammunition_type",
+ "id": "4570",
+ "name": ".45-70",
+ "default": "4570_sp"
+ },
{
"type": "ammunition_type",
"id": "nail",
@@ -502,5 +508,11 @@
"name": "tinder",
"default": "tinder",
"type": "ammunition_type"
+ },
+ {
+ "id": "esbit",
+ "name": "hexamine",
+ "default": "chem_hexamine",
+ "type": "ammunition_type"
}
]
diff --git a/data/json/items/armor.json b/data/json/items/armor.json
index cd41e4c28e689..f863b2c0e9c81 100644
--- a/data/json/items/armor.json
+++ b/data/json/items/armor.json
@@ -2539,6 +2539,7 @@
"color": "dark_gray",
"covers": [ "TORSO" ],
"coverage": 10,
+ "encumbrance": 3,
"storage": 8,
"material_thickness": 1,
"flags": [ "WAIST", "WATER_FRIENDLY" ]
@@ -2859,6 +2860,7 @@
"symbol": "[",
"color": "yellow",
"covers": [ "TORSO" ],
+ "encumbrance": 4,
"storage": 4,
"use_action": {
"type": "holster",
@@ -7263,7 +7265,7 @@
"symbol": "[",
"color": "brown",
"covers": [ "TORSO" ],
- "encumbrance": 4,
+ "encumbrance": 6,
"storage": 8,
"use_action": {
"type": "holster",
@@ -8821,7 +8823,7 @@
"color": "brown",
"covers": [ "TORSO" ],
"coverage": 15,
- "encumbrance": 3,
+ "encumbrance": 4,
"storage": 12,
"material_thickness": 2,
"use_action": {
@@ -10269,5 +10271,25 @@
"material_thickness": 2,
"techniques": [ "WBLOCK_1" ],
"flags": [ "OVERSIZE" ]
+ },
+ {
+ "id": "tarp",
+ "type": "ARMOR",
+ "name": "tarpaulin",
+ "description": "A plastic sheet with several grommets for securing it with rope or cord. Useful for improvised rain protection.",
+ "weight": 1244,
+ "volume": 8,
+ "price": 5000,
+ "to_hit": -1,
+ "material": [ "plastic" ],
+ "symbol": "[",
+ "color": "light_blue",
+ "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ],
+ "coverage": 90,
+ "encumbrance": 30,
+ "warmth": 10,
+ "material_thickness": 1,
+ "environmental_protection": 1,
+ "flags": [ "OVERSIZE", "OUTER", "WATERPROOF", "ALLOWS_NATURAL_ATTACKS" ]
}
]
diff --git a/data/json/items/armor/boots.json b/data/json/items/armor/boots.json
index 4d9a2d8385186..352581bf84d41 100644
--- a/data/json/items/armor/boots.json
+++ b/data/json/items/armor/boots.json
@@ -838,7 +838,7 @@
"type": "ARMOR",
"name": "pair of rollerblades",
"name_plural": "pairs of rollerblades",
- "description": "A pair of inline skates. Very fast on flat floors, but they make it hard to move on rough terrain, or to dodge effectively.",
+ "description": "A pair of inline skates. Very fast on flat floors, but they make it hard to move on rough terrain, take hits, or to dodge effectively.",
"weight": 1640,
"volume": 15,
"price": 8500,
@@ -852,14 +852,14 @@
"warmth": 20,
"material_thickness": 3,
"environmental_protection": 2,
- "flags": [ "VARSIZE", "WATERPROOF", "ROLLER_INLINE" ]
+ "flags": [ "VARSIZE", "WATERPROOF", "ROLLER_INLINE", "REQUIRES_BALANCE" ]
},
{
"id": "rollerskates",
"type": "ARMOR",
"name": "pair of rollerskates",
"name_plural": "pairs of rollerskates",
- "description": "An old-fashioned pair of leather rollerskates with steel frames. While quite fast on flat floors, they make it difficult to move on rough terrain.",
+ "description": "An old-fashioned pair of leather rollerskates with steel frames. While quite fast on flat floors, they make it difficult to take hits or to move on rough terrain.",
"weight": 2720,
"volume": 12,
"price": 8500,
@@ -874,7 +874,7 @@
"warmth": 30,
"material_thickness": 3,
"environmental_protection": 2,
- "flags": [ "VARSIZE", "WATERPROOF", "ROLLER_QUAD" ]
+ "flags": [ "VARSIZE", "WATERPROOF", "ROLLER_QUAD", "REQUIRES_BALANCE" ]
},
{
"id": "shoes_birchbark",
@@ -1032,5 +1032,45 @@
"material_thickness": 2,
"environmental_protection": 1,
"flags": [ "VARSIZE", "WATER_FRIENDLY", "SKINTIGHT" ]
+ },
+ {
+ "id": "roller_shoes_off",
+ "type": "ARMOR",
+ "name": "pair of heelys (off)",
+ "name_plural": "pairs of heelys (off)",
+ "description": "A pair of sneakers with wheels, currently the wheels are hidden.",
+ "weight": 840,
+ "volume": 6,
+ "price": 10000,
+ "material": [ "cotton", "leather" ],
+ "symbol": "[",
+ "color": "light_blue",
+ "covers": [ "FEET" ],
+ "coverage": 80,
+ "encumbrance": 4,
+ "warmth": 20,
+ "material_thickness": 2,
+ "use_action": { "type": "transform", "target": "roller_shoes_on", "msg": "You pop the wheels out.", "moves": 500 },
+ "flags": [ "VARSIZE" ]
+ },
+ {
+ "id": "roller_shoes_on",
+ "type": "ARMOR",
+ "name": "pair of heelys (on)",
+ "name_plural": "pairs of heelys (on)",
+ "description": "A pair of sneakers with wheels, currently the wheels are out.",
+ "weight": 840,
+ "volume": 6,
+ "price": 10000,
+ "material": [ "cotton", "leather" ],
+ "symbol": "[",
+ "color": "light_blue",
+ "covers": [ "FEET" ],
+ "coverage": 80,
+ "encumbrance": 4,
+ "warmth": 20,
+ "material_thickness": 2,
+ "use_action": { "type": "transform", "target": "roller_shoes_off", "msg": "You pop the wheels back in.", "moves": 500 },
+ "flags": [ "VARSIZE", "ROLLER_ONE", "REQUIRES_BALANCE" ]
}
]
diff --git a/data/json/items/armor/pets_dog_armor.json b/data/json/items/armor/pets_dog_armor.json
index 0608a1e17b7b1..ea444bdbd37b7 100644
--- a/data/json/items/armor/pets_dog_armor.json
+++ b/data/json/items/armor/pets_dog_armor.json
@@ -14,7 +14,7 @@
"volume": 18,
"bashing": 5,
"to_hit": -1,
- "flags": [ "IS_PET_ARMOR" ],
+ "flags": [ "IS_PET_ARMOR", "NO_SALVAGE" ],
"material_thickness": 2,
"storage": 50,
"max_pet_vol": "35000 ml",
diff --git a/data/json/items/bionics.json b/data/json/items/bionics.json
index 69bbc9632ad0d..c270332cb393a 100644
--- a/data/json/items/bionics.json
+++ b/data/json/items/bionics.json
@@ -743,15 +743,6 @@
"price": 10000,
"difficulty": 12
},
- {
- "id": "bio_storage",
- "copy-from": "bionic_general_npc_usable",
- "type": "BIONIC_ITEM",
- "name": "Internal Storage CBM",
- "description": "Space inside your chest cavity has been converted into a storage area. You may carry an extra 2 liters of volume.",
- "price": 400000,
- "difficulty": 7
- },
{
"id": "bio_str_enhancer",
"copy-from": "bionic_general_npc_usable",
diff --git a/data/json/items/book/archery.json b/data/json/items/book/archery.json
index 3e929fc0b8e8d..788dfd0bf3614 100644
--- a/data/json/items/book/archery.json
+++ b/data/json/items/book/archery.json
@@ -14,7 +14,7 @@
"skill": "archery",
"max_level": 2,
"intelligence": 7,
- "time": 20
+ "time": "20 m"
},
{
"id": "mag_archery",
@@ -31,7 +31,7 @@
"skill": "archery",
"max_level": 1,
"intelligence": 2,
- "time": 7,
+ "time": "7 m",
"fun": 1
},
{
@@ -49,6 +49,6 @@
"skill": "archery",
"max_level": 3,
"intelligence": 7,
- "time": 20
+ "time": "20 m"
}
]
diff --git a/data/json/items/book/barter.json b/data/json/items/book/barter.json
index b3b8b7ad9b4e5..82a886059ecdd 100644
--- a/data/json/items/book/barter.json
+++ b/data/json/items/book/barter.json
@@ -13,7 +13,7 @@
"skill": "barter",
"max_level": 1,
"intelligence": 5,
- "time": 8
+ "time": "8 m"
},
{
"id": "manual_business",
@@ -30,7 +30,7 @@
"skill": "barter",
"max_level": 3,
"intelligence": 6,
- "time": 25,
+ "time": "25 m",
"fun": -1
},
{
@@ -51,7 +51,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 9,
- "time": 30,
+ "time": "30 m",
"fun": -1
}
]
diff --git a/data/json/items/book/bashing.json b/data/json/items/book/bashing.json
index 5b9f8c7a07450..42a0e261729db 100644
--- a/data/json/items/book/bashing.json
+++ b/data/json/items/book/bashing.json
@@ -14,7 +14,7 @@
"skill": "bashing",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -31,6 +31,6 @@
"skill": "bashing",
"max_level": 3,
"intelligence": 3,
- "time": 18
+ "time": "18 m"
}
]
diff --git a/data/json/items/book/computer.json b/data/json/items/book/computer.json
index 731e888304356..0e08597cc5f14 100644
--- a/data/json/items/book/computer.json
+++ b/data/json/items/book/computer.json
@@ -15,7 +15,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 13,
- "time": 50,
+ "time": "50 m",
"fun": -1
},
{
@@ -35,7 +35,7 @@
"required_level": 3,
"max_level": 5,
"intelligence": 11,
- "time": 35,
+ "time": "35 m",
"fun": -2
},
{
@@ -53,7 +53,7 @@
"skill": "computer",
"max_level": 2,
"intelligence": 5,
- "time": 15
+ "time": "15 m"
},
{
"id": "mag_computer",
@@ -70,7 +70,7 @@
"skill": "computer",
"max_level": 1,
"intelligence": 5,
- "time": 8
+ "time": "8 m"
},
{
"id": "manual_computers",
@@ -88,7 +88,7 @@
"skill": "computer",
"max_level": 3,
"intelligence": 5,
- "time": 15
+ "time": "15 m"
},
{
"id": "textbook_computer",
@@ -107,7 +107,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 11,
- "time": 35,
+ "time": "35 m",
"fun": -2
}
]
diff --git a/data/json/items/book/cooking.json b/data/json/items/book/cooking.json
index 36283353b013c..7e3287297d9b2 100644
--- a/data/json/items/book/cooking.json
+++ b/data/json/items/book/cooking.json
@@ -16,7 +16,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 12,
- "time": 35,
+ "time": "35 m",
"fun": -1
},
{
@@ -35,7 +35,7 @@
"required_level": 2,
"max_level": 4,
"intelligence": 8,
- "time": 15,
+ "time": "15 m",
"fun": 1
},
{
@@ -52,7 +52,7 @@
"skill": "cooking",
"max_level": 3,
"intelligence": 4,
- "time": 10
+ "time": "10 m"
},
{
"id": "cookbook_human",
@@ -71,7 +71,7 @@
"required_level": 2,
"max_level": 4,
"intelligence": 4,
- "time": 10,
+ "time": "10 m",
"fun": -5
},
{
@@ -90,7 +90,7 @@
"required_level": 3,
"max_level": 4,
"intelligence": 6,
- "time": 10
+ "time": "10 m"
},
{
"id": "cookbook_sushi",
@@ -109,7 +109,7 @@
"required_level": 1,
"max_level": 4,
"intelligence": 7,
- "time": 20
+ "time": "20 m"
},
{
"id": "family_cookbook",
@@ -127,7 +127,7 @@
"required_level": 1,
"max_level": 5,
"intelligence": 7,
- "time": 45,
+ "time": "45 m",
"fun": 1
},
{
@@ -145,7 +145,7 @@
"skill": "cooking",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -162,7 +162,7 @@
"skill": "cooking",
"max_level": 1,
"intelligence": 5,
- "time": 24,
+ "time": "24 m",
"fun": 1
},
{
@@ -181,7 +181,7 @@
"required_level": 3,
"max_level": 4,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
},
{
"id": "recipe_alpha",
@@ -199,7 +199,7 @@
"required_level": 8,
"max_level": 9,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -218,7 +218,7 @@
"required_level": 8,
"max_level": 9,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -237,7 +237,7 @@
"required_level": 8,
"max_level": 9,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -256,7 +256,7 @@
"required_level": 8,
"max_level": 9,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -4
},
{
@@ -274,7 +274,7 @@
"required_level": 9,
"max_level": 9,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -293,7 +293,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 11,
- "time": 35,
+ "time": "35 m",
"fun": -1
},
{
@@ -312,7 +312,7 @@
"required_level": 8,
"max_level": 9,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -3
},
{
@@ -332,7 +332,7 @@
"required_level": 8,
"max_level": 9,
"intelligence": 12,
- "time": 35,
+ "time": "35 m",
"fun": -2
},
{
@@ -351,7 +351,7 @@
"required_level": 10,
"max_level": 10,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -370,7 +370,7 @@
"required_level": 8,
"max_level": 10,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -4
},
{
@@ -391,7 +391,7 @@
"required_level": 2,
"max_level": 4,
"intelligence": 10,
- "time": 45,
+ "time": "45 m",
"fun": -1
},
{
@@ -410,7 +410,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 12,
- "time": 35,
+ "time": "35 m",
"fun": -1
}
]
diff --git a/data/json/items/book/cutting.json b/data/json/items/book/cutting.json
index 96a7e44334423..ab055fecc1354 100644
--- a/data/json/items/book/cutting.json
+++ b/data/json/items/book/cutting.json
@@ -14,7 +14,7 @@
"skill": "cutting",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,7 +32,7 @@
"skill": "cutting",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
},
{
"id": "manual_knives",
@@ -50,6 +50,6 @@
"required_level": 1,
"max_level": 4,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
}
]
diff --git a/data/json/items/book/dodge.json b/data/json/items/book/dodge.json
index ff54fc968b25e..76891c512c478 100644
--- a/data/json/items/book/dodge.json
+++ b/data/json/items/book/dodge.json
@@ -14,7 +14,7 @@
"skill": "dodge",
"max_level": 1,
"intelligence": 2,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,7 +32,7 @@
"skill": "dodge",
"max_level": 3,
"intelligence": 7,
- "time": 20
+ "time": "20 m"
},
{
"id": "manual_dodge_kid",
@@ -49,7 +49,7 @@
"skill": "dodge",
"max_level": 1,
"intelligence": 1,
- "time": 6,
+ "time": "6 m",
"fun": 1
}
]
diff --git a/data/json/items/book/driving.json b/data/json/items/book/driving.json
index 8bafc508fd623..55fbc0be258ee 100644
--- a/data/json/items/book/driving.json
+++ b/data/json/items/book/driving.json
@@ -14,7 +14,7 @@
"skill": "driving",
"max_level": 3,
"intelligence": 6,
- "time": 30,
+ "time": "30 m",
"fun": 2
},
{
@@ -31,7 +31,7 @@
"skill": "driving",
"max_level": 1,
"intelligence": 2,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -49,7 +49,7 @@
"skill": "driving",
"max_level": 3,
"intelligence": 5,
- "time": 16
+ "time": "16 m"
},
{
"id": "textbook_anarch",
@@ -66,7 +66,7 @@
"skill": "driving",
"max_level": 4,
"intelligence": 9,
- "time": 45,
+ "time": "45 m",
"fun": 1
}
]
diff --git a/data/json/items/book/electronics.json b/data/json/items/book/electronics.json
index b1ebef166ff9d..bc6eee5ed79de 100644
--- a/data/json/items/book/electronics.json
+++ b/data/json/items/book/electronics.json
@@ -16,7 +16,7 @@
"required_level": 2,
"max_level": 5,
"intelligence": 11,
- "time": 35,
+ "time": "35 m",
"fun": -1
},
{
@@ -34,7 +34,7 @@
"skill": "electronics",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -52,7 +52,7 @@
"skill": "electronics",
"max_level": 3,
"intelligence": 7,
- "time": 20
+ "time": "20 m"
},
{
"id": "radio_book",
@@ -71,7 +71,7 @@
"required_level": 4,
"max_level": 8,
"intelligence": 11,
- "time": 35,
+ "time": "35 m",
"fun": -1
},
{
@@ -89,7 +89,7 @@
"required_level": 6,
"max_level": 6,
"intelligence": 12,
- "time": 60,
+ "time": "60 m",
"fun": -3
},
{
@@ -108,7 +108,7 @@
"required_level": 4,
"max_level": 5,
"intelligence": 9,
- "time": 45,
+ "time": "45 m",
"fun": 1
},
{
@@ -127,7 +127,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -146,7 +146,7 @@
"required_level": 6,
"max_level": 7,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": 1
},
{
@@ -165,7 +165,7 @@
"skill": "electronics",
"required_level": 2,
"intelligence": 10,
- "time": 20,
+ "time": "20 m",
"fun": -1
},
{
@@ -185,7 +185,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 12,
- "time": 35,
+ "time": "35 m",
"fun": -1
},
{
@@ -205,7 +205,153 @@
"required_level": 5,
"max_level": 10,
"intelligence": 13,
- "time": 55,
+ "time": "55 m",
"fun": -1
+ },
+ {
+ "abstract": "schematics_generic",
+ "type": "BOOK",
+ "name": "schematics generic",
+ "description": "seeing this is a bug",
+ "weight": 30,
+ "volume": 1,
+ "price": 100000,
+ "to_hit": -1,
+ "material": "paper",
+ "skill": "electronics",
+ "required_level": 7,
+ "max_level": 7,
+ "intelligence": 8,
+ "time": "55 m",
+ "symbol": "ç",
+ "color": "blue"
+ },
+ {
+ "id": "schematics_nursebot",
+ "type": "BOOK",
+ "name": "nurse bot schematics",
+ "name_plural": "nurse bot schematics",
+ "description": "Bearing the logo of Uncanny, those are assembly plans, design specs, and technical drawings for the nurse bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_copbot",
+ "type": "BOOK",
+ "name": "police bot schematics",
+ "name_plural": "police bot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the police bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_eyebot",
+ "type": "BOOK",
+ "name": "eyebot schematics",
+ "name_plural": "eyebot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the eyebot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_secubot",
+ "type": "BOOK",
+ "name": "security bot schematics",
+ "name_plural": "security bot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the security bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_skitterbot",
+ "type": "BOOK",
+ "name": "skitterbot schematics",
+ "name_plural": "skitterbot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the skitterbot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_chickenbot",
+ "type": "BOOK",
+ "name": "chicken walker schematics",
+ "name_plural": "chicken walker schematics",
+ "description": "Bearing the logo of Northrop, those are assembly plans, design specs, and technical drawings for the chicken walker. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_hazmatbot",
+ "type": "BOOK",
+ "name": "cleaner bot schematics",
+ "name_plural": "cleaner bot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the cleaner bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_molebot",
+ "type": "BOOK",
+ "name": "miner bot schematics",
+ "name_plural": "miner bot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the miner bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_riotbot",
+ "type": "BOOK",
+ "name": "riot control bot schematics",
+ "name_plural": "riot control bot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the riot control bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_sciencebot",
+ "type": "BOOK",
+ "name": "lab defense bot schematics",
+ "name_plural": "lab defense bot schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the lab defense bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_tankbot",
+ "type": "BOOK",
+ "name": "tank drone schematics",
+ "name_plural": "tank drone schematics",
+ "description": "Bearing the logo of Northrop, those are assembly plans, design specs, and technical drawings for the tank drone. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_tripod",
+ "type": "BOOK",
+ "name": "tripod schematics",
+ "name_plural": "tripod schematics",
+ "description": "Bearing the logo of Honda, those are assembly plans, design specs, and technical drawings for the tripod. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_dispatch",
+ "type": "BOOK",
+ "name": "dispatch schematics",
+ "name_plural": "dispatch schematics",
+ "description": "Bearing the logo of Northrop, those are assembly plans, design specs, and technical drawings for the dispatch. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_dispatch_military",
+ "type": "BOOK",
+ "name": "military dispatch schematics",
+ "name_plural": "military dispatch schematics",
+ "description": "Bearing the logo of Northrop, those are assembly plans, design specs, and technical drawings for the military dispatch. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_antimateriel",
+ "type": "BOOK",
+ "name": "anti-materiel turret schematics",
+ "name_plural": "anti-materiel turret schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the anti-materiel turret. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
+ },
+ {
+ "id": "schematics_searchlight",
+ "type": "BOOK",
+ "name": "milspec searchlight schematics",
+ "name_plural": "milspec searchlight schematics",
+ "description": "Assembly plans, design specs, and technical drawings for the milspec searchlight. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.",
+ "copy-from": "schematics_generic"
}
]
diff --git a/data/json/items/book/fabrication.json b/data/json/items/book/fabrication.json
index c1310a4508e18..70844c0a59edc 100644
--- a/data/json/items/book/fabrication.json
+++ b/data/json/items/book/fabrication.json
@@ -16,7 +16,7 @@
"required_level": 4,
"max_level": 7,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "jewelry_book",
@@ -34,7 +34,7 @@
"required_level": 6,
"max_level": 6,
"intelligence": 8,
- "time": 60
+ "time": "60 m"
},
{
"id": "mag_fabrication",
@@ -51,7 +51,7 @@
"skill": "fabrication",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 2
},
{
@@ -69,7 +69,7 @@
"skill": "fabrication",
"max_level": 3,
"intelligence": 5,
- "time": 16,
+ "time": "16 m",
"fun": 1
},
{
@@ -88,7 +88,7 @@
"required_level": 2,
"max_level": 4,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "recipe_bows",
@@ -106,7 +106,7 @@
"required_level": 3,
"max_level": 5,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "recipe_bullets",
@@ -124,7 +124,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 9,
- "time": 30
+ "time": "30 m"
},
{
"id": "recipe_caseless",
@@ -141,7 +141,7 @@
"required_level": 6,
"max_level": 7,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": 1
},
{
@@ -160,7 +160,7 @@
"required_level": 9,
"max_level": 10,
"intelligence": 12,
- "time": 45,
+ "time": "45 m",
"fun": -1
},
{
@@ -178,7 +178,7 @@
"required_level": 5,
"max_level": 6,
"intelligence": 8,
- "time": 20
+ "time": "20 m"
},
{
"id": "recipe_mininuke_launch",
@@ -196,7 +196,7 @@
"required_level": 4,
"max_level": 5,
"intelligence": 9,
- "time": 10
+ "time": "10 m"
},
{
"id": "textbook_armeast",
@@ -214,7 +214,7 @@
"required_level": 5,
"max_level": 10,
"intelligence": 9,
- "time": 60,
+ "time": "60 m",
"fun": -1
},
{
@@ -233,7 +233,7 @@
"required_level": 5,
"max_level": 10,
"intelligence": 9,
- "time": 55,
+ "time": "55 m",
"fun": -1
},
{
@@ -252,7 +252,7 @@
"required_level": 5,
"max_level": 10,
"intelligence": 9,
- "time": 60,
+ "time": "60 m",
"fun": -1
},
{
@@ -271,7 +271,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "textbook_fireman",
@@ -289,7 +289,7 @@
"required_level": 7,
"max_level": 9,
"intelligence": 8,
- "time": 10
+ "time": "10 m"
},
{
"id": "textbook_gaswarfare",
@@ -307,7 +307,7 @@
"required_level": 4,
"max_level": 7,
"intelligence": 9,
- "time": 10,
+ "time": "10 m",
"fun": -2
},
{
@@ -326,7 +326,7 @@
"required_level": 5,
"max_level": 10,
"intelligence": 9,
- "time": 55,
+ "time": "55 m",
"fun": -1
},
{
@@ -345,7 +345,7 @@
"required_level": 5,
"max_level": 10,
"intelligence": 9,
- "time": 55,
+ "time": "55 m",
"fun": -1
},
{
@@ -365,7 +365,7 @@
"required_level": 4,
"max_level": 7,
"intelligence": 9,
- "time": 30
+ "time": "30 m"
},
{
"id": "101_carpentry",
@@ -382,7 +382,7 @@
"skill": "fabrication",
"max_level": 2,
"intelligence": 5,
- "time": 16
+ "time": "16 m"
},
{
"id": "carpentry_book",
@@ -401,7 +401,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 9,
- "time": 55,
+ "time": "55 m",
"fun": -1
},
{
@@ -419,7 +419,7 @@
"skill": "fabrication",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -437,7 +437,7 @@
"skill": "fabrication",
"max_level": 3,
"intelligence": 5,
- "time": 16
+ "time": "16 m"
},
{
"id": "textbook_carpentry",
@@ -456,7 +456,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30,
+ "time": "30 m",
"fun": -1
}
]
diff --git a/data/json/items/book/firstaid.json b/data/json/items/book/firstaid.json
index 52b11a69428a3..0fc10a5ed8341 100644
--- a/data/json/items/book/firstaid.json
+++ b/data/json/items/book/firstaid.json
@@ -16,7 +16,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 10,
- "time": 55,
+ "time": "55 m",
"fun": -1
},
{
@@ -34,7 +34,7 @@
"skill": "firstaid",
"max_level": 1,
"intelligence": 1,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -52,7 +52,7 @@
"skill": "firstaid",
"max_level": 3,
"intelligence": 7,
- "time": 20
+ "time": "20 m"
},
{
"id": "pocket_firstaid",
@@ -69,7 +69,7 @@
"skill": "firstaid",
"max_level": 2,
"intelligence": 6,
- "time": 20
+ "time": "20 m"
},
{
"id": "textbook_firstaid",
@@ -88,7 +88,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "booklet_firstaid",
@@ -104,7 +104,7 @@
"color": "pink",
"skill": "firstaid",
"max_level": 1,
- "time": 8,
+ "time": "8 m",
"fun": 1
}
]
diff --git a/data/json/items/book/gun.json b/data/json/items/book/gun.json
index b0c74c76af79a..0e7aa764b6a72 100644
--- a/data/json/items/book/gun.json
+++ b/data/json/items/book/gun.json
@@ -14,7 +14,7 @@
"skill": "gun",
"max_level": 1,
"intelligence": 2,
- "time": 7,
+ "time": "7 m",
"fun": 1
},
{
@@ -31,7 +31,7 @@
"skill": "gun",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
},
{
"id": "pocket_firearms",
@@ -48,6 +48,6 @@
"skill": "gun",
"max_level": 2,
"intelligence": 6,
- "time": 20
+ "time": "20 m"
}
]
diff --git a/data/json/items/book/launcher.json b/data/json/items/book/launcher.json
index 7ebbd64159971..2445c3c0b8710 100644
--- a/data/json/items/book/launcher.json
+++ b/data/json/items/book/launcher.json
@@ -14,7 +14,7 @@
"skill": "launcher",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,6 +32,6 @@
"skill": "launcher",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
}
]
diff --git a/data/json/items/book/mechanics.json b/data/json/items/book/mechanics.json
index f7bb8c57a5056..95b59a2079295 100644
--- a/data/json/items/book/mechanics.json
+++ b/data/json/items/book/mechanics.json
@@ -16,7 +16,7 @@
"required_level": 4,
"max_level": 8,
"intelligence": 6,
- "time": 30,
+ "time": "30 m",
"fun": -1
},
{
@@ -43,7 +43,7 @@
"skill": "mechanics",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 2
},
{
@@ -60,7 +60,7 @@
"skill": "mechanics",
"max_level": 3,
"intelligence": 5,
- "time": 18
+ "time": "18 m"
},
{
"id": "textbook_biodiesel",
@@ -79,7 +79,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 9,
- "time": 30
+ "time": "30 m"
},
{
"id": "textbook_mechanics",
@@ -98,7 +98,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 6,
- "time": 30,
+ "time": "30 m",
"fun": -1
}
]
diff --git a/data/json/items/book/melee.json b/data/json/items/book/melee.json
index ca6f9f8a474d4..959a8d5a8073a 100644
--- a/data/json/items/book/melee.json
+++ b/data/json/items/book/melee.json
@@ -14,7 +14,7 @@
"skill": "melee",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 2
},
{
@@ -31,6 +31,6 @@
"skill": "melee",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
}
]
diff --git a/data/json/items/book/misc.json b/data/json/items/book/misc.json
index 24e0356801328..a179a4b3ed0d6 100644
--- a/data/json/items/book/misc.json
+++ b/data/json/items/book/misc.json
@@ -11,7 +11,7 @@
"symbol": "?",
"color": "green",
"intelligence": 7,
- "time": 18,
+ "time": "18 m",
"chapters": 28,
"fun": 2
},
@@ -29,7 +29,7 @@
"symbol": "?",
"color": "light_green",
"intelligence": 8,
- "time": 30,
+ "time": "30 m",
"fun": -1
},
{
@@ -43,7 +43,7 @@
"material": [ "paper" ],
"symbol": "?",
"color": "light_cyan",
- "time": 4,
+ "time": "4 m",
"chapters": 4,
"fun": 1
},
@@ -61,7 +61,7 @@
"symbol": "?",
"color": "light_cyan",
"intelligence": 5,
- "time": 10
+ "time": "10 m"
},
{
"id": "decoy_elfa",
@@ -75,7 +75,7 @@
"symbol": "?",
"color": "light_green",
"intelligence": 8,
- "time": 45,
+ "time": "45 m",
"fun": -2
},
{
@@ -91,7 +91,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 10,
- "time": 26,
+ "time": "26 m",
"chapters": 40,
"fun": 3
},
@@ -108,7 +108,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 6,
- "time": 18,
+ "time": "18 m",
"chapters": 24,
"fun": 3
},
@@ -126,7 +126,7 @@
"symbol": "?",
"color": "green",
"intelligence": 3,
- "time": 1
+ "time": "1 m"
},
{
"id": "mycenacean_hymns",
@@ -140,7 +140,7 @@
"symbol": "?",
"color": "cyan",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -156,7 +156,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -172,7 +172,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -188,7 +188,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -205,7 +205,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -221,7 +221,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -238,7 +238,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -255,7 +255,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -272,7 +272,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -289,7 +289,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -305,7 +305,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -322,7 +322,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -339,7 +339,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -356,7 +356,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -372,7 +372,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -388,7 +388,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -405,7 +405,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -422,7 +422,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -439,7 +439,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -454,7 +454,7 @@
"material": [ "paper" ],
"symbol": "?",
"color": "light_cyan",
- "time": 7,
+ "time": "7 m",
"fun": 2
},
{
@@ -469,7 +469,7 @@
"symbol": "?",
"color": "pink",
"intelligence": 7,
- "time": 8,
+ "time": "8 m",
"fun": 2
},
{
@@ -484,7 +484,7 @@
"symbol": "?",
"color": "pink",
"intelligence": 7,
- "time": 10,
+ "time": "10 m",
"fun": 2
},
{
@@ -498,7 +498,7 @@
"material": [ "paper" ],
"symbol": "?",
"color": "pink",
- "time": 10,
+ "time": "10 m",
"chapters": 4,
"fun": 1
},
@@ -516,7 +516,7 @@
"symbol": "?",
"color": "light_cyan",
"intelligence": 2,
- "time": 10
+ "time": "10 m"
},
{
"id": "news_regional",
@@ -530,7 +530,7 @@
"symbol": "?",
"color": "pink",
"intelligence": 5,
- "time": 5,
+ "time": "5 m",
"fun": 1
},
{
@@ -545,7 +545,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 4,
- "time": 20,
+ "time": "20 m",
"chapters": 16,
"fun": 4
},
@@ -561,7 +561,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 4,
- "time": 20,
+ "time": "20 m",
"chapters": 16,
"fun": 2
},
@@ -577,7 +577,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 4,
- "time": 20,
+ "time": "20 m",
"chapters": 16,
"fun": 2
},
@@ -601,7 +601,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 6,
- "time": 20,
+ "time": "20 m",
"chapters": 24,
"fun": 3
},
@@ -625,7 +625,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 25,
+ "time": "25 m",
"chapters": 28,
"fun": 4
},
@@ -641,7 +641,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 18,
+ "time": "18 m",
"chapters": 28,
"fun": 1
},
@@ -657,7 +657,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 5,
- "time": 20,
+ "time": "20 m",
"chapters": 20,
"fun": 1
},
@@ -673,7 +673,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"chapters": 28,
"fun": 4
},
@@ -689,7 +689,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 18,
+ "time": "18 m",
"chapters": 28,
"fun": 1
},
@@ -705,7 +705,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 18,
+ "time": "18 m",
"chapters": 28,
"fun": 4
},
@@ -721,7 +721,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 6,
- "time": 18,
+ "time": "18 m",
"chapters": 24,
"fun": 3
},
@@ -737,7 +737,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 4,
- "time": 20,
+ "time": "20 m",
"chapters": 16,
"fun": 4
},
@@ -753,7 +753,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 4,
- "time": 15,
+ "time": "15 m",
"chapters": 16,
"fun": 2
},
@@ -769,7 +769,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"chapters": 28,
"fun": 4
},
@@ -785,7 +785,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 36,
+ "time": "36 m",
"chapters": 28,
"fun": 2
},
@@ -801,7 +801,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 6,
- "time": 20,
+ "time": "20 m",
"chapters": 24,
"fun": 3
},
@@ -817,7 +817,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"chapters": 28,
"fun": 4
},
@@ -833,7 +833,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 5,
- "time": 18,
+ "time": "18 m",
"chapters": 20,
"fun": 3
},
@@ -849,7 +849,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"chapters": 28,
"fun": 4
},
@@ -865,7 +865,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 5,
- "time": 18,
+ "time": "18 m",
"chapters": 20,
"fun": 3
},
@@ -881,7 +881,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 18,
+ "time": "18 m",
"chapters": 28,
"fun": 1
},
@@ -897,7 +897,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"chapters": 28,
"fun": 4
},
@@ -921,7 +921,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"chapters": 28,
"fun": 4
},
@@ -938,7 +938,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 11,
- "time": 36,
+ "time": "36 m",
"chapters": 44,
"fun": 3
},
@@ -956,7 +956,7 @@
"symbol": "?",
"color": "yellow",
"intelligence": 4,
- "time": 1,
+ "time": "1 m",
"chapters": 200,
"fun": -5
},
@@ -971,7 +971,7 @@
"material": [ "paper", "leather" ],
"symbol": "?",
"color": "light_gray",
- "time": 10,
+ "time": "10 m",
"chapters": 4,
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
@@ -989,7 +989,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 9,
- "time": 18,
+ "time": "18 m",
"chapters": 36,
"fun": 2
},
@@ -1006,7 +1006,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 9,
- "time": 18,
+ "time": "18 m",
"chapters": 36,
"fun": 2
},
@@ -1024,7 +1024,7 @@
"symbol": "?",
"color": "light_gray",
"intelligence": 15,
- "time": 30,
+ "time": "30 m",
"fun": -1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -1041,7 +1041,7 @@
"symbol": "?",
"color": "light_green",
"intelligence": 10,
- "time": 30,
+ "time": "30 m",
"fun": -1
},
{
@@ -1058,7 +1058,7 @@
"symbol": "?",
"color": "light_green",
"intelligence": 8,
- "time": 30,
+ "time": "30 m",
"fun": -1
},
{
@@ -1075,7 +1075,7 @@
"symbol": "?",
"color": "light_green",
"intelligence": 4,
- "time": 30,
+ "time": "30 m",
"fun": -1
},
{
@@ -1091,7 +1091,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 7,
- "time": 48,
+ "time": "48 m",
"chapters": 28,
"fun": 5
},
@@ -1108,7 +1108,7 @@
"symbol": "?",
"color": "light_blue",
"intelligence": 6,
- "time": 18,
+ "time": "18 m",
"chapters": 24,
"fun": 3
},
@@ -1126,7 +1126,7 @@
"symbol": "?",
"color": "light_cyan",
"intelligence": 6,
- "time": 30,
+ "time": "30 m",
"fun": 2,
"flags": [ "INSPIRATIONAL" ]
},
@@ -1143,7 +1143,7 @@
"symbol": "?",
"color": "dark_gray",
"intelligence": 8,
- "time": 10,
+ "time": "10 m",
"fun": 1,
"flags": [ "INSPIRATIONAL" ]
},
@@ -1235,7 +1235,7 @@
"color": "light_blue",
"symbol": "?",
"intelligence": 7,
- "time": 28,
+ "time": "28 m",
"chapters": 40,
"fun": 3
},
@@ -1330,7 +1330,7 @@
"color": "light_blue",
"symbol": "?",
"intelligence": 7,
- "time": 28,
+ "time": "28 m",
"chapters": 40,
"fun": 4
}
diff --git a/data/json/items/book/pistol.json b/data/json/items/book/pistol.json
index 8c1557bb9f888..c309f4160e47a 100644
--- a/data/json/items/book/pistol.json
+++ b/data/json/items/book/pistol.json
@@ -13,7 +13,7 @@
"skill": "pistol",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -31,6 +31,6 @@
"skill": "pistol",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
}
]
diff --git a/data/json/items/book/rifle.json b/data/json/items/book/rifle.json
index 2b518ba7af640..8f1d37f30584d 100644
--- a/data/json/items/book/rifle.json
+++ b/data/json/items/book/rifle.json
@@ -14,7 +14,7 @@
"skill": "rifle",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -31,6 +31,6 @@
"skill": "rifle",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
}
]
diff --git a/data/json/items/book/shotgun.json b/data/json/items/book/shotgun.json
index f2e5e34a3b561..6032cdb1b6d60 100644
--- a/data/json/items/book/shotgun.json
+++ b/data/json/items/book/shotgun.json
@@ -14,7 +14,7 @@
"skill": "shotgun",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,6 +32,6 @@
"skill": "shotgun",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
}
]
diff --git a/data/json/items/book/smg.json b/data/json/items/book/smg.json
index 07672ec8e22ee..876e9a3563026 100644
--- a/data/json/items/book/smg.json
+++ b/data/json/items/book/smg.json
@@ -14,7 +14,7 @@
"skill": "smg",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -31,6 +31,6 @@
"skill": "smg",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
}
]
diff --git a/data/json/items/book/speech.json b/data/json/items/book/speech.json
index 46fb4be1107b8..d94c969bd0614 100644
--- a/data/json/items/book/speech.json
+++ b/data/json/items/book/speech.json
@@ -14,7 +14,7 @@
"skill": "speech",
"max_level": 1,
"intelligence": 3,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,7 +32,7 @@
"skill": "speech",
"max_level": 3,
"intelligence": 5,
- "time": 20
+ "time": "20 m"
},
{
"id": "textbook_speech",
@@ -51,7 +51,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "dnd_handbook",
@@ -70,6 +70,6 @@
"skill": "speech",
"max_level": 5,
"intelligence": 9,
- "time": 30
+ "time": "30 m"
}
]
diff --git a/data/json/items/book/stabbing.json b/data/json/items/book/stabbing.json
index d38e2e1497765..f80712b53ccd7 100644
--- a/data/json/items/book/stabbing.json
+++ b/data/json/items/book/stabbing.json
@@ -13,7 +13,7 @@
"skill": "stabbing",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -30,6 +30,6 @@
"skill": "stabbing",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
}
]
diff --git a/data/json/items/book/survival.json b/data/json/items/book/survival.json
index f9d5fe880f816..456503b2f8b5e 100644
--- a/data/json/items/book/survival.json
+++ b/data/json/items/book/survival.json
@@ -16,7 +16,7 @@
"required_level": 1,
"max_level": 8,
"intelligence": 10,
- "time": 55,
+ "time": "55 m",
"fun": -3
},
{
@@ -35,7 +35,7 @@
"required_level": 1,
"max_level": 3,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 3
},
{
@@ -53,7 +53,7 @@
"skill": "survival",
"max_level": 1,
"intelligence": 5,
- "time": 24,
+ "time": "24 m",
"fun": 1
},
{
@@ -71,7 +71,7 @@
"skill": "survival",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 2
},
{
@@ -89,7 +89,7 @@
"skill": "survival",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
},
{
"id": "pocket_survival",
@@ -105,7 +105,7 @@
"skill": "survival",
"max_level": 2,
"intelligence": 6,
- "time": 20
+ "time": "20 m"
},
{
"id": "survival_book",
@@ -125,7 +125,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 10,
- "time": 55,
+ "time": "55 m",
"fun": 1
},
{
@@ -144,6 +144,6 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
}
]
diff --git a/data/json/items/book/swimming.json b/data/json/items/book/swimming.json
index f0c0f5dbd286b..7eba15122803c 100644
--- a/data/json/items/book/swimming.json
+++ b/data/json/items/book/swimming.json
@@ -14,7 +14,7 @@
"skill": "swimming",
"max_level": 1,
"intelligence": 1,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -31,6 +31,6 @@
"skill": "swimming",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
}
]
diff --git a/data/json/items/book/tailor.json b/data/json/items/book/tailor.json
index 48f78acbb0e6a..87f0a1e0d73e5 100644
--- a/data/json/items/book/tailor.json
+++ b/data/json/items/book/tailor.json
@@ -21,7 +21,7 @@
"skill": "tailor",
"max_level": 1,
"intelligence": 5,
- "time": 24,
+ "time": "24 m",
"fun": 1
},
{
@@ -39,7 +39,7 @@
"skill": "tailor",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 2
},
{
@@ -57,7 +57,7 @@
"skill": "tailor",
"max_level": 3,
"intelligence": 4,
- "time": 18
+ "time": "18 m"
},
{
"id": "tailor_portfolio",
@@ -75,7 +75,7 @@
"required_level": 5,
"max_level": 8,
"intelligence": 10,
- "time": 55,
+ "time": "55 m",
"fun": -1
},
{
@@ -94,7 +94,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 40
+ "time": "40 m"
},
{
"id": "recipe_fauxfur",
@@ -112,7 +112,7 @@
"required_level": 2,
"max_level": 5,
"intelligence": 7,
- "time": 20,
+ "time": "20 m",
"fun": 1
},
{
@@ -132,6 +132,6 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
}
]
diff --git a/data/json/items/book/throw.json b/data/json/items/book/throw.json
index 9961002976bce..ab154acea7cb5 100644
--- a/data/json/items/book/throw.json
+++ b/data/json/items/book/throw.json
@@ -14,7 +14,7 @@
"skill": "throw",
"max_level": 1,
"intelligence": 1,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,6 +32,6 @@
"skill": "throw",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
}
]
diff --git a/data/json/items/book/traps.json b/data/json/items/book/traps.json
index 13cc1203fd3dc..4e8b694f0479d 100644
--- a/data/json/items/book/traps.json
+++ b/data/json/items/book/traps.json
@@ -14,7 +14,7 @@
"skill": "traps",
"max_level": 4,
"intelligence": 4,
- "time": 20
+ "time": "20 m"
},
{
"id": "mag_traps",
@@ -31,7 +31,7 @@
"skill": "traps",
"max_level": 1,
"intelligence": 5,
- "time": 8
+ "time": "8 m"
},
{
"id": "manual_traps",
@@ -47,7 +47,7 @@
"skill": "traps",
"max_level": 3,
"intelligence": 4,
- "time": 20
+ "time": "20 m"
},
{
"id": "textbook_traps",
@@ -67,7 +67,7 @@
"required_level": 3,
"max_level": 6,
"intelligence": 8,
- "time": 30
+ "time": "30 m"
},
{
"id": "trappers_companion",
@@ -86,6 +86,6 @@
"required_level": 5,
"max_level": 8,
"intelligence": 10,
- "time": 55
+ "time": "55 m"
}
]
diff --git a/data/json/items/book/unarmed.json b/data/json/items/book/unarmed.json
index dab9a31d40bb4..3ff0d045b33eb 100644
--- a/data/json/items/book/unarmed.json
+++ b/data/json/items/book/unarmed.json
@@ -14,7 +14,7 @@
"skill": "unarmed",
"max_level": 1,
"intelligence": 5,
- "time": 8,
+ "time": "8 m",
"fun": 1
},
{
@@ -32,6 +32,6 @@
"skill": "unarmed",
"max_level": 3,
"intelligence": 3,
- "time": 15
+ "time": "15 m"
}
]
diff --git a/data/json/items/chemicals_and_resources.json b/data/json/items/chemicals_and_resources.json
index 79ead79e87231..a17943e9356d3 100644
--- a/data/json/items/chemicals_and_resources.json
+++ b/data/json/items/chemicals_and_resources.json
@@ -528,7 +528,7 @@
"volume": 1,
"weight": 16.625,
"bashing": 1,
- "ammo_type": "components",
+ "ammo_type": "esbit",
"container": "box_small",
"count": 20
},
@@ -1216,5 +1216,20 @@
"color": "brown",
"ammo_type": "components",
"looks_like": "bag_canvas"
+ },
+ {
+ "id": "rosin",
+ "type": "AMMO",
+ "category": "chems",
+ "name": "rosin",
+ "description": "This is a chunk of yellowish rosin, usable as a flux for soldering.",
+ "weight": 1,
+ "volume": "10 ml",
+ "count": 10,
+ "price": 0,
+ "material": "wood",
+ "symbol": "=",
+ "color": "yellow",
+ "ammo_type": "components"
}
]
diff --git a/data/json/items/comestibles/brewing.json b/data/json/items/comestibles/brewing.json
index e5d0d8a62152b..954cfb4ab7500 100644
--- a/data/json/items/comestibles/brewing.json
+++ b/data/json/items/comestibles/brewing.json
@@ -44,6 +44,52 @@
"flags": [ "NUTRIENT_OVERRIDE" ],
"comestible_type": "DRINK"
},
+ {
+ "type": "COMESTIBLE",
+ "id": "brew_gin",
+ "name": "fermenting gin mash",
+ "name_plural": "fermenting gin mashes",
+ "description": "Undistilled gin mash. Distilling it will produce gin.",
+ "weight": 33,
+ "color": "brown",
+ "container": "bottle_glass",
+ "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ],
+ "symbol": "~",
+ "calories": 17,
+ "quench": 4,
+ "fun": -15,
+ "price": 0,
+ "volume": 1,
+ "charges": 7,
+ "phase": "liquid",
+ "comestible_type": "DRINK",
+ "brewable": { "time": "24 hours", "results": [ "gin_mash" ] }
+ },
+ {
+ "type": "COMESTIBLE",
+ "id": "gin_mash",
+ "name": "gin mash",
+ "name_plural": "gin mashes",
+ "description": "Gin mash, after the junipers have had time to add flavour, ready to be distilled or drunk as is.",
+ "weight": 33,
+ "color": "yellow",
+ "addiction_type": "alcohol",
+ "addiction_potential": 1,
+ "use_action": "ALCOHOL_WEAK",
+ "stim": -2,
+ "container": "jug_plastic",
+ "symbol": "~",
+ "calories": 9,
+ "quench": 2,
+ "healthy": -2,
+ "fun": 2,
+ "material": [ "water", "alcohol" ],
+ "volume": 1,
+ "charges": 7,
+ "phase": "liquid",
+ "flags": [ "NUTRIENT_OVERRIDE" ],
+ "comestible_type": "DRINK"
+ },
{
"type": "COMESTIBLE",
"id": "brew_vodka",
diff --git a/data/json/items/comestibles/dairy.json b/data/json/items/comestibles/dairy.json
index 92af5e4bb3a9e..11670357ddfdc 100644
--- a/data/json/items/comestibles/dairy.json
+++ b/data/json/items/comestibles/dairy.json
@@ -36,7 +36,6 @@
"volume": 1,
"phase": "liquid",
"fun": 20,
- "flags": [ "FREEZERBURN" ],
"vitamins": [ [ "calcium", 8 ], [ "iron", 1 ] ]
},
{
diff --git a/data/json/items/comestibles/drink.json b/data/json/items/comestibles/drink.json
index dea5b914d8b4a..3ee266e39c33c 100644
--- a/data/json/items/comestibles/drink.json
+++ b/data/json/items/comestibles/drink.json
@@ -145,6 +145,21 @@
"flags": [ "EATEN_HOT", "NUTRIENT_OVERRIDE" ],
"fun": 14
},
+ {
+ "type": "COMESTIBLE",
+ "id": "chamomile_tea",
+ "name": "chamomile tea",
+ "name_plural": "chamomile tea",
+ "copy-from": "tea",
+ "color": "green",
+ "use_action": "SLEEP",
+ "spoils_in": "10 days",
+ "quench": 34,
+ "healthy": 1,
+ "description": "A healthy beverage made from chamomile flowers steeped in boiling water. Can be used to treat insomnia.",
+ "price": 100,
+ "fun": 1
+ },
{
"type": "COMESTIBLE",
"id": "choc_drink",
diff --git a/data/json/items/comestibles/mushroom.json b/data/json/items/comestibles/mushroom.json
index 77c6bc275c36a..fdc6daf9c213a 100644
--- a/data/json/items/comestibles/mushroom.json
+++ b/data/json/items/comestibles/mushroom.json
@@ -94,7 +94,7 @@
"material": "mushroom",
"volume": 1,
"fun": -3,
- "flags": [ "FREEZERBURN", "SMOKABLE" ],
+ "flags": [ "FREEZERBURN", "SMOKABLE", "FORAGE_POISON", "FORAGE_HALLU" ],
"smoking_result": "dry_mushroom",
"vitamins": [ [ "vitC", 2 ], [ "iron", 2 ] ]
}
diff --git a/data/json/items/comestibles/nuts.json b/data/json/items/comestibles/nuts.json
index bb48ea83b13d4..b1f48bc2c2610 100644
--- a/data/json/items/comestibles/nuts.json
+++ b/data/json/items/comestibles/nuts.json
@@ -22,6 +22,25 @@
"vitamins": [ [ "iron", 9 ] ],
"fun": 2
},
+ {
+ "type": "COMESTIBLE",
+ "id": "juniper",
+ "name": "handful of junipers",
+ "name_plural": "handful of junipers",
+ "weight": 122,
+ "color": "blue",
+ "comestible_type": "FOOD",
+ "symbol": "%",
+ "quench": -2,
+ "healthy": 1,
+ "calories": 22,
+ "description": "Junipers, for making gin and earthy flavours. Spicy, tastes similar to rosemary.",
+ "price": 400,
+ "material": "fruit",
+ "volume": 1,
+ "fun": -2,
+ "vitamins": [ [ "vitA", 12 ], [ "vitC", 12 ], [ "calcium", 1 ], [ "iron", 1 ] ]
+ },
{
"type": "COMESTIBLE",
"id": "pistachio_unshelled",
@@ -261,18 +280,6 @@
"flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ],
"fun": 1
},
- {
- "type": "COMESTIBLE",
- "id": "acorn_roasted",
- "name": "handful of roasted acorns",
- "name_plural": "handfuls of roasted acorns",
- "copy-from": "acorns",
- "healthy": 1,
- "description": "A handful of roasted nuts from a oak tree.",
- "price": 90,
- "flags": [ "EATEN_HOT", "EDIBLE_FROZEN" ],
- "fun": 1
- },
{
"type": "COMESTIBLE",
"id": "hazelnut_unshelled",
diff --git a/data/json/items/comestibles/other.json b/data/json/items/comestibles/other.json
index 11ac7229a7d71..748974345eeee 100644
--- a/data/json/items/comestibles/other.json
+++ b/data/json/items/comestibles/other.json
@@ -571,7 +571,7 @@
"vitamins": [ [ "calcium", 1 ], [ "iron", 7 ] ],
"fun": 5,
"color": "brown",
- "flags": [ "INEDIBLE", "BIRD" ],
+ "flags": [ "INEDIBLE", "BIRD", "NUTRIENT_OVERRIDE" ],
"use_action": "BIRDFOOD"
},
{
diff --git a/data/json/items/comestibles/seed.json b/data/json/items/comestibles/seed.json
index ba78d2a48ab6a..4e2b38d190c59 100644
--- a/data/json/items/comestibles/seed.json
+++ b/data/json/items/comestibles/seed.json
@@ -257,6 +257,46 @@
"description": "Some garlic seeds.",
"seed_data": { "plant_name": "garlic", "fruit": "garlic", "byproducts": [ "withered" ], "grow": "65 days" }
},
+ {
+ "type": "COMESTIBLE",
+ "id": "seed_cattail",
+ "copy-from": "seed",
+ "name": "cattail seeds",
+ "name_plural": "cattail seeds",
+ "color": "green",
+ "description": "Some cattail seeds. You could probably plant these.",
+ "seed_data": { "plant_name": "cattail", "fruit": "cattail_stalk", "byproducts": [ "cattail_rhizome" ], "grow": "91 days" }
+ },
+ {
+ "type": "COMESTIBLE",
+ "id": "seed_dahlia",
+ "copy-from": "seed",
+ "name": "dahlia seeds",
+ "name_plural": "dahlia seeds",
+ "color": "green",
+ "description": "Some dahlia seeds. You could probably plant these.",
+ "seed_data": { "plant_name": "dahlia", "fruit": "dahlia_root", "byproducts": [ "withered" ], "grow": "91 days" }
+ },
+ {
+ "type": "COMESTIBLE",
+ "id": "seed_flower",
+ "copy-from": "seed",
+ "name": "decorative plant seeds",
+ "name_plural": "decorative plant seeds",
+ "color": "green",
+ "description": "Some small decorative plant seeds, likely grass or flower. You could probably plant these, but don't expect them to be useful for anything other than dry plant material.",
+ "seed_data": { "plant_name": "decorative plant", "fruit": "withered", "grow": "91 days" }
+ },
+ {
+ "type": "COMESTIBLE",
+ "id": "seed_cactus",
+ "copy-from": "seed",
+ "name": "cactus seeds",
+ "name_plural": "cactus seeds",
+ "color": "green",
+ "description": "Some cactus seeds. You could probably plant these.",
+ "seed_data": { "plant_name": "cactus", "fruit": "cactus_pad", "grow": "91 days" }
+ },
{
"type": "COMESTIBLE",
"id": "garlic_clove",
@@ -716,5 +756,15 @@
"description": "Some roasted coffee beans, can be ground into powder.",
"addiction_type": "caffeine",
"flags": [ "EDIBLE_FROZEN" ]
+ },
+ {
+ "type": "COMESTIBLE",
+ "id": "seed_chamomile",
+ "copy-from": "seed",
+ "looks_like": "seed_raw_dandelion",
+ "name": "chamomile seeds",
+ "name_plural": "chamomile seeds",
+ "description": "Some chamomile seeds.",
+ "seed_data": { "plant_name": "chamomile", "fruit": "chamomile", "byproducts": [ "withered" ], "grow": "91 days" }
}
]
diff --git a/data/json/items/containers.json b/data/json/items/containers.json
index 9dff7750d8a97..f38e568501545 100644
--- a/data/json/items/containers.json
+++ b/data/json/items/containers.json
@@ -272,8 +272,8 @@
"id": "box_small",
"type": "CONTAINER",
"category": "other",
- "name": "cardboard box",
- "name_plural": "cardboard boxes",
+ "name": "small cardboard box",
+ "name_plural": "small cardboard boxes",
"description": "A small cardboard box. No bigger than a foot in dimension.",
"weight": 151,
"volume": 4,
@@ -283,6 +283,39 @@
"color": "brown",
"contains": 4
},
+ {
+ "id": "box_medium",
+ "type": "CONTAINER",
+ "category": "other",
+ "name": "cardboard box",
+ "name_plural": "cardboard boxes",
+ "description": "A sturdy cardboard box, about the size of a banana box. Great for packing.",
+ "weight": 850,
+ "volume": 8,
+ "//": "Volume is much lower than the actual volume of a box this size because presumably if it's in your pack, it isn't empty and full of air; and if it's in your hands, it's irrelevant what the volume is.",
+ "price": 0,
+ "material": "paper",
+ "symbol": ")",
+ "color": "brown",
+ "contains": 12
+ },
+ {
+ "id": "box_large",
+ "type": "CONTAINER",
+ "category": "other",
+ "name": "large cardboard box",
+ "name_plural": "large cardboard boxes",
+ "description": "A very large cardboard box, the sort children would have loved to hide in, when there were still children.",
+ "weight": 1250,
+ "volume": 12,
+ "//": "Volume is much lower than the actual volume of a box this size because presumably if it's in your pack, it isn't empty and full of air; and if it's in your hands, it's irrelevant what the volume is.",
+ "price": 0,
+ "material": "paper",
+ "symbol": ")",
+ "color": "brown",
+ "contains": 20,
+ "use_action": { "type": "deploy_furn", "furn_type": "f_cardboard_box" }
+ },
{
"id": "bucket",
"type": "CONTAINER",
diff --git a/data/json/items/fuel.json b/data/json/items/fuel.json
index 53a279c4a7de6..3c8afc464481b 100644
--- a/data/json/items/fuel.json
+++ b/data/json/items/fuel.json
@@ -30,7 +30,8 @@
"type": "AMMO",
"description": "A high-strength ethanol solution mixed with methanol to make it toxic to drink, so as to avoid pre-apocalyptic regulations on ethanol. Intended for use in alcohol-burning stoves and as a solvent.",
"price": 10,
- "price_postapoc": 300
+ "price_postapoc": 300,
+ "ammo_type": "conc_alcohol"
},
{
"id": "chem_methanol",
@@ -39,7 +40,8 @@
"type": "AMMO",
"description": "High purity methanol suitable for use in chemical reactions. Could be used in alcohol-burning stoves. Very toxic.",
"price": 5,
- "price_postapoc": 100
+ "price_postapoc": 100,
+ "ammo_type": "conc_alcohol"
},
{
"id": "diesel",
diff --git a/data/json/items/generic.json b/data/json/items/generic.json
index 10dc5794e7809..640416c93452e 100644
--- a/data/json/items/generic.json
+++ b/data/json/items/generic.json
@@ -376,6 +376,20 @@
"volume": 0,
"to_hit": -3
},
+ {
+ "type": "GENERIC",
+ "id": "data_card",
+ "symbol": ",",
+ "color": "white",
+ "name": "data card",
+ "description": "Some type of advanced data storage device. Useful for storing very large amounts of information.",
+ "price": 10000,
+ "price_postapoc": 100,
+ "material": "plastic",
+ "weight": 18,
+ "volume": 0,
+ "to_hit": -3
+ },
{
"id": "golf_tee",
"type": "GENERIC",
@@ -840,7 +854,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -857,7 +871,7 @@
"bashing": 4,
"cutting": 4,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -874,7 +888,7 @@
"bashing": 4,
"cutting": 4,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -892,7 +906,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -910,7 +924,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -934,7 +948,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -970,7 +984,7 @@
"bashing": 6,
"cutting": 10,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -987,7 +1001,7 @@
"bashing": 10,
"cutting": 6,
"to_hit": -2,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1004,7 +1018,7 @@
"bashing": 20,
"cutting": 15,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1021,7 +1035,7 @@
"bashing": 4,
"cutting": 4,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1038,7 +1052,7 @@
"bashing": 4,
"cutting": 4,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1055,7 +1069,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1073,7 +1087,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1091,7 +1105,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1109,7 +1123,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1127,7 +1141,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1145,7 +1159,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -1163,7 +1177,7 @@
"bashing": 6,
"cutting": 6,
"to_hit": -3,
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
@@ -2106,6 +2120,19 @@
"volume": 6,
"price": 0
},
+ {
+ "type": "GENERIC",
+ "id": "chamomile",
+ "name": "handful of chamomile flowers",
+ "name_plural": "handfuls of chamomile flowers",
+ "description": "White chamomile flowers, used as a herbal remedy since the ancient times.",
+ "weight": 50,
+ "color": "white",
+ "symbol": ",",
+ "material": [ "veggy" ],
+ "volume": 1,
+ "price": 0
+ },
{
"type": "GENERIC",
"id": "clay_lump",
@@ -2153,6 +2180,65 @@
"volume": 4,
"bashing": 4
},
+ {
+ "type": "GENERIC",
+ "id": "soft_adobe_brick",
+ "category": "spare_parts",
+ "symbol": ",",
+ "color": "brown",
+ "name": "soft adobe brick",
+ "name_plural": "soft adobe bricks",
+ "description": "A compacted mass of soil and natural fibers, still too wet to build with. Load it onto a pallet and leave it to dry.",
+ "price": 0,
+ "material": "soil",
+ "weight": 1750,
+ "volume": 3,
+ "bashing": 2,
+ "to_hit": -3,
+ "use_action": {
+ "target": "adobe_brick",
+ "msg": "You test the brick, and it seems solid enough to use.",
+ "moves": 50,
+ "type": "delayed_transform",
+ "transform_age": 100800,
+ "not_ready_msg": "The brick is still too damp to bear weight.",
+ "//": "Should be about a week. Irl it's ten days, so make big batches."
+ }
+ },
+ {
+ "type": "GENERIC",
+ "id": "adobe_brick",
+ "category": "spare_parts",
+ "symbol": ",",
+ "color": "yellow",
+ "looks_like": "brick",
+ "name": "adobe brick",
+ "description": "A compacted mass of soil and natural fibers, baked dry enough to harden into a brick.",
+ "material": "soil",
+ "flags": "NONCONDUCTIVE",
+ "weight": 1500,
+ "volume": 3,
+ "bashing": 10,
+ "to_hit": -2,
+ "price": 2000,
+ "qualities": [ [ "HAMMER", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "mortar_adobe",
+ "symbol": "%",
+ "color": "brown",
+ "name": "adobe mortar",
+ "name_plural": "adobe mortar",
+ "description": "A thick, pasty mud, low in sand content to reduce crumbling once dry. Used to glue larger, heavier pieces of mud and clay together.",
+ "category": "spare_parts",
+ "container": "bag_canvas",
+ "price": 200,
+ "material": "soil",
+ "weight": 2340,
+ "volume": 4,
+ "bashing": 4
+ },
{
"type": "GENERIC",
"id": "tanbark",
@@ -2728,6 +2814,19 @@
"volume": 0,
"to_hit": -3
},
+ {
+ "type": "GENERIC",
+ "id": "rmi2_corpse",
+ "symbol": "%",
+ "color": "white",
+ "name": "desiccated corpse",
+ "description": "A badly mangled and desiccated partial corpse. It seems whatever thing killed him did so with a single swipe of a gigantic claw.",
+ "category": "other",
+ "material": "hflesh",
+ "price": 0,
+ "volume": 30,
+ "flags": [ "TRADER_AVOID" ]
+ },
{
"id": "gasdiscount_silver",
"type": "TOOL",
diff --git a/data/json/items/generic/casing.json b/data/json/items/generic/casing.json
index 7e5394e131e42..41249267ad5df 100644
--- a/data/json/items/generic/casing.json
+++ b/data/json/items/generic/casing.json
@@ -130,6 +130,15 @@
"weight": 4,
"volume": "6ml"
},
+ {
+ "id": "4570_casing",
+ "copy-from": "casing",
+ "type": "GENERIC",
+ "name": ".45-70 casing",
+ "description": "An empty casing from a .45-70 Government round.",
+ "weight": 4,
+ "volume": "10ml"
+ },
{
"id": "46mm_casing",
"copy-from": "casing",
diff --git a/data/json/items/generic/dining_kitchen.json b/data/json/items/generic/dining_kitchen.json
index 1c6e4ab9f536c..60d2dbc61c1b6 100644
--- a/data/json/items/generic/dining_kitchen.json
+++ b/data/json/items/generic/dining_kitchen.json
@@ -58,7 +58,7 @@
"price_postapoc": 0,
"material": "ceramic",
"weight": 322,
- "volume": "200 ml",
+ "volume": "250 ml",
"bashing": 3,
"to_hit:": -1
},
@@ -73,7 +73,7 @@
"price_postapoc": 0,
"material": "glass",
"weight": 322,
- "volume": "200 ml",
+ "volume": "250 ml",
"bashing": 3,
"to_hit:": -1
},
@@ -88,7 +88,7 @@
"price_postapoc": 0,
"material": "aluminum",
"weight": 262,
- "volume": "200 ml",
+ "volume": "250 ml",
"bashing": 2,
"to_hit:": -1
},
@@ -103,7 +103,7 @@
"price_postapoc": 0,
"material": "plastic",
"weight": 130,
- "volume": "200 ml",
+ "volume": "250 ml",
"bashing": 1,
"to_hit:": -1
},
@@ -139,8 +139,7 @@
"symbol": ")",
"description": "A perfectly ordinary ceramic soup bowl.",
"copy-from": "base_ceramic_dish",
- "contains": 2,
- "watertight": true,
+ "container_data": { "contains": 2, "watertight": true },
"qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ]
},
{
@@ -152,8 +151,7 @@
"description": "A light ceramic teacup. Quite classy.",
"copy-from": "base_ceramic_dish",
"proportional": { "weight": 0.6 },
- "contains": 1,
- "watertight": true,
+ "container_data": { "contains": 1, "watertight": true },
"qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ]
},
{
@@ -165,8 +163,7 @@
"description": "A ceramic coffee cup with a logo on the side.",
"copy-from": "base_ceramic_dish",
"proportional": { "weight": 0.8 },
- "contains": 1,
- "watertight": true,
+ "container_data": { "contains": 1, "watertight": true },
"qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ],
"snippet_category": [
{ "id": "mug1", "text": "The side of the mug reads 'World's Greatest Dad'." },
@@ -210,12 +207,11 @@
"id": "tin_cup",
"name": "tin cup",
"symbol": "u",
- "description": "An emaled tin cup. Great for camping or for prison use; makes a wonderful sound when clanged along bars.",
+ "description": "An enameled tin cup. Great for camping or for prison use; makes a wonderful sound when clanged along bars.",
"looks_like": "ceramic_cup",
"proportional": { "weight": 0.8 },
"copy-from": "base_tin_dish",
- "contains": 1,
- "watertight": true,
+ "container_data": { "contains": 1, "watertight": true },
"qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ]
},
{
@@ -226,8 +222,7 @@
"description": "A small pewter serving bowl without a lid. Holds 250 ml of liquid.",
"copy-from": "base_tin_dish",
"symbol": "u",
- "contains": 1,
- "watertight": true,
+ "container_data": { "contains": 1, "watertight": true },
"qualities": [ [ "BOIL", 2 ], [ "CONTAIN", 1 ] ]
},
{
@@ -250,8 +245,7 @@
"symbol": "U",
"description": "A tall drinking glass.",
"copy-from": "base_glass_dish",
- "contains": 2,
- "watertight": true,
+ "container_data": { "contains": 2, "watertight": true },
"qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ]
},
{
@@ -264,8 +258,7 @@
"symbol": "Y",
"description": "A stemmed drinking glass that makes you feel very fancy when you drink from it.",
"copy-from": "base_glass_dish",
- "contains": 1,
- "watertight": true,
+ "container_data": { "contains": 1, "watertight": true },
"qualities": [ [ "CONTAIN", 1 ] ]
},
{
@@ -276,8 +269,7 @@
"symbol": "u",
"description": "A glass bowl for soup or dessert.",
"copy-from": "base_glass_dish",
- "contains": 2,
- "watertight": true,
+ "container_data": { "contains": 2, "watertight": true },
"qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ]
},
{
@@ -298,8 +290,7 @@
"symbol": "U",
"description": "A durable plastic drinking vessel. This one is made of clear acrylic and looks almost like glass.",
"copy-from": "base_plastic_dish",
- "contains": 2,
- "watertight": true,
+ "container_data": { "contains": 2, "watertight": true },
"qualities": [ [ "CONTAIN", 1 ] ]
},
{
@@ -310,10 +301,8 @@
"symbol": "u",
"description": "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid.",
"copy-from": "base_plastic_dish",
- "contains": 3,
"volume": "750 ml",
- "seals": true,
- "watertight": true,
+ "container_data": { "contains": 3, "seals": true, "watertight": true },
"qualities": [ [ "CONTAIN", 1 ] ]
},
{
@@ -325,8 +314,7 @@
"proportional": { "weight": 0.6, "volume": 0.5 },
"description": "A plastic bowl designed for use by children.",
"copy-from": "base_plastic_dish",
- "contains": 1,
- "watertight": true,
+ "container_data": { "contains": 1, "watertight": true },
"qualities": [ [ "CONTAIN", 1 ] ],
"snippet_category": [
{ "id": "kbowl1", "text": "This bowl is decorated with cartoon bears." },
diff --git a/data/json/items/generic/string.json b/data/json/items/generic/string.json
index 5ce6f8d1f8065..056287b015767 100644
--- a/data/json/items/generic/string.json
+++ b/data/json/items/generic/string.json
@@ -44,7 +44,7 @@
"copy-from": "rope_30",
"type": "GENERIC",
"name": "vine",
- "description": "A sturdy 30-foot long vine. Could easily be used as a rope, but can't be disassembled.",
+ "description": "A sturdy 30-foot long vine. Could easily be used as a rope, but can't be disassembled. Strong enough to suspend a large corpse for butchering.",
"material": "veggy",
"color": "light_green"
},
@@ -61,7 +61,7 @@
"copy-from": "rope_makeshift_6",
"type": "GENERIC",
"name": "long makeshift rope",
- "description": "A 30-foot long rough rope, woven from natural cordage. Not strong enough to hold up to falls, but still useful for some things.",
+ "description": "A 30-foot long rough rope, woven from natural cordage. Not strong enough to hold up to falls, but still useful for some things, such as suspending large corpses for butchering.",
"armor_data": { "covers": [ "TORSO" ], "coverage": 12, "encumbrance": 14, "material_thickness": 6 },
"proportional": { "weight": 5, "volume": 5, "price": 5 },
"extend": { "flags": [ "BELTED" ] }
diff --git a/data/json/items/gun/22.json b/data/json/items/gun/22.json
index db0f89b58db31..195c117b3cc02 100644
--- a/data/json/items/gun/22.json
+++ b/data/json/items/gun/22.json
@@ -35,7 +35,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "22", [ "a180mag" ] ], [ "57", [ "fnp90mag" ] ] ]
+ "magazines": [ [ "22", [ "a180mag" ] ] ]
},
{
"id": "marlin_9a",
@@ -194,11 +194,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "22", [ "ruger1022mag", "ruger1022bigmag", "smg_22_mag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "22", [ "ruger1022mag", "ruger1022bigmag" ] ] ]
},
{
"id": "ruger_lcr_22",
diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json
index b8edf46ed3eda..30054193912e1 100644
--- a/data/json/items/gun/223.json
+++ b/data/json/items/gun/223.json
@@ -20,11 +20,7 @@
"burst": 11,
"barrel_length": 1,
"built_in_mods": [ "folding_stock" ],
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "ar15",
@@ -44,17 +40,13 @@
"ammo": "223",
"dispersion": 150,
"durability": 7,
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "h&k416a5",
"copy-from": "rifle_auto",
"type": "GUN",
- "name": "H&K 416A5",
+ "name": "HK416 A5",
"//": "*Current* milspec gear is now ridiculously overpriced, as seen with the M2010 IRL.",
"description": "Designed to replace the M4A1, the Heckler and Koch 416A5 features most of the former's strengths, while being considerably more durable.",
"weight": 1920,
@@ -70,11 +62,7 @@
"dispersion": 180,
"durability": 8,
"burst": 14,
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "hk_g36",
@@ -94,11 +82,7 @@
"dispersion": 150,
"durability": 8,
"burst": 13,
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "l_bak_223",
@@ -260,7 +244,7 @@
[ "sling", 1 ],
[ "stock", 1 ]
],
- "magazines": [ [ "223", [ "belt223", "stanag30", "stanag50", "survivor223mag" ] ], [ "308", [ "belt308" ] ] ]
+ "magazines": [ [ "223", [ "belt223", "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "m27iar",
@@ -270,11 +254,7 @@
"description": "A H&K416 carbine outfitted with a heavier barrel to enable higher amounts of suppressive fire while retaining a good degree of mobility.",
"weight": 3495,
"burst": 13,
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ],
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ],
"relative": { "ranged_damage": 1, "durability": 1 }
},
{
@@ -296,11 +276,7 @@
"dispersion": 180,
"durability": 6,
"burst": 14,
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "rifle_223",
@@ -379,11 +355,7 @@
"dispersion": 150,
"durability": 8,
"burst": 10,
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "scarhmag", "scarhbigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "sig552",
@@ -402,11 +374,7 @@
"durability": 9,
"modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ], [ "AUTO", "auto", 12 ] ],
"built_in_mods": [ "folding_stock" ],
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "steyr_aug",
@@ -441,11 +409,7 @@
[ "sling", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
},
{
"id": "surv_carbine_223",
@@ -453,7 +417,7 @@
"type": "GUN",
"name": "handmade carbine",
"//": "It's smaller than an M4A1, plus it's a homemade firearm.",
- "description": "A well-designed improvised carbine with a shortened barrel. Accepting crude detachable magazines, this is one of the better homemade weapons.",
+ "description": "A well-designed improvised carbine with a shortened barrel. Accepting crude detachable magazines or STANAG magazines, this is one of the better homemade weapons.",
"weight": 1950,
"volume": 6,
"price": 10000,
@@ -477,6 +441,6 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "223", [ "survivor223mag" ] ] ]
+ "magazines": [ [ "223", [ "survivor223mag", "stanag30", "stanag50" ] ] ]
}
]
diff --git a/data/json/items/gun/3006.json b/data/json/items/gun/3006.json
index 0d67fb60250a7..8399cba3ff1f0 100644
--- a/data/json/items/gun/3006.json
+++ b/data/json/items/gun/3006.json
@@ -35,7 +35,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "3006", [ "blrmag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "3006", [ "blrmag" ] ] ]
},
{
"id": "garand",
@@ -70,7 +70,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "3006", [ "garandclip" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "3006", [ "garandclip" ] ] ]
},
{
"id": "m1903",
@@ -137,7 +137,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "3006", [ "m1918mag", "m1918bigmag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "3006", [ "m1918mag", "m1918bigmag" ] ] ]
},
{
"id": "remington_700",
diff --git a/data/json/items/gun/308.json b/data/json/items/gun/308.json
index 2ae1e51357e4e..05b4ebe7fe1fb 100644
--- a/data/json/items/gun/308.json
+++ b/data/json/items/gun/308.json
@@ -20,7 +20,7 @@
"durability": 8,
"burst": 12,
"barrel_length": 2,
- "magazines": [ [ "308", [ "falmag", "falbigmag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "308", [ "falmag", "falbigmag" ] ] ]
},
{
"id": "hk_g3",
@@ -42,7 +42,7 @@
"dispersion": 150,
"durability": 8,
"modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ], [ "AUTO", "auto", 10 ] ],
- "magazines": [ [ "308", [ "g3mag", "g3bigmag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "308", [ "g3mag", "g3bigmag" ] ] ]
},
{
"id": "m134",
@@ -126,7 +126,7 @@
[ "sights", 1 ],
[ "sling", 1 ]
],
- "magazines": [ [ "308", [ "m14mag", "m14smallmag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "308", [ "m14mag", "m14smallmag" ] ] ]
},
{
"id": "m240",
@@ -161,7 +161,7 @@
[ "sling", 1 ],
[ "stock", 1 ]
],
- "magazines": [ [ "308", [ "belt308" ] ], [ "223", [ "belt223" ] ] ]
+ "magazines": [ [ "308", [ "belt308" ] ] ]
},
{
"id": "m60",
@@ -197,7 +197,7 @@
[ "sling", 1 ],
[ "stock", 1 ]
],
- "magazines": [ [ "308", [ "belt308" ] ], [ "223", [ "belt223" ] ] ]
+ "magazines": [ [ "308", [ "belt308" ] ] ]
},
{
"id": "rifle_308",
@@ -266,7 +266,8 @@
"description": "A highly accurate and modular battle rifle specially designed for the United States Special Operations Command. The 'H' in its name stands for heavy, as it uses the powerful .308 round.",
"ammo": "308",
"ranged_damage": -3,
- "magazine_well": 1
+ "magazine_well": 1,
+ "magazines": [ [ "308", [ "scarhmag", "scarhbigmag" ] ] ]
},
{
"id": "M24",
@@ -301,5 +302,68 @@
[ "sights", 1 ]
],
"flags": [ "NEVER_JAMS" ]
+ },
+ {
+ "id": "hk417_13",
+ "copy-from": "rifle_auto",
+ "type": "GUN",
+ "name": "HK417 A2",
+ "description": "A German battle rifle with a 13\" barrel and telescopic stock. It is a gas operated, rotating bolt rifle with a short-stroke piston design similar to that of the G36.",
+ "weight": 3870,
+ "volume": 7,
+ "price": 320000,
+ "to_hit": -1,
+ "bashing": 12,
+ "material": [ "steel", "plastic" ],
+ "symbol": "(",
+ "color": "dark_gray",
+ "ammo": "308",
+ "ranged_damage": -4,
+ "dispersion": 180,
+ "durability": 8,
+ "burst": 10,
+ "default_mods": [ "adjustable_stock" ],
+ "magazines": [ [ "308", [ "hk417mag_20rd", "hk417mag_10rd" ] ] ]
+ },
+ {
+ "id": "m110a1",
+ "copy-from": "rifle_semi",
+ "type": "GUN",
+ "name": "M110A1",
+ "description": "A derivative of H&K's G28 with an aluminium upper reciever to meet US Army weight requirements. It is a gas operated, rotating bolt rifle accurate to 1.5 MOA with standard ammunition.",
+ "weight": 3800,
+ "volume": 8,
+ "price": 320000,
+ "to_hit": -1,
+ "bashing": 12,
+ "material": [ "steel", "plastic" ],
+ "symbol": "(",
+ "color": "dark_gray",
+ "ammo": "308",
+ "ranged_damage": -1,
+ "dispersion": 120,
+ "durability": 8,
+ "default_mods": [ "adjustable_stock", "bipod", "rifle_scope", "suppressor" ],
+ "magazines": [ [ "308", [ "hk417mag_20rd", "hk417mag_10rd" ] ] ]
+ },
+ {
+ "id": "ar10",
+ "copy-from": "rifle_semi",
+ "type": "GUN",
+ "name": "AR-10",
+ "description": "Somewhat similar to the later AR-15, the AR-10 is a gas operated, rotating bolt rifle chambered for 7.62x51mm rounds.",
+ "weight": 3290,
+ "volume": 8,
+ "price": 120000,
+ "to_hit": -1,
+ "bashing": 12,
+ "material": [ "steel", "plastic" ],
+ "symbol": "(",
+ "color": "dark_gray",
+ "ammo": "308",
+ "ranged_damage": -1,
+ "dispersion": 150,
+ "durability": 7,
+ "magazines": [ [ "308", [ "ar10mag_20rd" ] ] ]
}
]
diff --git a/data/json/items/gun/32.json b/data/json/items/gun/32.json
index f5c54e379f4ec..20c24c2b252bb 100644
--- a/data/json/items/gun/32.json
+++ b/data/json/items/gun/32.json
@@ -122,6 +122,6 @@
"ammo": "32",
"dispersion": 480,
"durability": 8,
- "magazines": [ [ "380", [ "kp3atmag" ] ], [ "32", [ "kp32mag" ] ], [ "9mm", [ "kpf9mag" ] ] ]
+ "magazines": [ [ "32", [ "kp32mag" ] ] ]
}
]
diff --git a/data/json/items/gun/38.json b/data/json/items/gun/38.json
index 74a8caed1d7e7..fc0b290e0b99b 100644
--- a/data/json/items/gun/38.json
+++ b/data/json/items/gun/38.json
@@ -205,13 +205,6 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "38", [ "taurus38mag", "smg_38_mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ],
- [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22" ] ]
- ]
+ "magazines": [ [ "38", [ "taurus38mag" ] ] ]
}
]
diff --git a/data/json/items/gun/380.json b/data/json/items/gun/380.json
index b3ea157c62783..57b431ed4a29b 100644
--- a/data/json/items/gun/380.json
+++ b/data/json/items/gun/380.json
@@ -10,7 +10,8 @@
"price": 160000,
"bashing": 5,
"ammo": "380",
- "burst": 23
+ "burst": 23,
+ "magazines": [ [ "380", [ "mac11mag" ] ] ]
},
{
"id": "kp3at",
@@ -21,7 +22,8 @@
"weight": 240,
"volume": "231ml",
"price": 25000,
- "ammo": "380"
+ "ammo": "380",
+ "magazines": [ [ "380", [ "kp3atmag" ] ] ]
},
{
"id": "fn1910",
diff --git a/data/json/items/gun/40.json b/data/json/items/gun/40.json
index 2896400608b05..c3746ac6d3011 100644
--- a/data/json/items/gun/40.json
+++ b/data/json/items/gun/40.json
@@ -33,12 +33,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "40", [ "glock40mag", "glock40bigmag", "smg_40_mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22" ] ]
- ]
+ "magazines": [ [ "40", [ "glock40mag", "glock40bigmag" ] ] ]
},
{
"id": "rifle_40",
@@ -99,12 +94,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "40", [ "sig40mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22" ] ]
- ]
+ "magazines": [ [ "40", [ "sig40mag" ] ] ]
},
{
"id": "smg_40",
diff --git a/data/json/items/gun/44.json b/data/json/items/gun/44.json
index ea4f1672611ac..3157a34fb46e6 100644
--- a/data/json/items/gun/44.json
+++ b/data/json/items/gun/44.json
@@ -33,7 +33,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "44", [ "deaglemag" ] ], [ "45", [ "m1911mag", "m1911bigmag" ] ], [ "9mm", [ "glockmag", "glockbigmag" ] ] ]
+ "magazines": [ [ "44", [ "deaglemag" ] ] ]
},
{
"id": "henry_big_boy",
diff --git a/data/json/items/gun/45.json b/data/json/items/gun/45.json
index d0277cccfdd16..21bdeff9016e0 100644
--- a/data/json/items/gun/45.json
+++ b/data/json/items/gun/45.json
@@ -33,7 +33,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 2,
- "magazines": [ [ "45", [ "tdi_mag" ] ], [ "9mm", [ "uzimag" ] ] ]
+ "magazines": [ [ "45", [ "tdi_mag" ] ] ]
},
{
"id": "hk_ump45",
@@ -69,7 +69,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "45", [ "ump45mag" ] ], [ "9mm", [ "mp5mag", "mp5bigmag" ] ] ]
+ "magazines": [ [ "45", [ "ump45mag" ] ] ]
},
{
"id": "m1911",
@@ -90,7 +90,7 @@
"dispersion": 480,
"durability": 7,
"magazine_well": 1,
- "magazines": [ [ "45", [ "m1911mag", "m1911bigmag" ] ], [ "9mm", [ "m9mag", "m9bigmag" ] ] ]
+ "magazines": [ [ "45", [ "m1911mag", "m1911bigmag" ] ] ]
},
{
"id": "mac_10",
@@ -127,7 +127,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "45", [ "mac10mag", "smg_45_mag" ] ], [ "380", [ "mac11mag" ] ], [ "9mm", [ "tec9mag" ] ] ]
+ "magazines": [ [ "45", [ "mac10mag" ] ] ]
},
{
"id": "rifle_45",
@@ -250,7 +250,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "45", [ "thompson_mag", "thompson_bigmag", "thompson_drum" ] ], [ "9mm", [ "stenmag", "survivor9mm_mag" ] ] ]
+ "magazines": [ [ "45", [ "thompson_mag", "thompson_bigmag", "thompson_drum" ] ] ]
},
{
"id": "usp_45",
@@ -260,6 +260,7 @@
"ammo": "45",
"ranged_damage": 0,
"built_in_mods": [ "match_trigger" ],
- "default_mods": [ "suppressor" ]
+ "default_mods": [ "suppressor" ],
+ "magazines": [ [ "45", [ "usp45mag" ] ] ]
}
]
diff --git a/data/json/items/gun/4570.json b/data/json/items/gun/4570.json
new file mode 100644
index 0000000000000..71e7da9332e87
--- /dev/null
+++ b/data/json/items/gun/4570.json
@@ -0,0 +1,85 @@
+[
+ {
+ "id": "1895sbl",
+ "copy-from": "rifle_manual",
+ "type": "GUN",
+ "name": "Marlin 1895 SBL",
+ "description": "A handy but powerful lever-action rifle chambered for .45-70 Government. Designed for wilderness guides for defense against large predators such as grizzly bears, moose, and dinosaurs.",
+ "weight": 3650,
+ "volume": 9,
+ "price": 100000,
+ "to_hit": 1,
+ "bashing": 12,
+ "material": [ "steel", "wood" ],
+ "symbol": "(",
+ "color": "light_blue",
+ "ammo": "4570",
+ "dispersion": 200,
+ "durability": 8,
+ "clip_size": 7,
+ "valid_mod_locations": [
+ [ "accessories", 4 ],
+ [ "brass catcher", 1 ],
+ [ "grip", 1 ],
+ [ "mechanism", 4 ],
+ [ "muzzle", 1 ],
+ [ "sights", 1 ],
+ [ "sling", 1 ]
+ ],
+ "flags": [ "RELOAD_ONE" ]
+ },
+ {
+ "id": "bfr",
+ "copy-from": "pistol_revolver",
+ "type": "GUN",
+ "name": "Magnum Research BFR",
+ "description": "A massive single-action revolver. While the .45-70 rifle round loses significant velocity in its short pistol barrel, it still competes with other large magnum handguns in terms of power.",
+ "weight": 1950,
+ "volume": 4,
+ "price": 105000,
+ "to_hit": -2,
+ "bashing": 12,
+ "material": [ "steel", "plastic" ],
+ "color": "dark_gray",
+ "symbol": "(",
+ "ammo": "4570",
+ "ranged_damage": -15,
+ "dispersion": 180,
+ "durability": 8,
+ "clip_size": 5,
+ "valid_mod_locations": [ [ "accessories", 2 ], [ "barrel", 1 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ] ]
+ },
+ {
+ "id": "sharps",
+ "copy-from": "gun_base",
+ "type": "GUN",
+ "name": "1874 Sharps",
+ "name_plural": "1874 Sharps",
+ "description": "A reproduction of an antique single-shot .45-70 rifle once used to hunt buffalo and other large game in the late 19th Century. Highly accurate and powerful for the time, this one is made to handle modern smokeless ammunition.",
+ "weight": 5500,
+ "volume": 13,
+ "price": 210000,
+ "to_hit": 1,
+ "bashing": 12,
+ "material": [ "steel", "wood" ],
+ "color": "blue",
+ "symbol": "(",
+ "ammo": "4570",
+ "skill": "rifle",
+ "ranged_damage": 4,
+ "dispersion": 100,
+ "durability": 8,
+ "clip_size": 1,
+ "built_in_mods": [ "match_trigger" ],
+ "valid_mod_locations": [
+ [ "accessories", 2 ],
+ [ "barrel", 1 ],
+ [ "grip", 1 ],
+ [ "mechanism", 4 ],
+ [ "muzzle", 1 ],
+ [ "sights", 1 ],
+ [ "sling", 1 ]
+ ],
+ "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ]
+ }
+]
diff --git a/data/json/items/gun/46.json b/data/json/items/gun/46.json
index f98a5542a74bb..8cd5144be7741 100644
--- a/data/json/items/gun/46.json
+++ b/data/json/items/gun/46.json
@@ -33,6 +33,6 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "46", [ "hk46mag", "hk46bigmag" ] ], [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ] ]
+ "magazines": [ [ "46", [ "hk46mag", "hk46bigmag" ] ] ]
}
]
diff --git a/data/json/items/gun/545x39.json b/data/json/items/gun/545x39.json
index a4ed8e11a4836..a4b1fc86c9ba9 100644
--- a/data/json/items/gun/545x39.json
+++ b/data/json/items/gun/545x39.json
@@ -34,7 +34,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "545x39", [ "ak74mag", "rpk74mag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ],
+ "magazines": [ [ "545x39", [ "ak74mag", "rpk74mag" ] ] ],
"flags": [ "NEVER_JAMS" ]
},
{
@@ -71,6 +71,6 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [ [ "545x39", [ "ak74mag", "rpk74mag" ] ], [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ]
+ "magazines": [ [ "545x39", [ "ak74mag", "rpk74mag" ] ] ]
}
]
diff --git a/data/json/items/gun/57.json b/data/json/items/gun/57.json
index e23789c12b7ce..2669cf7b1a08d 100644
--- a/data/json/items/gun/57.json
+++ b/data/json/items/gun/57.json
@@ -31,7 +31,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "57", [ "fn57mag" ] ], [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ] ]
+ "magazines": [ [ "57", [ "fn57mag" ] ] ]
},
{
"id": "fn_p90",
@@ -66,6 +66,6 @@
[ "underbarrel", 1 ]
],
"magazine_well": 2,
- "magazines": [ [ "57", [ "fnp90mag" ] ], [ "22", [ "a180mag" ] ] ]
+ "magazines": [ [ "57", [ "fnp90mag" ] ] ]
}
]
diff --git a/data/json/items/gun/762.json b/data/json/items/gun/762.json
index f7f4514324e90..60a3baffbaf98 100644
--- a/data/json/items/gun/762.json
+++ b/data/json/items/gun/762.json
@@ -33,11 +33,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [
- [ "762", [ "akmmag", "akmbigmag" ] ],
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ],
+ "magazines": [ [ "762", [ "akmmag", "akmbigmag" ] ] ],
"flags": [ "NEVER_JAMS" ]
},
{
@@ -77,11 +73,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [
- [ "762", [ "akmmag", "akmbigmag" ] ],
- [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ],
- [ "308", [ "g3mag", "g3bigmag" ] ]
- ]
+ "magazines": [ [ "762", [ "akmmag", "akmbigmag" ] ] ]
},
{
"id": "sks",
diff --git a/data/json/items/gun/84x246mm.json b/data/json/items/gun/84x246mm.json
index 7ea521df072fb..e94c47f001439 100644
--- a/data/json/items/gun/84x246mm.json
+++ b/data/json/items/gun/84x246mm.json
@@ -21,6 +21,21 @@
"clip_size": 1,
"reload": 300,
"loudness": 200,
- "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ], [ "sling", 1 ] ]
+ "valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "sights", 1 ] ]
+ },
+ {
+ "id": "AT4",
+ "type": "GUN",
+ "copy-from": "LAW",
+ "name": "AT4",
+ "description": "Mil-Spec rocket launcher. An 84-mm unguided, portable, single-shot recoilless smoothbore weapon used primarily by the US military.",
+ "extend": { "flags": [ "FIRE_TWOHAND", "NO_REPAIR" ] },
+ "ammo": "84x246mm",
+ "weight": 6803,
+ "volume": 14,
+ "bashing": 4,
+ "dispersion": 200,
+ "durability": 7,
+ "loudness": 200
}
]
diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json
index cd91b5ad9fd6e..baffdd09212b7 100644
--- a/data/json/items/gun/9mm.json
+++ b/data/json/items/gun/9mm.json
@@ -18,13 +18,7 @@
"durability": 8,
"modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ], [ "AUTO", "auto", 5 ] ],
"armor_data": { "covers": [ "ARM_EITHER", "HAND_EITHER" ], "coverage": 10, "encumbrance": 30, "material_thickness": 1 },
- "magazines": [
- [ "9mm", [ "stenmag", "survivor9mm_mag" ] ],
- [ "22", [ "a180mag" ] ],
- [ "45", [ "thompson_mag", "thompson_bigmag", "thompson_drum" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fnp90mag" ] ]
- ],
+ "magazines": [ [ "9mm", [ "stenmag", "survivor9mm_mag" ] ] ],
"flags": [ "OVERSIZE", "BELTED", "FANCY", "RESTRICT_HANDS" ]
},
{
@@ -64,7 +58,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "9mm", [ "calicomag" ] ], [ "22", [ "a180mag" ] ], [ "45", [ "thompson_drum" ] ], [ "57", [ "fnp90mag" ] ] ]
+ "magazines": [ [ "9mm", [ "calicomag" ] ] ]
},
{
"id": "cx4",
@@ -102,13 +96,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "m9bigmag", "m9mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "m9bigmag", "m9mag" ] ] ]
},
{
"id": "glock_19",
@@ -129,13 +117,7 @@
"dispersion": 480,
"durability": 6,
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ] ]
},
{
"id": "hk_mp5",
@@ -171,13 +153,7 @@
[ "stock", 1 ],
[ "underbarrel", 1 ]
],
- "magazines": [
- [ "9mm", [ "mp5mag", "mp5bigmag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "ump45mag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "mp5mag", "mp5bigmag" ] ] ]
},
{
"id": "hk_mp5sd",
@@ -238,13 +214,7 @@
[ "sling", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ] ]
},
{
"id": "l_lookout_9mm",
@@ -312,13 +282,7 @@
"dispersion": 480,
"durability": 6,
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "m9mag", "m9bigmag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "m9mag", "m9bigmag" ] ] ]
},
{
"id": "rifle_9mm",
@@ -405,13 +369,7 @@
"durability": 5,
"modes": [ [ "DEFAULT", "auto", 10 ] ],
"valid_mod_locations": [ [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ] ],
- "magazines": [
- [ "9mm", [ "stenmag", "survivor9mm_mag" ] ],
- [ "22", [ "a180mag" ] ],
- [ "45", [ "mac10mag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fnp90mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "stenmag", "survivor9mm_mag" ] ] ]
},
{
"id": "tec9",
@@ -448,13 +406,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "tec9mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "mac10mag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "tec9mag" ] ] ]
},
{
"id": "usp_9mm",
@@ -476,13 +428,7 @@
"dispersion": 400,
"durability": 9,
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "usp9mag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "usp45mag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "usp9mag" ] ] ]
},
{
"id": "uzi",
@@ -520,13 +466,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "uzimag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "tdi_mag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "uzimag" ] ] ]
},
{
"id": "glock_17",
@@ -546,13 +486,7 @@
"dispersion": 480,
"durability": 6,
"magazine_well": 1,
- "magazines": [
- [ "9mm", [ "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd", "glockbigmag" ] ],
- [ "22", [ "ruger1022bigmag", "ruger1022mag" ] ],
- [ "45", [ "m1911mag", "m1911bigmag" ] ],
- [ "46", [ "hk46mag", "hk46bigmag" ] ],
- [ "57", [ "fn57mag" ] ]
- ]
+ "magazines": [ [ "9mm", [ "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd", "glockbigmag" ] ] ]
},
{
"id": "glock_18c",
@@ -575,6 +509,7 @@
"ranged_damage": -1,
"price": 18000,
"bashing": 2,
- "ammo": "9mm"
+ "ammo": "9mm",
+ "magazines": [ [ "9mm", [ "kpf9mag" ] ] ]
}
]
diff --git a/data/json/items/gun/9x18.json b/data/json/items/gun/9x18.json
index c0bbbc79d452d..e167fa8745bb4 100644
--- a/data/json/items/gun/9x18.json
+++ b/data/json/items/gun/9x18.json
@@ -30,7 +30,7 @@
[ "underbarrel", 1 ]
],
"magazine_well": 1,
- "magazines": [ [ "9x18", [ "makarovmag" ] ], [ "9mm", [ "m9mag" ] ] ]
+ "magazines": [ [ "9x18", [ "makarovmag" ] ] ]
},
{
"id": "skorpion_82",
@@ -42,6 +42,6 @@
"weight": 1251,
"ammo": "9x18",
"burst": 15,
- "magazines": [ [ "9x18", [ "skorpion82mag" ] ], [ "9mm", [ "m9bigmag" ] ] ]
+ "magazines": [ [ "9x18", [ "skorpion82mag" ] ] ]
}
]
diff --git a/data/json/items/gunmod/grip.json b/data/json/items/gunmod/grip.json
index 5b3ed9952c318..69703b435a96a 100644
--- a/data/json/items/gunmod/grip.json
+++ b/data/json/items/gunmod/grip.json
@@ -25,6 +25,7 @@
"weight": 125,
"volume": 1,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 38000,
"material": [ "steel" ],
"symbol": ":",
diff --git a/data/json/items/gunmod/magazine.json b/data/json/items/gunmod/magazine.json
index 11259c2cbcaec..2110ee445d050 100644
--- a/data/json/items/gunmod/magazine.json
+++ b/data/json/items/gunmod/magazine.json
@@ -14,7 +14,7 @@
"location": "magazine",
"mod_targets": [ "pistol", "rifle" ],
"acceptable_ammo": [ "9mm", "460", "223" ],
- "install_time": 60000,
+ "install_time": "60 m",
"magazine_adaptor": [ [ "9mm", [ "lw21mag" ] ], [ "460", [ "lw12mag" ] ], [ "223", [ "lw223mag", "lw223bigmag" ] ] ],
"min_skills": [ [ "weapon", 4 ], [ "mechanics", 3 ] ],
"flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ]
diff --git a/data/json/items/gunmod/mechanism.json b/data/json/items/gunmod/mechanism.json
index 5af624bf60963..caddedada9b82 100644
--- a/data/json/items/gunmod/mechanism.json
+++ b/data/json/items/gunmod/mechanism.json
@@ -7,13 +7,14 @@
"weight": 120,
"volume": 1,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 1500,
"material": [ "steel", "superalloy" ],
"symbol": ":",
"color": "dark_gray",
"location": "mechanism",
"mod_targets": [ "smg", "rifle", "pistol", "shotgun", "launcher" ],
- "install_time": 30000,
+ "install_time": "30 m",
"dispersion_modifier": -1,
"min_skills": [ [ "weapon", 4 ], [ "mechanics", 3 ], [ "gun", 2 ] ]
},
@@ -25,6 +26,7 @@
"weight": 113,
"volume": 1,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 65000,
"material": [ "steel" ],
"symbol": ":",
@@ -32,7 +34,7 @@
"location": "mechanism",
"mod_targets": [ "ar15" ],
"//": "Install time short since it drops in, hinging open the AR being all the 'skill' necessary. Precision drop marginal since it'd change how semi and FA trigger pulls feel.",
- "install_time": 5000,
+ "install_time": "5 m",
"dispersion_modifier": 10,
"durability_modifier": -1,
"mode_modifier": [ [ "AUTO", "auto", 13 ] ],
@@ -53,7 +55,7 @@
"location": "mechanism",
"mod_targets": [ "ar15" ],
"//": "Sort of long install time. Gotta grind down the carrier trip to SP1-ish length. Unfortunately, since you're sort of guessing how long that is, the AR's timing with this installed will be borked.(disco might be disengaged at non-ideal times).",
- "install_time": 25000,
+ "install_time": "25 m",
"dispersion_modifier": 40,
"consume_chance": 300,
"consume_divisor": 110,
@@ -76,7 +78,7 @@
"color": "dark_gray",
"location": "mechanism",
"mod_targets": [ "smg", "rifle", "pistol", "shotgun", "launcher" ],
- "install_time": 10000,
+ "install_time": "10 m",
"min_skills": [ [ "weapon", 2 ] ],
"flags": [ "WATERPROOF_GUN" ]
}
diff --git a/data/json/items/gunmod/muzzle.json b/data/json/items/gunmod/muzzle.json
index 3e6a263160283..7034c04495d27 100644
--- a/data/json/items/gunmod/muzzle.json
+++ b/data/json/items/gunmod/muzzle.json
@@ -5,6 +5,7 @@
"name": "ported barrel",
"description": "A ported barrel redirects exhaust gases to compensate for muzzle climb, improves recoil but increases noise and reduces accuracy slightly.",
"weight": 225,
+ "integral_weight": 0,
"volume": 0,
"price": 72000,
"material": [ "steel" ],
@@ -153,7 +154,7 @@
"color": "dark_gray",
"location": "muzzle",
"mod_targets": [ "pistol", "smg", "rifle" ],
- "install_time": 200,
+ "install_time": "0 m",
"handling_modifier": 2,
"consume_divisor": 840,
"loudness_modifier": -50
@@ -167,6 +168,8 @@
"damage_modifier": -7,
"weight": 250,
"integral_volume": 0,
+ "//": "weight is accounted for in gun item",
+ "integral_weight": 0,
"loudness_modifier": -100,
"range_modifier": -1,
"dispersion_modifier": 0,
@@ -186,7 +189,7 @@
"color": "dark_gray",
"location": "muzzle",
"mod_targets": [ "pistol", "smg" ],
- "install_time": 200,
+ "install_time": "0 m",
"consume_chance": 7000,
"consume_divisor": 85,
"handling_modifier": 1,
diff --git a/data/json/items/gunmod/sights.json b/data/json/items/gunmod/sights.json
index 62fa9386a19be..323f988e11461 100644
--- a/data/json/items/gunmod/sights.json
+++ b/data/json/items/gunmod/sights.json
@@ -79,6 +79,7 @@
"weight": 60,
"volume": 1,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 72000,
"material": [ "steel" ],
"symbol": ":",
@@ -140,7 +141,7 @@
"color": "dark_gray",
"location": "sights",
"mod_targets": [ "rifle", "crossbow", "launcher" ],
- "install_time": 30000,
+ "install_time": "30 m",
"sight_dispersion": 0,
"aim_speed": 0,
"min_skills": [ [ "weapon", 2 ], [ "gun", 4 ] ],
@@ -159,7 +160,7 @@
"color": "dark_gray",
"location": "sights",
"mod_targets": [ "rifle", "crossbow", "launcher" ],
- "install_time": 30000,
+ "install_time": "30 m",
"sight_dispersion": 8,
"aim_speed": 2,
"min_skills": [ [ "weapon", 2 ], [ "gun", 4 ] ],
@@ -191,7 +192,7 @@
"color": "dark_gray",
"location": "sights",
"mod_targets": [ "smg", "rifle", "shotgun", "crossbow", "pistol", "launcher" ],
- "install_time": 30000,
+ "install_time": "30 m",
"consume_chance": 1000,
"consume_divisor": 505,
"sight_dispersion": 15,
diff --git a/data/json/items/gunmod/stock.json b/data/json/items/gunmod/stock.json
index 102e3e8fd79bc..380a53a25290b 100644
--- a/data/json/items/gunmod/stock.json
+++ b/data/json/items/gunmod/stock.json
@@ -7,6 +7,7 @@
"weight": 350,
"volume": 2,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 38000,
"to_hit": 1,
"bashing": 6,
@@ -26,6 +27,7 @@
"weight": 200,
"volume": 2,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 42000,
"material": [ "plastic", "steel" ],
"symbol": ":",
@@ -43,6 +45,7 @@
"weight": 170,
"volume": 1,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 30000,
"material": [ "steel" ],
"symbol": ":",
@@ -77,6 +80,7 @@
"weight": 960,
"volume": 2,
"integral_volume": 0,
+ "integral_weight": 0,
"price": 400,
"to_hit": 1,
"bashing": 6,
diff --git a/data/json/items/magazine/308.json b/data/json/items/magazine/308.json
index 3e4794bbf0e43..fad537fa818f1 100644
--- a/data/json/items/magazine/308.json
+++ b/data/json/items/magazine/308.json
@@ -148,5 +148,56 @@
"capacity": 20,
"reliability": 9,
"flags": [ "MAG_COMPACT" ]
+ },
+ {
+ "id": "hk417mag_20rd",
+ "type": "MAGAZINE",
+ "name": "HK417 magazine",
+ "description": "A 20 round double stack box magazine for the HK417 rifle.",
+ "weight": 160,
+ "volume": 2,
+ "price": 5600,
+ "material": "steel",
+ "symbol": "#",
+ "color": "light_gray",
+ "looks_like": "ak74mag",
+ "ammo_type": "308",
+ "capacity": 20,
+ "reliability": 9,
+ "flags": [ "MAG_COMPACT" ]
+ },
+ {
+ "id": "hk417mag_10rd",
+ "type": "MAGAZINE",
+ "name": "HK417 compact magazine",
+ "description": "A 10 round double stack box magazine for the HK417 rifle.",
+ "weight": 110,
+ "volume": 1,
+ "price": 5000,
+ "material": "steel",
+ "symbol": "#",
+ "color": "light_gray",
+ "looks_like": "ak74mag",
+ "ammo_type": "308",
+ "capacity": 10,
+ "reliability": 9,
+ "flags": [ "MAG_COMPACT" ]
+ },
+ {
+ "id": "ar10mag_20rd",
+ "type": "MAGAZINE",
+ "name": "AR-10 magazine",
+ "description": "A 20 round double stack box magazine for the AR-10 rifle.",
+ "weight": 300,
+ "volume": 2,
+ "price": 3000,
+ "material": "steel",
+ "symbol": "#",
+ "color": "light_gray",
+ "looks_like": "ak74mag",
+ "ammo_type": "308",
+ "capacity": 20,
+ "reliability": 9,
+ "flags": [ "MAG_COMPACT" ]
}
]
diff --git a/data/json/items/melee.json b/data/json/items/melee.json
index 3aa046ae8d592..a26fed7688dc2 100644
--- a/data/json/items/melee.json
+++ b/data/json/items/melee.json
@@ -33,39 +33,6 @@
"qualities": [ [ "CUT", 1 ], [ "BUTCHER", -22 ] ],
"flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "REACH_ATTACK" ]
},
- {
- "type": "GENERIC",
- "id": "stick",
- "symbol": "/",
- "color": "brown",
- "name": "heavy stick",
- "description": "A sturdy, heavy stick. Makes a decent melee weapon.",
- "material": "wood",
- "techniques": [ "WBLOCK_1" ],
- "flags": [ "TRADER_AVOID", "FIREWOOD" ],
- "weight": 1700,
- "volume": 5,
- "bashing": 14,
- "to_hit": -2,
- "category": "spare_parts"
- },
- {
- "type": "GENERIC",
- "id": "stick_long",
- "symbol": "/",
- "color": "brown",
- "name": "long stick",
- "description": "A long stick. Makes a decent melee weapon, and can be broken into heavy sticks for crafting.",
- "material": "wood",
- "techniques": [ "WBLOCK_1" ],
- "flags": [ "TRADER_AVOID", "FIREWOOD" ],
- "weight": 3400,
- "volume": 10,
- "bashing": 18,
- "to_hit": -1,
- "use_action": "BREAK_STICK",
- "category": "spare_parts"
- },
{
"id": "throwing_stick",
"type": "AMMO",
@@ -254,6 +221,7 @@
"color": "light_gray",
"name": "rock",
"description": "A rock the size of a baseball. Makes a decent melee weapon, and is also good for throwing at enemies.",
+ "category": "spare_parts",
"material": "stone",
"flags": "TRADER_AVOID",
"weight": 657,
@@ -572,24 +540,6 @@
"flags": [ "STAB", "NONCONDUCTIVE" ],
"price": 8000
},
- {
- "type": "GENERIC",
- "id": "2x4",
- "name": "two by four",
- "description": "A plank of wood. Makes a decent melee weapon, and can be used to board up doors and windows if you have a hammer and nails.",
- "category": "spare_parts",
- "weight": 1391,
- "to_hit": 1,
- "color": "brown",
- "symbol": "/",
- "material": [ "wood" ],
- "techniques": [ "WBLOCK_1" ],
- "volume": 6,
- "bashing": 10,
- "price": 1000,
- "price_postapoc": 0,
- "flags": [ "FIREWOOD" ]
- },
{
"type": "GENERIC",
"id": "pipe",
diff --git a/data/json/items/melee/spear.json b/data/json/items/melee/spear.json
new file mode 100644
index 0000000000000..628b108a08253
--- /dev/null
+++ b/data/json/items/melee/spear.json
@@ -0,0 +1,20 @@
+[
+ {
+ "id": "spear_stone",
+ "type": "GENERIC",
+ "name": "stone spear",
+ "description": "A stout wooden pole with a sharp stone spearhead.",
+ "weight": 1098,
+ "volume": 5,
+ "price": 1300,
+ "to_hit": 1,
+ "bashing": 5,
+ "cutting": 14,
+ "material": [ "wood", "stone" ],
+ "symbol": "/",
+ "color": "light_gray",
+ "techniques": [ "WBLOCK_1" ],
+ "qualities": [ [ "COOK", 1 ] ],
+ "flags": [ "SPEAR", "REACH_ATTACK", "SHEATH_SPEAR" ]
+ }
+]
diff --git a/data/json/items/migration.json b/data/json/items/migration.json
index b6b3e2fc8e403..0e952f408c11a 100644
--- a/data/json/items/migration.json
+++ b/data/json/items/migration.json
@@ -561,5 +561,15 @@
"id": "hk_ucp",
"type": "MIGRATION",
"replace": "hk_mp7"
+ },
+ {
+ "id": "rechargable_battery",
+ "type": "MIGRATION",
+ "replace": "heavy_battery_cell"
+ },
+ {
+ "id": "hd_battery",
+ "type": "MIGRATION",
+ "replace": "heavy_plus_battery_cell"
}
]
diff --git a/data/json/items/obsolete.json b/data/json/items/obsolete.json
index 1d69f183df027..c4fab06d9f90e 100644
--- a/data/json/items/obsolete.json
+++ b/data/json/items/obsolete.json
@@ -347,5 +347,14 @@
"description": "When this bionic is active, you can burn nearly any organic material as fuel (use 'E'), recharging your power level. Some materials will burn better than others.",
"price": 450000,
"difficulty": 4
+ },
+ {
+ "id": "bio_storage",
+ "copy-from": "bionic_general_npc_usable",
+ "type": "BIONIC_ITEM",
+ "name": "Internal Storage CBM",
+ "description": "Space inside your chest cavity has been converted into a storage area. You may carry an extra 2 liters of volume.",
+ "price": 400000,
+ "difficulty": 7
}
]
diff --git a/data/json/items/resources/misc.json b/data/json/items/resources/misc.json
index 30d20f751c273..8a28c0436a9a9 100644
--- a/data/json/items/resources/misc.json
+++ b/data/json/items/resources/misc.json
@@ -16,5 +16,20 @@
"count": 100,
"ammo_type": "components",
"effects": [ "COOKOFF" ]
+ },
+ {
+ "id": "mattress",
+ "type": "GENERIC",
+ "category": "spare_parts",
+ "name": "mattress",
+ "name_plural": "mattresses",
+ "description": "This is a single, or twin, sized mattress.",
+ "weight": 20000,
+ "volume": "300000 ml",
+ "price": 1000,
+ "material": "cotton",
+ "symbol": "0",
+ "color": "white",
+ "use_action": { "type": "deploy_furn", "furn_type": "f_floor_mattress" }
}
]
diff --git a/data/json/items/resources/plastic.json b/data/json/items/resources/plastic.json
new file mode 100644
index 0000000000000..851dae1f20acf
--- /dev/null
+++ b/data/json/items/resources/plastic.json
@@ -0,0 +1,30 @@
+[
+ {
+ "id": "plastic_chunk",
+ "type": "TOOL",
+ "category": "spare_parts",
+ "name": "plastic chunk",
+ "description": "This is a piece of plastic. It could be used to fabricate, repair, or reinforce plastic items.",
+ "weight": 70,
+ "volume": 1,
+ "price": 0,
+ "material": "plastic",
+ "symbol": ",",
+ "color": "light_blue",
+ "flags": [ "NO_SALVAGE" ]
+ },
+ {
+ "id": "plastic_sheet",
+ "type": "GENERIC",
+ "category": "spare_parts",
+ "name": "plastic sheet",
+ "description": "This is a large sheet of heavy flexible plastic, the sort that might have been used for commercial wrapping or for weather-sealing a home.",
+ "weight": 1000,
+ "volume": 8,
+ "price": 0,
+ "material": "plastic",
+ "symbol": ")",
+ "color": "light_blue",
+ "use_action": { "type": "deploy_furn", "furn_type": "f_plastic_groundsheet" }
+ }
+]
diff --git a/data/json/items/resources/wood.json b/data/json/items/resources/wood.json
new file mode 100644
index 0000000000000..1f9002ac7848c
--- /dev/null
+++ b/data/json/items/resources/wood.json
@@ -0,0 +1,91 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "stick",
+ "symbol": "/",
+ "color": "brown",
+ "name": "heavy stick",
+ "description": "A sturdy, heavy stick. Makes a decent melee weapon.",
+ "material": "wood",
+ "techniques": [ "WBLOCK_1" ],
+ "flags": [ "TRADER_AVOID", "FIREWOOD" ],
+ "weight": 1700,
+ "volume": 5,
+ "bashing": 14,
+ "to_hit": -2,
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "stick_long",
+ "symbol": "/",
+ "color": "brown",
+ "name": "long stick",
+ "description": "A long stick. Makes a decent melee weapon, and can be broken into heavy sticks for crafting.",
+ "material": "wood",
+ "techniques": [ "WBLOCK_1" ],
+ "flags": [ "TRADER_AVOID", "FIREWOOD" ],
+ "weight": 3400,
+ "volume": 10,
+ "bashing": 18,
+ "to_hit": -1,
+ "use_action": "BREAK_STICK",
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "2x4",
+ "name": "two by four",
+ "description": "A plank of wood. Makes a decent melee weapon, and can be used to board up doors and windows if you have a hammer and nails.",
+ "category": "spare_parts",
+ "weight": 1391,
+ "to_hit": 1,
+ "color": "brown",
+ "symbol": "/",
+ "material": [ "wood" ],
+ "techniques": [ "WBLOCK_1" ],
+ "volume": 6,
+ "bashing": 10,
+ "price": 1000,
+ "price_postapoc": 0,
+ "flags": [ "FIREWOOD" ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "wood_panel",
+ "name": "wooden panel",
+ "description": "A wide, thin wooden board - plywood, OSB, MDF, tongue-in-groove boards, or similar, already cut to shape. These large flat boards are good for all kinds of construction, but for really big projects you'd need a proper sheet of uncut plywood or the like.",
+ "//": "Weight and volume assumes 18 square feet of 1/2 inch plywood. The actual size of the panel likely varies wildly and the item entry may represent several smaller pieces.",
+ "category": "spare_parts",
+ "weight": 15000,
+ "to_hit": 1,
+ "color": "brown",
+ "symbol": "H",
+ "material": [ "wood" ],
+ "techniques": [ "WBLOCK_1" ],
+ "volume": 12,
+ "bashing": 8,
+ "price": 2000,
+ "price_postapoc": 0,
+ "flags": [ "FIREWOOD" ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "wood_sheet",
+ "name": "large wooden sheet",
+ "description": "A standard 4x8 sheet of flat wood - usually plywood, OSB, or MDF. Heavy and bulky, this is extremely useful for all manner of construction, but you might have to cut it to size before doing smaller projects.",
+ "//": "Weight and volume assumes 32 square feet of 1/2 inch plywood. Due to its enormously bulky shape, volume is higher than actual displacement volume",
+ "category": "spare_parts",
+ "weight": 20000,
+ "to_hit": 1,
+ "color": "brown",
+ "symbol": "H",
+ "material": [ "wood" ],
+ "techniques": [ "WBLOCK_1" ],
+ "volume": 25,
+ "bashing": 8,
+ "price": 2000,
+ "price_postapoc": 0,
+ "flags": [ "FIREWOOD" ]
+ }
+]
diff --git a/data/json/items/robot_parts.json b/data/json/items/robot_parts.json
new file mode 100644
index 0000000000000..fde4c5a7129fd
--- /dev/null
+++ b/data/json/items/robot_parts.json
@@ -0,0 +1,281 @@
+[
+ {
+ "type": "GENERIC",
+ "abstract": "robot_module_abstract",
+ "name": "module template",
+ "description": "This is a template for robot module. If found in a game it is a bug.",
+ "symbol": "%",
+ "color": "cyan",
+ "material": [ "plastic", "steel" ],
+ "weight": 250,
+ "volume": 2,
+ "price": 32000,
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "targeting_module",
+ "name": "targeting module",
+ "description": "This module integrate visual and proprioceptive information from peripheric sensors and outputs information necessary for accurate aiming.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "identification_module",
+ "name": "identification module",
+ "description": "This module continuously runs image recognition algorithms to identify friends from foe.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "pathfinding_module",
+ "name": "pathfinding module",
+ "description": "This module uses a combination of vector integration and egocentric mapping to find the best path available.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "memory_module",
+ "name": "memory banks module",
+ "description": "Allows for storage and recovery of information.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "sensor_module",
+ "name": "sensor array",
+ "description": "A wide range of sensors meant to give the ability to perceive the surrounding world.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "self_monitoring_module",
+ "name": "self monitoring sensors",
+ "description": "A array of sensors and diagnostic modules allowing the robot to perceive itself.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "ai_module",
+ "name": "AI core",
+ "description": "This module is responsible for decision making, it basically runs the AI of the robot.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "ai_module_basic",
+ "name": "basic AI core",
+ "description": "A very basic AI core with minimal cognitive abilities.",
+ "weight": 125,
+ "copy-from": "ai_module"
+ },
+ {
+ "type": "GENERIC",
+ "id": "ai_module_advanced",
+ "name": "advanced AI core",
+ "description": "An advanced AI core with impressive cognitive abilities.",
+ "copy-from": "ai_module"
+ },
+ {
+ "type": "GENERIC",
+ "id": "gun_module",
+ "name": "gun operating system",
+ "description": "This system can operate most conventional weapons.",
+ "copy-from": "robot_module_abstract"
+ },
+ {
+ "type": "GENERIC",
+ "id": "spidery_legs_big",
+ "name": "set of spidery legs",
+ "name_plural": "sets of spidery legs",
+ "description": "A set of big pointy legs, like the ones found under a tripod.",
+ "symbol": "W",
+ "color": "light_gray",
+ "weight": 40000,
+ "volume": 80,
+ "price": 200000,
+ "material": "steel",
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "spidery_legs_small",
+ "name": "set of tiny spidery legs",
+ "name_plural": "sets of tiny spidery legs",
+ "description": "A set of tiny pointy legs, like the ones found under a skitterbot.",
+ "symbol": "w",
+ "color": "light_gray",
+ "weight": 200,
+ "volume": 2,
+ "price": 50000,
+ "material": "steel",
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "reverse_jointed_legs",
+ "name": "set of reverse-jointed legs",
+ "name_plural": "sets of reverse-jointed legs",
+ "description": "A set of reverse-jointed legs, like the ones found under a chicken walker.",
+ "symbol": "k",
+ "color": "light_gray",
+ "weight": 60000,
+ "volume": 80,
+ "price": 500000,
+ "material": "steel",
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "omni_wheel",
+ "name": "set of omni wheels",
+ "name_plural": "sets of omni wheels",
+ "description": "A set of omni wheels, like the ones found under a police bot.",
+ "symbol": "o",
+ "color": "light_gray",
+ "weight": 10000,
+ "volume": 40,
+ "price": 100000,
+ "material": "steel",
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "quad_rotors",
+ "name": "set of rotors",
+ "name_plural": "sets of rotors",
+ "description": "A set of rotors able to lift a small drone.",
+ "symbol": "#",
+ "color": "light_gray",
+ "weight": 130,
+ "volume": 2,
+ "price": 40000,
+ "material": [ "steel", "plastic" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "android_legs",
+ "name": "set of android legs",
+ "name_plural": "sets of android legs",
+ "description": "A set of human-like legs.",
+ "symbol": "M",
+ "color": "light_gray",
+ "weight": 10000,
+ "volume": 40,
+ "price": 100000,
+ "material": [ "steel", "plastic" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "android_arms",
+ "name": "set of android arms",
+ "name_plural": "sets of android arms",
+ "description": "A set of human-like arms.",
+ "symbol": "m",
+ "color": "light_gray",
+ "weight": 5000,
+ "volume": 20,
+ "price": 100000,
+ "material": [ "steel", "plastic" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "tank_tread",
+ "name": "set of small tank tread",
+ "name_plural": "sets of small tank tread",
+ "description": "A set of small tank tread, like the one used by the \"Beagle\" mini-tank.",
+ "symbol": "=",
+ "color": "light_gray",
+ "weight": 60000,
+ "volume": 120,
+ "price": 600000,
+ "material": [ "steel", "plastic" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "turret_chassis",
+ "name": "turret chassis",
+ "name_plural": "turret chassis",
+ "description": "What's left when you remove all moving parts and electronics. It's the skeleton and armor of a turret.",
+ "symbol": "c",
+ "color": "light_gray",
+ "weight": 10000,
+ "volume": 40,
+ "price": 100000,
+ "material": [ "steel", "plastic" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "tripod_chassis",
+ "name": "tripod chassis",
+ "name_plural": "tripod chassis",
+ "description": "What's left when you remove all moving parts and electronics. It's the skeleton and armor of the tripod.",
+ "symbol": "c",
+ "color": "light_gray",
+ "weight": 40000,
+ "volume": "70000 ml",
+ "price": 200000,
+ "material": [ "steel" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "chickenbot_chassis",
+ "name": "chicken walker chassis",
+ "name_plural": "chicken walker chassis",
+ "description": "What's left when you remove all moving parts and electronics. It's the skeleton and armor of the chicken walker.",
+ "symbol": "c",
+ "color": "light_gray",
+ "weight": 60000,
+ "volume": "80000 ml",
+ "price": 300000,
+ "material": [ "steel" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "copbot_chassis",
+ "name": "police bot chassis",
+ "name_plural": "police bot chassis",
+ "description": "What's left when you remove all moving parts and electronics. It's the skeleton and armor of the police bot.",
+ "symbol": "c",
+ "color": "light_gray",
+ "weight": 20000,
+ "volume": "40000 ml",
+ "price": 100000,
+ "material": [ "steel" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "android_chassis",
+ "name": "android skeleton",
+ "description": "What's left when you strip an android body from its components.",
+ "symbol": "c",
+ "color": "light_gray",
+ "weight": 20000,
+ "volume": "40000 ml",
+ "price": 100000,
+ "material": [ "steel", "plastic" ],
+ "category": "spare_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "tankbot_chassis",
+ "name": "Beagle chassis",
+ "name_plural": "Beagle chassis",
+ "description": "What's left when you remove all moving parts and electronics. It's the skeleton and armor of the Beagle tank.",
+ "symbol": "c",
+ "color": "light_gray",
+ "weight": 150000,
+ "volume": "575000 ml",
+ "price": 1000000,
+ "material": [ "steel" ],
+ "category": "spare_parts"
+ }
+]
diff --git a/data/json/items/software.json b/data/json/items/software.json
index 7c13a145da175..e6c99b46c3322 100644
--- a/data/json/items/software.json
+++ b/data/json/items/software.json
@@ -70,5 +70,15 @@
"name_plural": "train data",
"description": "Logistical data on subterranean train routes and schedules.",
"price": 200
+ },
+ {
+ "id": "mind_scan_robofac",
+ "type": "GENERIC",
+ "name": "neural data",
+ "name_plural": "neural data",
+ "symbol": "#",
+ "container": "data_card",
+ "description": "Data stolen from a dead scientist memory banks. Is the owner of these thoughts still hidden here, amidst the unreadable data; or are these just a collection of the precious moments of someone's life?\n\nWhatever the case, the idea of perpetually keeping a part of you within a metallic pill makes you feel uncomfortable.",
+ "flags": [ "NO_DROP" ]
}
]
diff --git a/data/json/items/tool/container.json b/data/json/items/tool/container.json
new file mode 100644
index 0000000000000..8ce9314d35897
--- /dev/null
+++ b/data/json/items/tool/container.json
@@ -0,0 +1,39 @@
+[
+ {
+ "id": "bottle_metal",
+ "type": "CONTAINER",
+ "category": "other",
+ "name": "steel bottle",
+ "description": "A stainless steel water bottle, holds 750ml of liquid.",
+ "weight": 200,
+ "volume": 3,
+ "price": 0,
+ "to_hit": 1,
+ "bashing": 4,
+ "material": "steel",
+ "symbol": ")",
+ "color": "light_cyan",
+ "contains": 3,
+ "seals": true,
+ "watertight": true,
+ "qualities": [ [ "CONTAIN", 1 ], [ "BOIL", 2 ] ]
+ },
+ {
+ "id": "bottle_folding",
+ "type": "CONTAINER",
+ "category": "other",
+ "name": "foldable plastic bottle",
+ "description": "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid.",
+ "weight": 13,
+ "volume": 0,
+ "price": 0,
+ "to_hit": 1,
+ "rigid": false,
+ "material": "plastic",
+ "symbol": ")",
+ "color": "light_cyan",
+ "contains": 2,
+ "seals": true,
+ "watertight": true
+ }
+]
diff --git a/data/json/items/tool/cooking.json b/data/json/items/tool/cooking.json
new file mode 100644
index 0000000000000..b61373f44322a
--- /dev/null
+++ b/data/json/items/tool/cooking.json
@@ -0,0 +1,39 @@
+[
+ {
+ "id": "esbit_stove",
+ "type": "TOOL",
+ "name": "hexamine stove",
+ "description": "Known as an Esbit stove, this is a lightweight, folding stove designed to use small hexamine tablets for cooking.",
+ "weight": 180,
+ "volume": 3,
+ "price": 2000,
+ "to_hit": -1,
+ "bashing": 2,
+ "material": "aluminum",
+ "symbol": ";",
+ "color": "light_gray",
+ "ammo": "esbit",
+ "sub": "hotplate",
+ "initial_charges": 50,
+ "max_charges": 50,
+ "charges_per_use": 1,
+ "use_action": [ "HOTPLATE", "HEAT_FOOD" ]
+ },
+ {
+ "id": "mess_tin",
+ "type": "GENERIC",
+ "category": "tools",
+ "name": "mess tin",
+ "description": "A compact military-style pan and tray, designed for heating food over a fire or portable stove. It is shallower than a proper pot or pan, and lacks the integrated heating elements modern mess kits have.",
+ "weight": 450,
+ "volume": 3,
+ "price": 2000,
+ "to_hit": 2,
+ "bashing": 10,
+ "material": "steel",
+ "symbol": ")",
+ "color": "light_gray",
+ "qualities": [ [ "COOK", 2 ], [ "BOIL", 1 ], [ "CONTAIN", 1 ] ],
+ "use_action": "HEAT_FOOD"
+ }
+]
diff --git a/data/json/items/tool/deployable.json b/data/json/items/tool/deployable.json
index 68f4edbe92ca3..68f7d85db3c97 100644
--- a/data/json/items/tool/deployable.json
+++ b/data/json/items/tool/deployable.json
@@ -15,6 +15,40 @@
"use_action": { "type": "deploy_furn", "furn_type": "f_brazier" },
"qualities": [ [ "COOK", 1 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ]
},
+ {
+ "id": "55gal_firebarrel",
+ "type": "TOOL",
+ "name": "fire barrel (200L)",
+ "name_plural": "fire barrels (200L)",
+ "description": "A large metal barrel used to contain a fire. It has multiple holes punched in its walls for air supply. Fires set in a fire barrel will not spread to surrounding flammable objects.",
+ "weight": 20000,
+ "volume": 800,
+ "price": 10000,
+ "to_hit": -5,
+ "bashing": 8,
+ "looks_like": "55gal_drum",
+ "material": [ "steel" ],
+ "symbol": "0",
+ "color": "light_gray",
+ "use_action": { "type": "deploy_furn", "furn_type": "f_55gal_firebarrel" }
+ },
+ {
+ "id": "30gal_firebarrel",
+ "type": "TOOL",
+ "name": "fire barrel (100L)",
+ "name_plural": "fire barrels (100L)",
+ "description": "A large metal barrel used to contain a fire. It has multiple holes punched in its walls for air supply. Fires set in a fire barrel will not spread to surrounding flammable objects.",
+ "weight": 12000,
+ "volume": 400,
+ "price": 5000,
+ "to_hit": -4,
+ "bashing": 7,
+ "looks_like": "30gal_drum",
+ "material": [ "steel" ],
+ "symbol": "0",
+ "color": "light_gray",
+ "use_action": { "type": "deploy_furn", "furn_type": "f_30gal_firebarrel" }
+ },
{
"id": "camp_chair",
"type": "TOOL",
@@ -46,6 +80,27 @@
"color": "light_gray",
"use_action": { "type": "deploy_furn", "furn_type": "f_metal_butcher_rack" }
},
+ {
+ "id": "inflatable_boat",
+ "type": "TOOL",
+ "symbol": "0",
+ "color": "light_gray",
+ "name": "inflatable boat",
+ "description": "This rubber rowboat (oars included) is deflated for storage. Activate it (having an air pump in inventory) to inflate and launch.",
+ "price": 350000,
+ "material": "plastic",
+ "weight": 9071,
+ "volume": 86,
+ "bashing": 10,
+ "to_hit": -5,
+ "use_action": {
+ "type": "unfold_vehicle",
+ "vehicle_name": "inflatable_boat",
+ "tools_needed": { "hand_pump": 1 },
+ "unfold_msg": "You painstakingly unfold, inflate, and launch the %s.",
+ "moves": 15000
+ }
+ },
{
"id": "metal_smoking_rack",
"type": "TOOL",
diff --git a/data/json/items/tool/fire.json b/data/json/items/tool/fire.json
new file mode 100644
index 0000000000000..086dab7dc01ba
--- /dev/null
+++ b/data/json/items/tool/fire.json
@@ -0,0 +1,21 @@
+[
+ {
+ "id": "flint_steel",
+ "type": "TOOL",
+ "name": "flint and steel",
+ "name_plural": "sets of flint and steel",
+ "description": "This is a magnesium bar and a carbon steel striker. Use it to spark a flame.",
+ "weight": 400,
+ "volume": 1,
+ "price": 300,
+ "to_hit": -1,
+ "material": [ "stone", "steel" ],
+ "symbol": ",",
+ "color": "dark_gray",
+ "initial_charges": 2000,
+ "max_charges": 2000,
+ "charges_per_use": 1,
+ "use_action": { "type": "firestarter", "moves": 1000, "moves_slow": 5000 },
+ "flags": [ "FIRESTARTER", "REQUIRES_TINDER" ]
+ }
+]
diff --git a/data/json/items/tool/lighting.json b/data/json/items/tool/lighting.json
index 1abc00f699ff4..e7d0617e5fe15 100644
--- a/data/json/items/tool/lighting.json
+++ b/data/json/items/tool/lighting.json
@@ -24,7 +24,13 @@
"need_charges_msg": "The lantern has no batteries."
},
"flags": [ "RADIO_MODABLE", "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "electric_lantern_on",
@@ -67,10 +73,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "flashlight_on",
@@ -149,10 +158,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "heavy_flashlight_on",
diff --git a/data/json/items/tool/radio_tools.json b/data/json/items/tool/radio_tools.json
index a591bf5939f3c..415c7e93a677e 100644
--- a/data/json/items/tool/radio_tools.json
+++ b/data/json/items/tool/radio_tools.json
@@ -34,10 +34,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "radio_car",
@@ -51,7 +54,8 @@
"proportional": { "weight": 0.73, "volume": 0.75, "price": 0.8 },
"use_action": "RADIOCAR",
"flags": [ "RADIO_CONTAINER" ],
- "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ]
+ "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] ] ],
+ "magazine_well": 0
},
{
"id": "radio_car_on",
@@ -103,10 +107,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "radio_on",
@@ -118,7 +125,8 @@
"turns_per_charge": 8,
"revert_to": "radio",
"use_action": "RADIO_ON",
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID" ],
+ "magazine_well": 1
},
{
"id": "two_way_radio",
@@ -142,10 +150,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "remotevehcontrol",
@@ -171,9 +182,12 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
}
]
diff --git a/data/json/items/tool/science.json b/data/json/items/tool/science.json
index dcd2ac0ff1031..c2d2ef5af89fb 100644
--- a/data/json/items/tool/science.json
+++ b/data/json/items/tool/science.json
@@ -16,7 +16,13 @@
"charges_per_use": 1,
"qualities": [ [ "DISTILL", 1 ], [ "CHEM", 3 ], [ "BOIL", 1 ] ],
"use_action": "HOTPLATE",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "chemistry_set_basic",
@@ -48,7 +54,13 @@
"symbol": ";",
"color": "light_gray",
"qualities": [ [ "ANALYSIS", 1 ] ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "balance_small",
@@ -78,7 +90,8 @@
"material": [ "plastic", "steel" ],
"symbol": ";",
"color": "light_gray",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ],
+ "magazine_well": 2
},
{
"id": "cuvettes",
@@ -117,10 +130,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "voltmeter",
@@ -144,10 +160,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "melting_point",
@@ -172,10 +191,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "vortex",
@@ -364,10 +386,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "stopcock",
diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json
index 2b19bf1a25e1d..6cab07ae5e246 100644
--- a/data/json/items/tool_armor.json
+++ b/data/json/items/tool_armor.json
@@ -37,10 +37,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "miner_hat_on",
@@ -52,7 +55,10 @@
"flags": [ "LIGHT_450", "CHARGEDIM", "WATERPROOF", "TRADER_AVOID" ],
"turns_per_charge": 15,
"revert_to": "miner_hat",
- "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "miner_hat" }
+ "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "miner_hat" },
+ "covers": [ "HEAD" ],
+ "techniques": [ "WBLOCK_1" ],
+ "magazine_well": 1
},
{
"type": "TOOL_ARMOR",
@@ -73,7 +79,7 @@
"symbol": "[",
"ammo": "battery",
"use_action": "PORTABLE_GAME",
- "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ]
+ "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] ] ]
},
{
"id": "holo_cloak",
@@ -157,10 +163,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "thermal_socks_on",
@@ -172,8 +181,9 @@
"flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ],
"turns_per_charge": 50,
"revert_to": "thermal_socks",
+ "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_socks" },
"warmth": 60,
- "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_socks" }
+ "magazine_well": 1
},
{
"id": "thermal_suit",
@@ -210,10 +220,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "thermal_suit_on",
@@ -226,7 +239,8 @@
"turns_per_charge": 25,
"revert_to": "thermal_suit",
"warmth": 60,
- "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_suit" }
+ "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_suit" },
+ "magazine_well": 1
},
{
"id": "thermal_gloves",
@@ -264,10 +278,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "thermal_gloves_on",
@@ -279,8 +296,9 @@
"flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ],
"turns_per_charge": 50,
"revert_to": "thermal_gloves",
+ "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_gloves" },
"warmth": 60,
- "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_gloves" }
+ "magazine_well": 1
},
{
"id": "thermal_mask",
@@ -317,10 +335,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "thermal_mask_on",
@@ -332,8 +353,9 @@
"flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ],
"turns_per_charge": 50,
"revert_to": "thermal_mask",
+ "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_mask" },
"warmth": 60,
- "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_mask" }
+ "magazine_well": 1
},
{
"id": "binoculars",
@@ -392,10 +414,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "wearable_light_on",
@@ -407,7 +432,9 @@
"flags": [ "LIGHT_300", "CHARGEDIM", "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS", "TRADER_AVOID" ],
"turns_per_charge": 20,
"revert_to": "wearable_light",
- "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "wearable_light" }
+ "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "wearable_light" },
+ "covers": [ "HEAD" ],
+ "magazine_well": 1
},
{
"id": "survivor_light",
@@ -444,10 +471,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "survivor_light_on",
@@ -459,7 +489,9 @@
"flags": [ "LIGHT_350", "CHARGEDIM", "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS" ],
"turns_per_charge": 18,
"revert_to": "survivor_light",
- "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "survivor_light" }
+ "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "survivor_light" },
+ "covers": [ "HEAD" ],
+ "magazine_well": 1
},
{
"id": "rm13_armor",
@@ -969,10 +1001,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "goggles_nv_on",
@@ -986,7 +1021,8 @@
"revert_to": "goggles_nv",
"use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "goggles_nv" },
"warmth": 25,
- "encumbrance": 20
+ "encumbrance": 20,
+ "magazine_well": 1
},
{
"id": "goggles_ir",
@@ -1027,10 +1063,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "goggles_ir_on",
@@ -1045,7 +1084,8 @@
"use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "goggles_ir" },
"covers": [ "EYES" ],
"warmth": 25,
- "encumbrance": 20
+ "encumbrance": 20,
+ "magazine_well": 1
},
{
"id": "wearable_rx12",
@@ -1269,7 +1309,7 @@
"coverage": 5,
"material_thickness": 1,
"flags": [ "BELTED", "FRAGILE", "ALLOWS_NATURAL_ATTACKS", "WATER_FRIENDLY", "OVERSIZE" ],
- "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ]
+ "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] ] ]
},
{
"type": "ARMOR",
@@ -1286,6 +1326,7 @@
"volume": 16,
"flags": [ "VARSIZE", "WATER_FRIENDLY", "STURDY", "WAIST", "OVERSIZE" ],
"coverage": 15,
+ "encumbrance": 4,
"material_thickness": 2,
"use_action": [
{
@@ -1824,7 +1865,13 @@
"warmth": 10,
"coverage": 100,
"material_thickness": 1,
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "thermal_outfit_on",
@@ -1838,7 +1885,8 @@
"revert_to": "thermal_outfit",
"use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_outfit" },
"covers": [ "HEAD", "MOUTH", "TORSO", "ARMS", "LEGS", "HANDS", "FEET" ],
- "warmth": 60
+ "warmth": 60,
+ "magazine_well": 2
},
{
"type": "TOOL_ARMOR",
@@ -2138,10 +2186,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "powered_earmuffs_on",
@@ -2165,7 +2216,8 @@
"warmth": 5,
"encumbrance": 5,
"coverage": 10,
- "material_thickness": 2
+ "material_thickness": 2,
+ "magazine_well": 1
},
{
"id": "stethoscope",
@@ -2455,7 +2507,13 @@
"need_charges_msg": "The blanket's batteries are dead."
},
"flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS", "RECHARGE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "electric_blanket_on",
@@ -2466,6 +2524,7 @@
"copy-from": "electric_blanket",
"warmth": 90,
"turns_per_charge": 3,
- "use_action": { "type": "transform", "msg": "You turn the blanket's heating elements off.", "target": "electric_blanket" }
+ "use_action": { "type": "transform", "msg": "You turn the blanket's heating elements off.", "target": "electric_blanket" },
+ "magazine_well": 2
}
]
diff --git a/data/json/items/tools.json b/data/json/items/tools.json
index 891577786e1cf..dccf0ce61299a 100644
--- a/data/json/items/tools.json
+++ b/data/json/items/tools.json
@@ -74,6 +74,20 @@
"type": "transform"
}
},
+ {
+ "id": "hand_pump",
+ "type": "TOOL",
+ "symbol": "/",
+ "color": "blue",
+ "name": "hand pump",
+ "description": "This pump is suitable for pumping air into inflatable objects.",
+ "price": 400,
+ "material": [ "aluminum", "plastic" ],
+ "weight": 113,
+ "volume": 2,
+ "bashing": 4,
+ "to_hit": -1
+ },
{
"id": "UPS_off",
"type": "TOOL",
@@ -90,7 +104,10 @@
"color": "light_gray",
"ammo": "battery",
"flags": [ "RECHARGE" ],
- "magazines": [ [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ]
+ ],
+ "magazine_well": 4
},
{
"id": "acidbomb",
@@ -151,10 +168,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
+ "light_disposable_cell",
+ "light_minus_disposable_cell",
"light_minus_atomic_battery_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "airhorn",
@@ -251,17 +271,17 @@
"type": "GENERIC",
"category": "tools",
"name": "atomic coffee maker",
- "description": "Never sacrifice taste for convenience, when you can have both with the Rivtech atomic coffee maker! Its simple and robust atomic-age construction guarantees a service life of at least 160 million years.",
- "weight": 4102,
- "volume": 3,
+ "description": "This is a Curie-G coffeemaker, by CuppaTech. It famously uses a radioactive generator to heat water for coffee. Normally the water is heated using energy stored in a capacitor, and makes ordinary coffee. However, as a special feature, water from the RTG containment area can be used, giving the coffee a very special kick. The Curie-G is illegal in most countries.",
+ "weight": 6102,
+ "volume": "1000 ml",
"price": 100000,
"to_hit": -2,
"bashing": 5,
"material": [ "plastic", "aluminum" ],
+ "qualities": [ [ "BOIL", 1 ] ],
"symbol": ",",
"color": "light_green",
- "qualities": [ [ "BOIL", 1 ] ],
- "use_action": "HOTPLATE",
+ "//": "It would be nice if this could have a use action to thaw frozen stuff. It's not hot enough to work as a hotplate.",
"flags": [ "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE" ]
},
{
@@ -269,8 +289,8 @@
"type": "GENERIC",
"category": "tools",
"name": "atomic lamp",
- "description": "Enjoy the serene Cherenkov-blue glow of the Rivtech atomic desk lamp, and feel confident that you won't have to worry about depleting its power supply for at least 40 million years of faithful service. Use it to close the cover and hide the light.",
- "weight": 5438,
+ "description": "Powered by the magic of nuclear decay and low-energy LEDs, this very expensive lamp will emit a small amount of light for at least a decade. Before the Cataclysm, it was mostly an expensive way to show off your preparedness. Now, it's actually pretty cool. Use it to close the cover and hide the light.",
+ "weight": 1438,
"volume": 4,
"price": 175000,
"to_hit": -2,
@@ -287,8 +307,8 @@
"category": "tools",
"name": "atomic lamp (covered)",
"name_plural": "atomic lamps (covered)",
- "description": "Enjoy the serene Cherenkov-blue glow of the Rivtech atomic desk lamp, and feel confident that you won't have to worry about depleting its power supply for at least 40 million years of faithful service. The cover is closed. Use it to open the cover and show the light.",
- "weight": 5438,
+ "description": "Powered by the magic of nuclear decay and low-energy LEDs, this very expensive lamp will emit a small amount of light for at least a decade. Before the Cataclysm, it was mostly an expensive way to show off your preparedness. Now, it's actually pretty cool. The cover is closed. Use it to open the cover and show the light.",
+ "weight": 1438,
"volume": 4,
"price": 175000,
"to_hit": -2,
@@ -303,9 +323,9 @@
"id": "atomic_light",
"type": "GENERIC",
"category": "tools",
- "name": "atomic nightlight",
- "description": "Enjoy the serene Cherenkov-blue glow of the Rivtech atomic nightlight, and feel confident that you won't have to worry about depleting its power supply for at least 160 million years of faithful service. Use it to close the cover and hide the light.",
- "weight": 3714,
+ "name": "atomic reading light",
+ "description": "Powered by the magic of nuclear decay and low-energy LEDs, this extremely expensive little light will provide just enough light to read by for at least a decade. It is also available with a cute cartoon bear cover to turn it into a nightlight for a very wealthy child with a fear of the dark. Use it to close the cover and hide the light.",
+ "weight": 214,
"volume": 1,
"price": 125000,
"to_hit": -2,
@@ -325,10 +345,10 @@
"id": "atomic_light_off",
"type": "GENERIC",
"category": "tools",
- "name": "atomic nightlight (covered)",
- "name_plural": "atomic nightlights (covered)",
- "description": "Enjoy the serene Cherenkov-blue glow of the Rivtech atomic nightlight, and feel confident that you won't have to worry about depleting its power supply for at least 160 million years of faithful service. The cover is closed. Use it to open the cover and show the light.",
- "weight": 3714,
+ "name": "atomic reading light (covered)",
+ "name_plural": "atomic reading lights (covered)",
+ "description": "Powered by the magic of nuclear decay and low-energy LEDs, this extremely expensive little light will provide just enough light to read by for at least a decade. It is also available with a cute cartoon bear cover to turn it into a nightlight for a very wealthy child with a fear of the dark. The cover is closed. Use it to open the cover and show the light.",
+ "weight": 214,
"volume": 1,
"price": 125000,
"to_hit": -2,
@@ -339,6 +359,20 @@
"use_action": { "target": "atomic_light", "msg": "You open the nightlight's cover.", "menu_text": "Open cover", "type": "transform" },
"flags": [ "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE", "ALLOWS_REMOTE_USE" ]
},
+ {
+ "type": "GENERIC",
+ "id": "mind_splicer",
+ "symbol": "o",
+ "color": "white",
+ "name": "mind splicer kit",
+ "description": "Surgical forceps, cables and a modified smartphone inside a small plastic pouch. Assembled to steal the mind of some poor man, these are tools of the creepy high-tech sandman.",
+ "material": "plastic",
+ "price": 12500,
+ "use_action": "MIND_SPLICER",
+ "volume": 4,
+ "weight": 600,
+ "flags": [ "TRADER_AVOID" ]
+ },
{
"id": "ax",
"type": "TOOL",
@@ -1231,7 +1265,7 @@
"id": "bot_tripod",
"looks_like": "broken_tripod",
"type": "TOOL",
- "name": "inactive tribot",
+ "name": "inactive tripod",
"description": "This is an inactive Honda Regnal. Using this item involves placing it on the ground, wondering how it fuels its flamethrower and turning it on. If reprogrammed and rewired successfully the tribot will then identify you as an ally, roam around or follow you, and impale hostiles with its spiked cable weapons.",
"weight": 120000,
"volume": 370,
@@ -1360,7 +1394,10 @@
"color": "dark_gray",
"ammo": "battery",
"flags": [ "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ]
+ ],
+ "magazine_well": 4
},
{
"id": "broadfire_off",
@@ -1555,7 +1592,21 @@
"charges_per_use": 5,
"revert_to": "camera",
"use_action": "CAMERA",
- "magazines": [ [ "battery", [ "light_plus_battery_cell", "light_minus_battery_cell", "light_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [
+ "light_plus_battery_cell",
+ "light_minus_battery_cell",
+ "light_battery_cell",
+ "light_atomic_battery_cell",
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
+ ]
+ ]
+ ],
+ "magazine_well": 1
},
{
"id": "camera_pro",
@@ -1582,10 +1633,13 @@
"light_minus_battery_cell",
"light_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "can_sealer",
@@ -1701,15 +1755,10 @@
"magazines": [
[
"battery",
- [
- "light_plus_battery_cell",
- "light_minus_battery_cell",
- "light_battery_cell",
- "light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
- ]
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
]
- ]
+ ],
+ "magazine_well": 2
},
{
"id": "carver_on",
@@ -1723,7 +1772,23 @@
"revert_to": "carver_off",
"qualities": [ [ "CUT", 1 ], [ "BUTCHER", 25 ] ],
"use_action": "CARVER_ON",
- "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ]
+ "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ],
+ "magazine_well": 2
+ },
+ {
+ "id": "catfood",
+ "type": "TOOL",
+ "name": "cat food",
+ "name_plural": "cat food",
+ "description": "This is food for cats. It smells strange, but cats seem to love it.",
+ "weight": 223,
+ "volume": 1,
+ "price": 300,
+ "to_hit": -5,
+ "material": "flesh",
+ "symbol": ";",
+ "color": "brown",
+ "use_action": "CATFOOD"
},
{
"id": "cavalry_sabre",
@@ -1758,7 +1823,6 @@
"symbol": ";",
"color": "light_gray",
"ammo": "battery",
- "initial_charges": 150,
"charges_per_use": 1,
"use_action": {
"target": "cell_phone_flashlight",
@@ -1777,10 +1841,13 @@
"light_minus_battery_cell",
"light_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "cell_phone_flashlight",
@@ -1810,7 +1877,7 @@
"ammo": "battery",
"initial_charges": 110,
"max_charges": 120,
- "charges_per_use": 5,
+ "charges_per_use": 1,
"use_action": [
{
"target": "smart_phone_flashlight",
@@ -1820,16 +1887,30 @@
"need_charges_msg": "The smartphone's charge is too low.",
"type": "transform"
},
- { "revert_to": "smart_phone", "type": "CAMERA" }
+ { "revert_to": "smart_phone", "type": "CAMERA" },
+ "MP3"
],
"flags": [ "WATCH", "ALARMCLOCK", "USE_UPS", "NO_UNLOAD", "NO_RELOAD" ]
},
+ {
+ "id": "smartphone_music",
+ "copy-from": "smart_phone",
+ "type": "TOOL",
+ "name": "smartphone - music",
+ "name_plural": "smartphones - music",
+ "description": "This phone is playing music, steadily raising your morale. You can't hear anything else while you're listening.",
+ "turns_per_charge": 150,
+ "revert_to": "smart_phone",
+ "use_action": "MP3_ON",
+ "flags": [ "TRADER_AVOID" ],
+ "magazine_well": 1
+ },
{
"id": "smart_phone_flashlight",
"copy-from": "smart_phone",
"type": "TOOL",
- "name": "smartphone - Flashlight",
- "name_plural": "smartphones - Flashlight",
+ "name": "smartphone - flashlight",
+ "name_plural": "smartphones - flashlight",
"turns_per_charge": 50,
"revert_to": "smart_phone",
"use_action": {
@@ -2018,7 +2099,13 @@
"charges_per_use": 5,
"use_action": { "target": "circsaw_on", "msg": "You turn on the circular saw.", "active": true, "type": "transform" },
"flags": [ "NONCONDUCTIVE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "circsaw_on",
@@ -2033,7 +2120,8 @@
"revert_to": "circsaw_off",
"qualities": [ [ "CUT", 1 ], [ "SAW_W", 2 ], [ "BUTCHER", -40 ] ],
"use_action": "CIRCSAW_ON",
- "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ]
+ "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ],
+ "magazine_well": 2
},
{
"id": "clarinet",
@@ -2131,7 +2219,13 @@
"charges_per_use": 10,
"qualities": [ [ "BOIL", 1 ] ],
"use_action": "HOTPLATE",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "combatsaw_off",
@@ -2186,7 +2280,13 @@
"ammo": "battery",
"use_action": "E_COMBATSAW_OFF",
"techniques": [ "WBLOCK_1", "SWEEP" ],
- "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "e_combatsaw_on",
@@ -2201,7 +2301,8 @@
"revert_to": "e_combatsaw_off",
"qualities": [ [ "AXE", 3 ] ],
"use_action": "E_COMBATSAW_ON",
- "flags": [ "MESSY", "DURABLE_MELEE", "TRADER_AVOID", "POWERED" ]
+ "flags": [ "MESSY", "DURABLE_MELEE", "TRADER_AVOID", "POWERED" ],
+ "magazine_well": 2
},
{
"id": "con_mix",
@@ -2220,7 +2321,13 @@
"charges_per_use": 20,
"qualities": [ [ "CONTAIN", 1 ] ],
"use_action": "HOTPLATE",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "control_laptop",
@@ -2237,7 +2344,13 @@
"charges_per_use": 2,
"use_action": "ROBOTCONTROL",
"flags": [ "RECHARGE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "copper_ax",
@@ -2289,7 +2402,13 @@
"color": "yellow",
"ammo": "battery",
"qualities": [ [ "DRILL", 3 ], [ "SCREW", 1 ] ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "cot",
@@ -2355,7 +2474,6 @@
"symbol": "|",
"color": "pink",
"ammo": "battery",
- "initial_charges": 20,
"charges_per_use": 1,
"turns_per_charge": 20,
"use_action": "DOLLCHAT",
@@ -2367,10 +2485,13 @@
"light_battery_cell",
"light_plus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "crossbow_trap",
@@ -2454,10 +2575,24 @@
"symbol": ",",
"color": "light_gray",
"ammo": "battery",
- "max_charges": 100,
"charges_per_use": 5,
"use_action": { "type": "firestarter" },
- "flags": [ "FIRESTARTER" ]
+ "magazines": [
+ [
+ "battery",
+ [
+ "light_battery_cell",
+ "light_minus_battery_cell",
+ "light_plus_battery_cell",
+ "light_atomic_battery_cell",
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
+ ]
+ ]
+ ],
+ "flags": [ "FIRESTARTER" ],
+ "magazine_well": 1
},
{
"id": "crude_picklock",
@@ -2529,7 +2664,10 @@
"techniques": [ "WBLOCK_1", "SPIN", "SWEEP" ],
"use_action": "ECS_LAJATANG_OFF",
"flags": [ "NONCONDUCTIVE" ],
- "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ]
+ ],
+ "magazine_well": 4
},
{
"id": "ecs_lajatang_on",
@@ -2542,7 +2680,8 @@
"cutting": 140,
"revert_to": "ecs_lajatang_off",
"use_action": "ECS_LAJATANG_ON",
- "flags": [ "MESSY", "HURT_WHEN_PULLED", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE" ]
+ "flags": [ "MESSY", "HURT_WHEN_PULLED", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE" ],
+ "magazine_well": 4
},
{
"id": "cutlass",
@@ -2593,7 +2732,13 @@
"color": "blue",
"ammo": "battery",
"flags": [ "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "digging_stick",
@@ -2812,10 +2957,13 @@
"light_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "elec_chainsaw_off",
@@ -2835,7 +2983,13 @@
"techniques": "SWEEP",
"use_action": "ELEC_CHAINSAW_OFF",
"flags": [ "NONCONDUCTIVE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "elec_chainsaw_on",
@@ -2851,7 +3005,8 @@
"revert_to": "elec_chainsaw_off",
"qualities": [ [ "AXE", 4 ], [ "BUTCHER", -100 ] ],
"use_action": "ELEC_CHAINSAW_ON",
- "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE", "POWERED" ]
+ "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE", "POWERED" ],
+ "magazine_well": 2
},
{
"id": "elec_hairtrimmer",
@@ -2869,7 +3024,8 @@
"ammo": "battery",
"charges_per_use": 10,
"use_action": "HAIRKIT",
- "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell" ] ] ]
+ "magazines": [ [ "battery", [ "light_minus_battery_cell", "light_minus_atomic_battery_cell", "light_minus_disposable_cell" ] ] ],
+ "magazine_well": 1
},
{
"id": "elec_jackhammer",
@@ -2889,7 +3045,10 @@
"charges_per_use": 25,
"use_action": "JACKHAMMER",
"flags": [ "STAB", "DIG_TOOL", "POWERED" ],
- "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ]
+ ],
+ "magazine_well": 4
},
{
"id": "electrohack",
@@ -2914,10 +3073,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "etched_skull",
@@ -3534,7 +3696,10 @@
"color": "light_gray",
"ammo": "battery",
"flags": [ "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ]
+ ],
+ "magazine_well": 4
},
{
"id": "funnel",
@@ -3734,10 +3899,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "geiger_on",
@@ -3749,7 +3917,8 @@
"turns_per_charge": 10,
"revert_to": "geiger_off",
"use_action": "GEIGER",
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID" ],
+ "magazine_well": 1
},
{
"id": "generic_folded_vehicle",
@@ -3823,7 +3992,7 @@
"type": "GENERIC",
"category": "tools",
"name": "grappling hook",
- "description": "A folding grappling hook attached to a stout 30-foot long piece of lightweight cord. Useful for keeping yourself safe from falls.",
+ "description": "A folding grappling hook attached to a stout 30-foot long piece of lightweight cord. Useful for keeping yourself safe from falls. Can be used in place of a long rope for butchering, in a pinch.",
"weight": 760,
"volume": 3,
"price": 25000,
@@ -4059,7 +4228,13 @@
"ammo": "battery",
"charges_per_use": 5,
"use_action": "HOTPLATE",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "hygrometer",
@@ -4492,7 +4667,13 @@
"type": "transform"
},
"flags": [ "DURABLE_MELEE", "SHEATH_SPEAR" ],
- "magazines": [ [ "battery", [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "l-stick_on",
@@ -4504,7 +4685,8 @@
"material": [ "superalloy", "steel" ],
"revert_to": "l-stick",
"use_action": { "target": "l-stick", "msg": "The l-stick(tm)'s light fades away.", "menu_text": "Turn off", "type": "transform" },
- "flags": [ "LIGHT_300", "DURABLE_MELEE", "TRADER_AVOID", "SHEATH_SPEAR" ]
+ "flags": [ "LIGHT_300", "DURABLE_MELEE", "TRADER_AVOID", "SHEATH_SPEAR" ],
+ "magazine_well": 2
},
{
"id": "landmine",
@@ -4557,7 +4739,13 @@
[ "CHISEL", 3 ]
],
"use_action": "GUN_REPAIR",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ],
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2,
"flags": [ "ALLOWS_REMOTE_USE" ]
},
{
@@ -4661,7 +4849,9 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
],
@@ -4847,7 +5037,12 @@
"color": "white",
"ammo": "battery",
"flags": [ "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ]
},
{
"id": "matchbomb",
@@ -4939,7 +5134,13 @@
"charges_per_use": 5,
"qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ],
"use_action": [ "HOTPLATE", "HEAT_FOOD" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "metal_funnel",
@@ -4963,6 +5164,26 @@
"done_message": "You place the metal funnel, waiting to collect rain."
}
},
+ {
+ "id": "tarp_raincatcher",
+ "type": "TOOL",
+ "name": "tarp raincatcher",
+ "description": "Some sticks and string with a tarpaulin to set up an improvised raincatcher.",
+ "weight": 3980,
+ "volume": 16,
+ "price": 6000,
+ "material": [ "wood", "plastic" ],
+ "symbol": ";",
+ "color": "yellow",
+ "use_action": {
+ "type": "place_trap",
+ "allow_under_player": true,
+ "trap": "tr_raincatcher",
+ "moves": 100,
+ "practice": 0,
+ "done_message": "You set up the raincatcher, waiting to collect water."
+ }
+ },
{
"id": "metal_smoother",
"type": "TOOL",
@@ -4995,7 +5216,13 @@
"charges_per_use": 5,
"qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ],
"use_action": [ "HOTPLATE", "HEAT_FOOD" ],
- "magazines": [ [ "battery", [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_plus_battery_cell", "medium_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "mininuke",
@@ -5197,10 +5424,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "mp3_on",
@@ -5212,7 +5442,8 @@
"turns_per_charge": 150,
"revert_to": "mp3",
"use_action": "MP3_ON",
- "flags": [ "TRADER_AVOID" ]
+ "flags": [ "TRADER_AVOID" ],
+ "magazine_well": 1
},
{
"id": "multi_cooker",
@@ -5231,7 +5462,13 @@
"revert_to": "multi_cooker",
"qualities": [ [ "CONTAIN", 1 ] ],
"use_action": "MULTICOOKER",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "multitool",
@@ -5377,7 +5614,9 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
]
@@ -5761,20 +6000,6 @@
},
"flags": [ "BOMB", "TRADER_AVOID", "DANGEROUS" ]
},
- {
- "id": "plastic_chunk",
- "type": "TOOL",
- "category": "spare_parts",
- "name": "plastic chunk",
- "description": "This is a piece of plastic. It could be used to fabricate, repair, or reinforce plastic items.",
- "weight": 70,
- "volume": 1,
- "price": 0,
- "material": "plastic",
- "symbol": ",",
- "color": "light_blue",
- "flags": [ "NO_SALVAGE" ]
- },
{
"id": "pliers",
"type": "TOOL",
@@ -5848,10 +6073,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "popcan_stove",
@@ -5894,10 +6122,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "portal",
@@ -6104,10 +6335,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "reading_light_on",
@@ -6462,7 +6696,6 @@
"weight": 100,
"volume": 13,
"price": 1000,
- "container_data": { "contains": 12, "watertight": true, "seals": true },
"to_hit": -1,
"material": [ "glass" ],
"symbol": "!",
@@ -6470,7 +6703,7 @@
"ammo": "anesthetic",
"initial_charges": 3,
"max_charges": 3,
- "qualities": [ [ "ANESTHESIA", 1 ], [ "CONTAIN", 1 ] ]
+ "qualities": [ [ "ANESTHESIA", 1 ] ]
},
{
"id": "shavingkit",
@@ -6590,7 +6823,13 @@
"techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ],
"use_action": "TAZER",
"flags": [ "DURABLE_MELEE", "RECHARGE", "NONCONDUCTIVE", "SHEATH_SPEAR" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "shocktonfa_off",
@@ -6612,7 +6851,13 @@
"techniques": [ "WBLOCK_2", "RAPID" ],
"use_action": "SHOCKTONFA_OFF",
"flags": [ "DURABLE_MELEE", "RECHARGE", "NONCONDUCTIVE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "shocktonfa_on",
@@ -6624,7 +6869,8 @@
"turns_per_charge": 15,
"revert_to": "shocktonfa_off",
"use_action": "SHOCKTONFA_ON",
- "flags": [ "LIGHT_450", "CHARGEDIM", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE", "BELT_CLIP" ]
+ "flags": [ "LIGHT_450", "CHARGEDIM", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE", "BELT_CLIP" ],
+ "magazine_well": 2
},
{
"id": "shotgun_trap",
@@ -6730,7 +6976,13 @@
[ "CHISEL", 3 ]
],
"use_action": "GUN_REPAIR",
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ],
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2,
"flags": [ "ALLOWS_REMOTE_USE" ]
},
{
@@ -6766,10 +7018,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "smart_lamp_on",
@@ -6781,7 +7036,8 @@
"turns_per_charge": 25,
"revert_to": "smart_lamp",
"use_action": { "target": "smart_lamp", "msg": "Your smart lamp turned off", "menu_text": "Turn off", "type": "transform" },
- "flags": [ "RADIO_ACTIVATION", "RADIOSIGNAL_2", "LIGHT_240", "CHARGEDIM", "TRADER_AVOID" ]
+ "flags": [ "RADIO_ACTIVATION", "RADIOSIGNAL_2", "LIGHT_240", "CHARGEDIM", "TRADER_AVOID" ],
+ "magazine_well": 1
},
{
"id": "smoxygen_tank",
@@ -6836,10 +7092,13 @@
"light_battery_cell",
"light_plus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "spear_knife",
@@ -7146,7 +7405,6 @@
"symbol": "|",
"color": "pink",
"ammo": "battery",
- "initial_charges": 20,
"charges_per_use": 1,
"turns_per_charge": 20,
"use_action": "DOLLCHAT",
@@ -7158,10 +7416,13 @@
"light_battery_cell",
"light_plus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "tanning_hide",
@@ -7241,6 +7502,7 @@
"price": 14000,
"to_hit": -1,
"bashing": 6,
+ "//": "Yes, this is smaller than it's magazine well. Go with it.",
"material": [ "plastic", "aluminum" ],
"symbol": ";",
"color": "dark_gray",
@@ -7248,7 +7510,13 @@
"charges_per_use": 100,
"use_action": "TAZER",
"flags": [ "RECHARGE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "teapot",
@@ -7435,7 +7703,13 @@
"menu_text": "Turn on",
"type": "transform"
},
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "small_space_heater_on",
@@ -7448,7 +7722,8 @@
"emits": [ "emit_hot_air2_stream" ],
"flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ],
"revert_to": "small_space_heater",
- "use_action": { "target": "small_space_heater", "msg": "You turn off the heater.", "menu_text": "Turn off", "type": "transform" }
+ "use_action": { "target": "small_space_heater", "msg": "You turn off the heater.", "menu_text": "Turn off", "type": "transform" },
+ "magazine_well": 2
},
{
"id": "large_space_heater",
@@ -7474,7 +7749,10 @@
"menu_text": "Turn on",
"type": "transform"
},
- "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ]
+ ],
+ "magazine_well": 4
},
{
"id": "large_space_heater_on",
@@ -7487,7 +7765,8 @@
"emits": [ "emit_hot_air2_blast" ],
"flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ],
"revert_to": "large_space_heater",
- "use_action": { "target": "large_space_heater", "msg": "You turn off the heater.", "menu_text": "Turn off", "type": "transform" }
+ "use_action": { "target": "large_space_heater", "msg": "You turn off the heater.", "menu_text": "Turn off", "type": "transform" },
+ "magazine_well": 4
},
{
"id": "tool_anfo_charge",
@@ -8118,7 +8397,13 @@
"color": "white",
"ammo": "battery",
"flags": [ "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "vacutainer",
@@ -8191,10 +8476,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "violin",
@@ -8351,10 +8639,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "weather_reader",
@@ -8382,10 +8673,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_atomic_battery_cell",
- "light_minus_atomic_battery_cell"
+ "light_minus_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "welder",
@@ -8416,7 +8710,13 @@
{ "flame": false, "type": "cauterize" }
],
"flags": [ "FIRESTARTER", "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "welder_crude",
@@ -8447,7 +8747,12 @@
{ "flame": false, "type": "cauterize" }
],
"flags": [ "FIRESTARTER", "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ]
},
{
"id": "wood_smoother",
@@ -8631,7 +8936,13 @@
"color": "white",
"ammo": "battery",
"flags": [ "ALLOWS_REMOTE_USE" ],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"id": "link_sheet",
@@ -8777,5 +9088,71 @@
}
],
"flags": [ "LIGHT_3", "ALLOWS_REMOTE_USE" ]
+ },
+ {
+ "id": "adobe_pallet_full",
+ "type": "TOOL",
+ "name": "pallet of wet adobe bricks",
+ "name_plural": "pallets of wet adobe bricks",
+ "description": "A pallet full of heavy mud bricks which need to dry slowly to be usable.",
+ "weight": 35000,
+ "volume": 50,
+ "price": 100,
+ "to_hit": -2,
+ "material": [ "soil", "wood" ],
+ "symbol": "#",
+ "color": "brown",
+ "looks_like": "frame_wood_light",
+ "flags": [ "NONCONDUCTIVE" ],
+ "use_action": {
+ "target": "adobe_pallet_done",
+ "msg": "You test the bricks, and they're solid enough to use.",
+ "moves": 50,
+ "type": "delayed_transform",
+ "transform_age": 100800,
+ "not_ready_msg": "The bricks are still too damp to bear weight.",
+ "//": "Should be about a week. Irl it's ten days, so make big batches."
+ }
+ },
+ {
+ "id": "adobe_pallet_done",
+ "type": "TOOL",
+ "category": "tools",
+ "name": "pallet of dry adobe bricks",
+ "name_plural": "pallets of dry adobe bricks",
+ "description": "A pallet of humble mud bricks that have dried for a week, while you were out risking your life. Disassemble it to retrieve your frame and building supplies.",
+ "weight": 30000,
+ "volume": 50,
+ "price": 40000,
+ "to_hit": -3,
+ "material": [ "ceramic", "wood" ],
+ "symbol": "#",
+ "color": "brown_yellow",
+ "looks_like": "frame_wood_light",
+ "flags": [ "NONCONDUCTIVE" ]
+ },
+ {
+ "id": "hand_axe",
+ "type": "TOOL",
+ "name": "stone hand axe",
+ "description": "This is a broad piece of sharpened stone, with enough left untouched to hold safely. The Swiss Army knife of the lower paleolithic.",
+ "weight": 453,
+ "volume": 2,
+ "price": 0,
+ "to_hit": -1,
+ "bashing": 5,
+ "cutting": 3,
+ "material": "stone",
+ "symbol": ";",
+ "color": "light_gray",
+ "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 6 ], [ "SAW_W", 1 ], [ "AXE", 1 ], [ "HAMMER", 1 ] ]
+ },
+ {
+ "id": "makeshift_axe",
+ "copy-from": "hand_axe",
+ "type": "TOOL",
+ "name": "metal hand axe",
+ "description": "This is a chunk of steel with one edge hammered down to something resembling a cutting edge. It works passably well as an axe but really can't compare to a proper axe.",
+ "material": "steel"
}
]
diff --git a/data/mods/Boats/items_vehicleparts_boats.json b/data/json/items/vehicle/boat.json
similarity index 100%
rename from data/mods/Boats/items_vehicleparts_boats.json
rename to data/json/items/vehicle/boat.json
diff --git a/data/json/items/vehicle/cables.json b/data/json/items/vehicle/cables.json
new file mode 100644
index 0000000000000..87059285b1b87
--- /dev/null
+++ b/data/json/items/vehicle/cables.json
@@ -0,0 +1,43 @@
+[
+ {
+ "type": "TOOL",
+ "id": "jumper_cable",
+ "name": "jumper cable",
+ "description": "A jumper cable, like you've seen many times before: it's a short multi-stranded copper cable with power leads on either end, whose purpose is to share power between vehicles.",
+ "to_hit": 1,
+ "color": "light_blue",
+ "symbol": "&",
+ "material": [ "steel", "plastic" ],
+ "volume": 2,
+ "weight": 75,
+ "bashing": 2,
+ "category": "tools",
+ "price": 1,
+ "max_charges": 3,
+ "initial_charges": 3,
+ "use_action": "CABLE_ATTACH",
+ "flags": [ "CABLE_SPOOL" ]
+ },
+ {
+ "type": "TOOL",
+ "id": "jumper_cable_heavy",
+ "name": "heavy-duty cable",
+ "description": "A long, thick, heavy-duty cable with power leads on either end. It looks like you could use it to hook up two vehicles to each other, though you expect the power loss would be noticeable.",
+ "volume": 6,
+ "weight": 750,
+ "max_charges": 20,
+ "initial_charges": 20,
+ "copy-from": "jumper_cable"
+ },
+ {
+ "type": "TOOL",
+ "id": "jumper_cable_debug",
+ "name": "shiny cable",
+ "description": "This is the cable of the gods: 50 meters long, no power loss, light as a feather and fits in a matchbook. You're sure this wasn't supposed to exist, and the way it shimmers makes you uneasy.",
+ "weight": 1,
+ "volume": 0,
+ "max_charges": 50,
+ "initial_charges": 50,
+ "copy-from": "jumper_cable"
+ }
+]
diff --git a/data/json/items/vehicle/cargo.json b/data/json/items/vehicle/cargo.json
new file mode 100644
index 0000000000000..83e4c03ee7865
--- /dev/null
+++ b/data/json/items/vehicle/cargo.json
@@ -0,0 +1,92 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "basket",
+ "name": "wire basket",
+ "description": "A large wire basket from a shopping cart.",
+ "weight": 6000,
+ "to_hit": -5,
+ "color": "cyan",
+ "symbol": "]",
+ "material": [ "steel" ],
+ "techniques": [ "DEF_DISARM" ],
+ "volume": 90,
+ "bashing": 20,
+ "category": "veh_parts",
+ "price": 10000,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "folding_basket",
+ "name": "folding wire basket",
+ "description": "A large wire basket from a shopping cart, modified to be foldable.",
+ "weight": 7000,
+ "copy-from": "basket"
+ },
+ {
+ "type": "GENERIC",
+ "id": "bike_basket",
+ "name": "bike basket",
+ "description": "A simple bike basket. It is small and foldable.",
+ "weight": 1200,
+ "volume": 20,
+ "price": 3500,
+ "copy-from": "basket"
+ },
+ {
+ "type": "GENERIC",
+ "id": "cargo_rack",
+ "name": "cargo carrier",
+ "description": "A heavy frame outfitted with tie-downs and attachment points for carrying cargo.",
+ "weight": 80000,
+ "to_hit": -4,
+ "color": "cyan",
+ "symbol": "]",
+ "material": [ "steel", "plastic" ],
+ "volume": 200,
+ "bashing": 2,
+ "category": "veh_parts",
+ "price": 40000
+ },
+ {
+ "id": "cargo_aisle",
+ "type": "GENERIC",
+ "name": "floor trunk",
+ "description": "A section of flooring with a cargo-space beneath, and a hinged door for access.",
+ "weight": 18000,
+ "color": "cyan",
+ "symbol": "]",
+ "volume": 200,
+ "bashing": 2,
+ "material": [ "steel", "plastic" ],
+ "category": "veh_parts",
+ "price": 20000
+ },
+ {
+ "id": "livestock_carrier",
+ "type": "GENERIC",
+ "name": "livestock carrier",
+ "description": "A heavy frame outfitted with tie-downs and attachment points for carrying cargo, with additional railings to keep a large animal in place. It is meant to hold large animals for transport. Use it on a suitable animal to capture, use it on an empty tile to release.",
+ "weight": 96000,
+ "volume": 250,
+ "price": 48000,
+ "category": "veh_parts",
+ "material": [ "steel", "plastic" ],
+ "symbol": "]",
+ "color": "light_gray",
+ "looks_like": "cargo_rack",
+ "properties": [ [ "monster_size_capacity", "HUGE" ] ],
+ "use_action": "CAPTURE_MONSTER_VEH",
+ "flags": [ "TRADER_AVOID", "USE_PART_ITEM" ]
+ },
+ {
+ "id": "animal_locker",
+ "type": "GENERIC",
+ "copy-from": "livestock_carrier",
+ "name": "animal locker",
+ "description": "A locker used to contain animals safely during transportation if installed properly. There is room for animal food and other animal care goods. It is meant to hold medium or smaller animals for transport. Use it on a suitable animal to capture, use it on an empty tile to release.",
+ "weight": 10000,
+ "volume": 125
+ }
+]
diff --git a/data/json/items/vehicle/controls.json b/data/json/items/vehicle/controls.json
new file mode 100644
index 0000000000000..7373d4ff0bc06
--- /dev/null
+++ b/data/json/items/vehicle/controls.json
@@ -0,0 +1,72 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "vehicle_controls",
+ "name": "vehicle controls",
+ "name_plural": "sets of vehicle controls",
+ "description": "A set of various vehicle controls. Useful for crafting.",
+ "weight": 6000,
+ "to_hit": -4,
+ "color": "light_cyan",
+ "symbol": "$",
+ "material": [ "plastic", "steel" ],
+ "volume": 12,
+ "bashing": 2,
+ "category": "veh_parts",
+ "price": 40000
+ },
+ {
+ "type": "GENERIC",
+ "id": "vehicle_dashboard",
+ "name": "dashboard",
+ "description": "A vehicle instrument panel with various gauges and switches. Useful for crafting.",
+ "weight": 2721,
+ "to_hit": -2,
+ "color": "cyan",
+ "symbol": "$",
+ "material": [ "plastic", "steel" ],
+ "volume": 40,
+ "bashing": 1,
+ "category": "veh_parts",
+ "price": 8000
+ },
+ {
+ "type": "GENERIC",
+ "id": "electronics_controls",
+ "copy-from": "vehicle_dashboard",
+ "name": "electronics control unit",
+ "description": "A vehicle instrument panel with various gauges and switches. Useful for crafting.",
+ "weight": 1311,
+ "to_hit": -4,
+ "material": [ "plastic" ],
+ "volume": 6,
+ "price": 4000
+ },
+ {
+ "type": "GENERIC",
+ "id": "drive_by_wire_controls",
+ "name": "drive by wire controls",
+ "name_plural": "sets of drive by wire controls",
+ "description": "Fully electronic vehicle control system. You could control it remotely if you had proper tools.",
+ "weight": 3000,
+ "color": "red",
+ "volume": 15,
+ "bashing": 1,
+ "price": 200000,
+ "copy-from": "vehicle_controls"
+ },
+ {
+ "type": "GENERIC",
+ "id": "robot_controls",
+ "name": "robot driving unit",
+ "name_plural": "robot driving units",
+ "description": "A set of servos, microcontrollers and other devices, together capable of driving an unmanned vehicle. Its AI is not functional, but it should still have some sort of maintenance mode.",
+ "weight": 2000,
+ "color": "white",
+ "symbol": "&",
+ "volume": 20,
+ "bashing": 1,
+ "price": 20000,
+ "copy-from": "vehicle_controls"
+ }
+]
diff --git a/data/json/items/vehicle/farming.json b/data/json/items/vehicle/farming.json
new file mode 100644
index 0000000000000..6c3e9dc302dcc
--- /dev/null
+++ b/data/json/items/vehicle/farming.json
@@ -0,0 +1,77 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "v_scoop_item",
+ "name": "vehicle scoop",
+ "symbol": "u",
+ "color": "light_gray",
+ "name_plural": "vehicle scoops",
+ "description": "An assembly of motors and sheet metal that allows a vehicle to clean the road surface by removing debris and contaminants.",
+ "weight": 22666,
+ "bashing": 1,
+ "material": "steel",
+ "category": "veh_parts",
+ "price": 3500,
+ "volume": 28
+ },
+ {
+ "type": "GENERIC",
+ "id": "v_planter_item",
+ "symbol": "8",
+ "name": "seed drill",
+ "name_plural": "seed drills",
+ "description": "An assembly of tubes, spikes, and wheels, that when dragged along the ground, allows a vehicle to plant seeds automatically in suitably tilled land.",
+ "material": [ "steel", "plastic" ],
+ "copy-from": "v_scoop_item"
+ },
+ {
+ "type": "GENERIC",
+ "id": "v_reaper_item",
+ "symbol": "/",
+ "name": "reaper",
+ "name_plural": "reapers",
+ "description": "An assembly of a blade, wheels, and a small lever for engaging/disengaging used to cut down crops prior to picking them up.",
+ "material": [ "steel", "plastic" ],
+ "copy-from": "v_scoop_item"
+ },
+ {
+ "type": "GENERIC",
+ "id": "v_reaper_item_advanced",
+ "symbol": "/",
+ "name": "advanced reaper",
+ "name_plural": "advanced reapers",
+ "description": "An advanced electronic device used to cut down, collect and store crops.",
+ "weight": 25000,
+ "material": [ "steel", "plastic" ],
+ "price": 50000,
+ "volume": 36,
+ "copy-from": "v_scoop_item"
+ },
+ {
+ "type": "GENERIC",
+ "id": "v_planter_item_advanced",
+ "symbol": "8",
+ "name": "advanced seed drill",
+ "name_plural": "advanced seed drills",
+ "color": "dark_gray",
+ "description": "An assembly of tubes, spikes, and wheels, that when dragged along the ground, allows a vehicle to plant seeds automatically in suitably tilled land. This one is equipped with an electronic control system and will avoid damaging itself when used on untilled land.",
+ "weight": 32666,
+ "material": [ "steel", "plastic" ],
+ "price": 50000,
+ "volume": 29,
+ "copy-from": "v_scoop_item"
+ },
+ {
+ "type": "GENERIC",
+ "id": "v_plow_item",
+ "symbol": "&",
+ "name": "plow",
+ "name_plural": "plows",
+ "color": "dark_gray",
+ "description": "A heavy assembly of wheels and steel blades that turn up the ground.",
+ "weight": 32666,
+ "material": [ "steel", "plastic" ],
+ "volume": 29,
+ "copy-from": "v_scoop_item"
+ }
+]
diff --git a/data/json/items/vehicle/frames.json b/data/json/items/vehicle/frames.json
new file mode 100644
index 0000000000000..8a4ad1bad5f39
--- /dev/null
+++ b/data/json/items/vehicle/frames.json
@@ -0,0 +1,95 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "foldframe",
+ "name": "foldable-light frame",
+ "description": "A small foldable lightweight frame made from pipework.",
+ "weight": 5000,
+ "to_hit": -3,
+ "color": "light_gray",
+ "symbol": "]",
+ "material": [ "steel" ],
+ "techniques": [ "DEF_DISARM" ],
+ "volume": 40,
+ "bashing": 15,
+ "category": "veh_parts",
+ "price": 4000
+ },
+ {
+ "type": "GENERIC",
+ "id": "xlframe",
+ "name": "extra-light frame",
+ "description": "A small lightweight frame made from pipework. Useful for crafting.",
+ "material": [ "aluminum" ],
+ "copy-from": "foldframe"
+ },
+ {
+ "type": "GENERIC",
+ "id": "frame",
+ "name": "steel frame",
+ "description": "A large frame made of steel. Useful for crafting.",
+ "weight": 20000,
+ "to_hit": -5,
+ "color": "cyan",
+ "volume": 60,
+ "bashing": 20,
+ "price": 5500,
+ "copy-from": "foldframe"
+ },
+ {
+ "type": "GENERIC",
+ "id": "hdframe",
+ "name": "heavy duty frame",
+ "description": "A large, reinforced steel frame, used in military vehicle construction.",
+ "weight": 100000,
+ "to_hit": -6,
+ "color": "green",
+ "material": [ "hardsteel", "steel" ],
+ "volume": 80,
+ "bashing": 25,
+ "price": 12000,
+ "qualities": [ [ "ANVIL", 1 ] ],
+ "copy-from": "foldframe"
+ },
+ {
+ "type": "GENERIC",
+ "id": "frame_wood",
+ "name": "wooden frame",
+ "description": "A large frame made of wood. Useful for crafting.",
+ "weight": 8000,
+ "to_hit": -5,
+ "color": "brown",
+ "material": [ "wood" ],
+ "volume": 60,
+ "bashing": 16,
+ "cutting": 4,
+ "price": 3500,
+ "copy-from": "foldframe"
+ },
+ {
+ "type": "GENERIC",
+ "id": "foldwoodframe",
+ "name": "foldable wooden frame",
+ "description": "A small foldable frame made from scrap wood.",
+ "weight": 4000,
+ "color": "brown",
+ "material": [ "wood" ],
+ "volume": 50,
+ "copy-from": "foldframe"
+ },
+ {
+ "type": "GENERIC",
+ "id": "frame_wood_light",
+ "name": "light wooden frame",
+ "description": "A small frame made of few pieces of wood, held together by rope. Useful for crafting.",
+ "weight": 4000,
+ "to_hit": -5,
+ "color": "brown",
+ "material": [ "wood" ],
+ "volume": 35,
+ "bashing": 8,
+ "cutting": 1,
+ "price": 1000,
+ "copy-from": "foldframe"
+ }
+]
diff --git a/data/json/items/vehicle/lights.json b/data/json/items/vehicle/lights.json
new file mode 100644
index 0000000000000..0a6f57a7f6eb4
--- /dev/null
+++ b/data/json/items/vehicle/lights.json
@@ -0,0 +1,92 @@
+[
+ {
+ "id": "car_headlight",
+ "type": "GENERIC",
+ "name": "car headlight",
+ "description": "A vehicle headlight to light up the way.",
+ "symbol": ";",
+ "color": "white",
+ "material": "plastic",
+ "category": "veh_parts",
+ "weight": 1000,
+ "volume": 4,
+ "price": 3000
+ },
+ {
+ "id": "car_wide_headlight",
+ "type": "GENERIC",
+ "name": "wide-angle car headlight",
+ "description": "A wide-angle vehicle headlight to light up the way.",
+ "looks_like": "car_headlight",
+ "weight": 2000,
+ "volume": 5,
+ "price": 4000,
+ "copy-from": "car_headlight"
+ },
+ {
+ "type": "GENERIC",
+ "id": "headlight_reinforced",
+ "name": "reinforced headlight",
+ "description": "A vehicle headlight with a cage built around it to protect it from damage without reducing its effectiveness.",
+ "weight": 1200,
+ "to_hit": -2,
+ "color": "light_cyan",
+ "symbol": ",",
+ "material": [ "steel", "plastic" ],
+ "bashing": 4,
+ "price": 40000,
+ "copy-from": "car_headlight"
+ },
+ {
+ "type": "GENERIC",
+ "id": "wide_headlight_reinforced",
+ "name": "reinforced wide-angle headlight",
+ "description": "A wide-angle vehicle headlight with a cage built around it to protect it from damage without reducing its effectiveness.",
+ "weight": 1400,
+ "volume": 5,
+ "copy-from": "headlight_reinforced"
+ },
+ {
+ "type": "GENERIC",
+ "id": "light_emergency_red",
+ "name": "emergency vehicle light (red)",
+ "name_plural": "emergency vehicle lights (red)",
+ "description": "One of the red-colored lights from the top of an emergency services vehicle. When turned on, the lights rotate to shine in all directions.",
+ "weight": 500,
+ "to_hit": 1,
+ "color": "red",
+ "material": [ "plastic", "steel" ],
+ "bashing": 1,
+ "price": 40000,
+ "copy-from": "car_headlight"
+ },
+ {
+ "type": "GENERIC",
+ "id": "light_emergency_blue",
+ "name": "emergency vehicle light (blue)",
+ "name_plural": "emergency vehicle lights (blue)",
+ "description": "One of the blue-colored lights from the top of an emergency services vehicle. When turned on, the lights rotate to shine in all directions.",
+ "color": "blue",
+ "copy-from": "light_emergency_red"
+ },
+ {
+ "type": "GENERIC",
+ "id": "floodlight",
+ "name": "floodlight",
+ "description": "A large and heavy light designed to illuminate wide areas.",
+ "weight": 2500,
+ "to_hit": 1,
+ "material": [ "plastic", "steel" ],
+ "volume": 8,
+ "bashing": 5,
+ "price": 90000,
+ "copy-from": "car_headlight"
+ },
+ {
+ "type": "GENERIC",
+ "id": "directed_floodlight",
+ "name": "directed floodlight",
+ "description": "A large and heavy light designed to illuminate a wide area in a half-circular cone.",
+ "copy-from": "floodlight"
+ }
+]
diff --git a/data/json/items/vehicle/manual.json b/data/json/items/vehicle/manual.json
new file mode 100644
index 0000000000000..271a99fc5d7c0
--- /dev/null
+++ b/data/json/items/vehicle/manual.json
@@ -0,0 +1,28 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "hand_rims",
+ "name": "set of hand rims",
+ "name_plural": "sets of hand rims",
+ "description": "Hand rims for use on a wheelchair.",
+ "weight": 816,
+ "to_hit": -1,
+ "color": "light_gray",
+ "symbol": ":",
+ "material": [ "steel" ],
+ "volume": 2,
+ "bashing": 10,
+ "category": "veh_parts",
+ "price": 9000
+ },
+ {
+ "type": "GENERIC",
+ "id": "foot_crank",
+ "copy-from": "hand_rims",
+ "name": "foot crank",
+ "description": "The pedal and gear assembly from a bicycle.",
+ "to_hit": -2,
+ "bashing": 8,
+ "cutting": 2
+ }
+]
diff --git a/data/json/items/vehicle/mills.json b/data/json/items/vehicle/mills.json
new file mode 100644
index 0000000000000..b42bde86b5579
--- /dev/null
+++ b/data/json/items/vehicle/mills.json
@@ -0,0 +1,54 @@
+[
+ {
+ "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": "xl_wind_turbine",
+ "name": "large wind turbine",
+ "description": "A large turbine that can convert wind into electric power.",
+ "weight": 150000,
+ "to_hit": -7,
+ "symbol": "Y",
+ "volume": 240,
+ "price": 150000,
+ "copy-from": "wind_turbine"
+ },
+ {
+ "type": "GENERIC",
+ "id": "water_wheel",
+ "name": "water wheel",
+ "description": "A water wheel. Will slowly recharge the vehicle's electrical power when built over shallow moving water.",
+ "weight": 300000,
+ "to_hit": -5,
+ "symbol": "*",
+ "material": [ "wood" ],
+ "volume": 120,
+ "bashing": 3,
+ "price": 120000,
+ "copy-from": "wind_turbine"
+ },
+ {
+ "type": "GENERIC",
+ "id": "xl_water_wheel",
+ "name": "large water wheel",
+ "description": "A large water wheel with wooden supports. Will recharge the vehicle's electrical power when built over shallow moving water.",
+ "weight": 600000,
+ "symbol": "o",
+ "volume": 240,
+ "price": 200000,
+ "copy-from": "water_wheel"
+ }
+]
diff --git a/data/json/items/vehicle/motors.json b/data/json/items/vehicle/motors.json
new file mode 100644
index 0000000000000..0c978c83b0928
--- /dev/null
+++ b/data/json/items/vehicle/motors.json
@@ -0,0 +1,74 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "motor",
+ "name": "electric motor",
+ "description": "A powerful electric motor. Useful for crafting.",
+ "weight": 27200,
+ "color": "light_cyan",
+ "symbol": ",",
+ "material": [ "steel" ],
+ "volume": "9700 ml",
+ "bashing": 4,
+ "category": "veh_parts",
+ "price": 12000
+ },
+ {
+ "type": "GENERIC",
+ "id": "motor_enhanced",
+ "name": "enhanced electric motor",
+ "description": "A very powerful and yet lightweight electric motor. Useful for crafting.",
+ "weight": 81600,
+ "material": [ "superalloy" ],
+ "volume": "2650 ml",
+ "price": 68000,
+ "copy-from": "motor"
+ },
+ {
+ "type": "GENERIC",
+ "id": "motor_super",
+ "name": "super electric motor",
+ "description": "The most powerfull electric motor on the market. Useful for crafting.",
+ "weight": 133800,
+ "volume": "111 L",
+ "price": 80000,
+ "copy-from": "motor"
+ },
+ {
+ "type": "GENERIC",
+ "id": "motor_large",
+ "name": "large electric motor",
+ "description": "A large and very powerful electric motor. Useful for crafting.",
+ "weight": 68000,
+ "to_hit": -3,
+ "symbol": ":",
+ "volume": "1740 ml",
+ "bashing": 9,
+ "price": 22000,
+ "copy-from": "motor"
+ },
+ {
+ "type": "GENERIC",
+ "id": "motor_small",
+ "name": "small electric motor",
+ "description": "A small electric motor. Useful for crafting.",
+ "weight": 7500,
+ "volume": "5 L",
+ "bashing": 1,
+ "price": 2000,
+ "copy-from": "motor"
+ },
+ {
+ "type": "GENERIC",
+ "id": "motor_tiny",
+ "name": "tiny electric motor",
+ "description": "A tiny electric motor. Useful for crafting.",
+ "weight": 5800,
+ "color": "light_cyan",
+ "symbol": ",",
+ "material": [ "steel", "plastic" ],
+ "volume": "500 ml",
+ "category": "veh_parts",
+ "price": 2000
+ }
+]
diff --git a/data/json/items/vehicle/noise.json b/data/json/items/vehicle/noise.json
new file mode 100644
index 0000000000000..f0e5d58e04415
--- /dev/null
+++ b/data/json/items/vehicle/noise.json
@@ -0,0 +1,63 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "muffler",
+ "name": "muffler",
+ "description": "A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting recipes.",
+ "weight": 9525,
+ "to_hit": -10,
+ "color": "light_gray",
+ "symbol": "/",
+ "material": [ "steel" ],
+ "techniques": [ "WBLOCK_1" ],
+ "volume": 14,
+ "bashing": 19,
+ "category": "veh_parts",
+ "price": 3000,
+ "qualities": [ [ "HAMMER", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "beeper",
+ "name": "back-up beeper",
+ "description": "This is a safety device intended to warn passersby of a vehicle moving in reverse, but the usage of it now seems terribly unwise.",
+ "weight": 360,
+ "symbol": ";",
+ "color": "light_gray",
+ "material": [ "plastic", "aluminum" ],
+ "volume": 1,
+ "to_hit": -1,
+ "bashing": 2,
+ "category": "veh_parts",
+ "price": 6000
+ },
+ {
+ "type": "GENERIC",
+ "id": "stereo",
+ "name": "stereo system",
+ "description": "A stereo system with speakers. It is capable of being hooked up to a vehicle.",
+ "weight": 800,
+ "to_hit": -2,
+ "color": "red",
+ "symbol": "&",
+ "material": [ "steel" ],
+ "volume": 14,
+ "category": "veh_parts",
+ "price": 800
+ },
+ {
+ "type": "GENERIC",
+ "id": "chimes",
+ "name": "chime loudspeakers",
+ "name_plural": "chime loudspeakers",
+ "description": "A stereo system with loudspeakers and a built-in set of simple melodies that it will play. Commonly used by ice cream trucks to draw the attention of children in the days when children wanted ice cream more than brains.",
+ "weight": 2600,
+ "to_hit": -2,
+ "color": "blue",
+ "symbol": "&",
+ "material": [ "steel" ],
+ "volume": 16,
+ "category": "veh_parts",
+ "price": 5000
+ }
+]
diff --git a/data/json/items/vehicle/plating.json b/data/json/items/vehicle/plating.json
new file mode 100644
index 0000000000000..4fd2b8075c3ab
--- /dev/null
+++ b/data/json/items/vehicle/plating.json
@@ -0,0 +1,185 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "sheet_metal",
+ "name": "sheet metal",
+ "description": "A thin sheet of metal.",
+ "//": "Roughly in the 70cm×70cm×1.5mm to 1m×1m×0.75mm range. Has to be folded / rolled up when in inventory, so 75% density compared to solid block.",
+ "weight": 6000,
+ "to_hit": -2,
+ "color": "light_cyan",
+ "symbol": "]",
+ "material": [ "steel" ],
+ "volume": 4,
+ "bashing": 5,
+ "category": "spare_parts",
+ "price": 6000,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "sheet_metal_lit",
+ "name": "wired sheet metal",
+ "description": "Sheet metal that has had light housing wired into it.",
+ "weight": 6200,
+ "to_hit": -2,
+ "color": "light_cyan",
+ "symbol": "]",
+ "material": [ "steel", "plastic" ],
+ "volume": 5,
+ "bashing": 5,
+ "category": "veh_parts",
+ "price": 7500
+ },
+ {
+ "type": "GENERIC",
+ "id": "wood_plate",
+ "name": "wooden armor kit",
+ "description": "A bundle of two by fours prepared to be used as vehicle armor.",
+ "weight": 5600,
+ "to_hit": -8,
+ "color": "brown",
+ "symbol": "]",
+ "material": [ "wood" ],
+ "volume": 12,
+ "bashing": 10,
+ "category": "veh_parts",
+ "price": 12000
+ },
+ {
+ "type": "GENERIC",
+ "id": "steel_plate",
+ "name": "steel plating",
+ "description": "A piece of armor plating made of steel.",
+ "weight": 12880,
+ "to_hit": -1,
+ "color": "light_cyan",
+ "symbol": "]",
+ "material": [ "steel" ],
+ "volume": 12,
+ "bashing": 6,
+ "category": "veh_parts",
+ "price": 12000,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "alloy_plate",
+ "name": "superalloy plating",
+ "description": "A piece of armor plating made of sturdy superalloy.",
+ "weight": 10800,
+ "to_hit": -1,
+ "color": "light_cyan",
+ "symbol": "]",
+ "material": [ "superalloy" ],
+ "volume": 12,
+ "bashing": 6,
+ "category": "veh_parts",
+ "price": 18500,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "alloy_sheet",
+ "name": "superalloy sheet",
+ "description": "A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable.",
+ "weight": 900,
+ "to_hit": -2,
+ "color": "light_cyan",
+ "symbol": ",",
+ "material": [ "superalloy" ],
+ "volume": 2,
+ "category": "veh_parts",
+ "price": 8500,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "spiked_plate",
+ "name": "spiked plating",
+ "description": "A piece of armor plating made of steel. It is covered with menacing spikes.",
+ "weight": 12240,
+ "to_hit": -1,
+ "color": "light_cyan",
+ "symbol": "]",
+ "material": [ "steel" ],
+ "volume": 14,
+ "bashing": 6,
+ "cutting": 3,
+ "flags": [ "STAB" ],
+ "category": "veh_parts",
+ "price": 18500,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "hard_plate",
+ "name": "hard plating",
+ "description": "A piece of very thick armor plating made of steel.",
+ "weight": 32640,
+ "to_hit": -1,
+ "color": "light_cyan",
+ "symbol": "]",
+ "material": [ "hardsteel" ],
+ "volume": 12,
+ "bashing": 6,
+ "category": "veh_parts",
+ "price": 16000,
+ "qualities": [ [ "COOK", 1 ], [ "ANVIL", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "mil_plate",
+ "name": "military composite plating",
+ "description": "A thick sheet of military grade armor, best bullet stopper you can stick on a vehicle.",
+ "weight": 16500,
+ "to_hit": -1,
+ "color": "green",
+ "symbol": "]",
+ "material": [ "hardsteel", "ceramic" ],
+ "volume": 12,
+ "bashing": 8,
+ "category": "veh_parts",
+ "price": 16000,
+ "qualities": [ [ "COOK", 1 ] ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "chitin_plate",
+ "symbol": "]",
+ "color": "yellow",
+ "name": "chitin armor kit",
+ "description": "Light chitin plating made for a vehicle.",
+ "price": 1200,
+ "material": [ "chitin" ],
+ "weight": 2000,
+ "volume": 22,
+ "bashing": 8,
+ "to_hit": -4,
+ "category": "veh_parts"
+ },
+ {
+ "type": "GENERIC",
+ "id": "acidchitin_plate",
+ "copy-from": "chitin_plate",
+ "name": "biosilicified chitin armor kit",
+ "description": "Durable silica-coated chitin plating made for a vehicle.",
+ "material": [ "acidchitin" ],
+ "proportional": { "price": 1.333, "weight": 1.2, "volume": 1.18, "bashing": 1.25 }
+ },
+ {
+ "type": "GENERIC",
+ "id": "bone_plate",
+ "symbol": "]",
+ "color": "white",
+ "name": "bone armor kit",
+ "description": "Bone plating made for a vehicle.",
+ "price": 1200,
+ "material": [ "bone" ],
+ "weight": 4000,
+ "volume": 38,
+ "bashing": 8,
+ "to_hit": -4,
+ "category": "veh_parts"
+ }
+]
diff --git a/data/json/items/vehicle/seating.json b/data/json/items/vehicle/seating.json
new file mode 100644
index 0000000000000..5f394cad3c16c
--- /dev/null
+++ b/data/json/items/vehicle/seating.json
@@ -0,0 +1,29 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "seat",
+ "name": "seat",
+ "description": "A soft car seat covered with leather.",
+ "weight": 9071,
+ "to_hit": -4,
+ "color": "red",
+ "symbol": "0",
+ "material": [ "leather", "aluminum" ],
+ "volume": 30,
+ "bashing": 4,
+ "category": "veh_parts",
+ "price": 25000
+ },
+ {
+ "type": "GENERIC",
+ "id": "saddle",
+ "name": "saddle",
+ "description": "A leather-covered seat designed to be straddled.",
+ "weight": 300,
+ "material": [ "plastic", "aluminum" ],
+ "volume": 5,
+ "bashing": 2,
+ "price": 2500,
+ "copy-from": "seat"
+ }
+]
diff --git a/data/json/items/vehicle/solar.json b/data/json/items/vehicle/solar.json
new file mode 100644
index 0000000000000..2da28cb3fdfe6
--- /dev/null
+++ b/data/json/items/vehicle/solar.json
@@ -0,0 +1,73 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "solar_panel",
+ "name": "solar panel",
+ "description": "Electronic device that can convert solar radiation into electric power. Useful for a vehicle.",
+ "weight": 14000,
+ "to_hit": -4,
+ "color": "yellow",
+ "symbol": "]",
+ "material": [ "glass" ],
+ "volume": 12,
+ "bashing": 1,
+ "category": "veh_parts",
+ "price": 90000
+ },
+ {
+ "type": "GENERIC",
+ "id": "reinforced_solar_panel",
+ "name": "reinforced solar panel",
+ "description": "A solar panel that has been covered with a pane of reinforced glass to protect the delicate solar cells from zombies or errant baseballs. The glass causes this panel to produce slightly less power than a normal panel. Useful for a vehicle.",
+ "weight": 24153,
+ "color": "light_blue",
+ "material": [ "glass", "steel" ],
+ "volume": 26,
+ "price": 120000,
+ "copy-from": "solar_panel"
+ },
+ {
+ "type": "GENERIC",
+ "id": "solar_panel_v2",
+ "name": "upgraded solar panel",
+ "description": "Electronic device that can convert solar radiation into electric power. This panel has been upgraded to convert more sunlight into power. Useful for a vehicle.",
+ "weight": 18494,
+ "volume": 18,
+ "price": 190000,
+ "copy-from": "solar_panel"
+ },
+ {
+ "type": "GENERIC",
+ "id": "reinforced_solar_panel_v2",
+ "name": "upgraded reinforced solar panel",
+ "description": "An upgraded solar panel that has been covered with a pane of reinforced glass to protect the delicate solar cells from zombies or errant baseballs. The glass causes this panel to produce slightly less power than a normal upgraded panel. Useful for a vehicle.",
+ "weight": 29062,
+ "to_hit": -5,
+ "volume": 30,
+ "price": 240000,
+ "copy-from": "reinforced_solar_panel"
+ },
+ {
+ "type": "GENERIC",
+ "id": "solar_panel_v3",
+ "name": "quantum solar panel",
+ "description": "This solar panel is obviously cutting-edge technology and given where you found it, should probably provide a LOT of power. It's covered in strange-looking material, but the covering looks rather fragile; it doesn't look like it could support a reinforcing sheet, either.",
+ "to_hit": -5,
+ "material": [ "glass", "steel" ],
+ "volume": 18,
+ "price": 900000,
+ "copy-from": "solar_panel"
+ },
+ {
+ "type": "GENERIC",
+ "id": "solar_cell",
+ "name": "solar cell",
+ "description": "A small electronic device that can convert solar radiation into electric power. Useful for crafting.",
+ "weight": 500,
+ "symbol": ";",
+ "volume": 1,
+ "category": "spare_parts",
+ "price": 5000,
+ "copy-from": "solar_panel"
+ }
+]
diff --git a/data/json/items/vehicle/tables.json b/data/json/items/vehicle/tables.json
new file mode 100644
index 0000000000000..b1f74b05b2c68
--- /dev/null
+++ b/data/json/items/vehicle/tables.json
@@ -0,0 +1,37 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "v_table",
+ "name": "fancy table",
+ "description": "A very fancy table from a very fancy RV. If times were better it might be useful for something more than firewood.",
+ "weight": 9071,
+ "to_hit": -8,
+ "color": "red",
+ "symbol": "0",
+ "material": [ "wood" ],
+ "flags": "TRADER_AVOID",
+ "volume": 42,
+ "bashing": 6,
+ "category": "veh_parts",
+ "price": 20000
+ },
+ {
+ "type": "GENERIC",
+ "id": "w_table",
+ "name": "wooden table",
+ "description": "A crude wooden table.",
+ "weight": 10071,
+ "copy-from": "v_table"
+ },
+ {
+ "type": "GENERIC",
+ "id": "workbench",
+ "name": "workbench",
+ "description": "A sturdy workbench built out of metal. It is perfect for crafting large and heavy things.",
+ "weight": 23000,
+ "material": [ "steel" ],
+ "bashing": 8,
+ "price": 40000,
+ "copy-from": "v_table"
+ }
+]
diff --git a/data/json/items/vehicle/utilities.json b/data/json/items/vehicle/utilities.json
new file mode 100644
index 0000000000000..acf74f1ece94d
--- /dev/null
+++ b/data/json/items/vehicle/utilities.json
@@ -0,0 +1,34 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "washing_machine",
+ "name": "washing machine",
+ "description": "A very small washing machine designed for use in vehicles.",
+ "weight": 31752,
+ "to_hit": -8,
+ "color": "light_blue",
+ "symbol": "]",
+ "material": "steel",
+ "volume": "125 L",
+ "bashing": 8,
+ "category": "veh_parts",
+ "price": 60000
+ },
+ {
+ "type": "GENERIC",
+ "copy-from": "washing_machine",
+ "id": "minifridge",
+ "name": "minifridge",
+ "description": "A very small fridge for keeping food cool. Provides some insulation from outside weather.",
+ "insulation": 2
+ },
+ {
+ "type": "GENERIC",
+ "id": "minifreezer",
+ "name": "minifreezer",
+ "description": "Compact version of a chest freezer, designed as a mobile solution for freezing food. Provides insulation from the elements.",
+ "price": 70000,
+ "insulation": 4,
+ "copy-from": "minifridge"
+ }
+]
diff --git a/data/json/items/vehicle/wheel.json b/data/json/items/vehicle/wheel.json
index ea3df1935781a..e4e4f3481ce30 100644
--- a/data/json/items/vehicle/wheel.json
+++ b/data/json/items/vehicle/wheel.json
@@ -86,20 +86,10 @@
},
{
"id": "wheel_bicycle_or",
+ "copy-from": "wheel_bicycle",
"type": "WHEEL",
- "category": "veh_parts",
"name": "off-road 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
+ "description": "A wide, studded, bicycle wheel intended for off-road biking."
},
{
"id": "wheel_caster",
@@ -172,20 +162,10 @@
},
{
"id": "wheel_motorbike_or",
+ "copy-from": "wheel_motorbike",
"type": "WHEEL",
- "category": "veh_parts",
"name": "off-road 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
+ "description": "A motorbike wheel, studded for improved off-road performance."
},
{
"id": "hd_steel_drum",
@@ -276,20 +256,10 @@
},
{
"id": "wheel_wide_or",
+ "copy-from": "wheel_wide",
"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
+ "description": "A wide wheel. \\o/ This wide. It's studded to provide better grip off-road at the cost of some performance on pavement."
},
{
"id": "wheel_wood",
diff --git a/data/json/items/vehicle_parts.json b/data/json/items/vehicle_parts.json
index 8e0741e96593b..dcd75559cacfa 100644
--- a/data/json/items/vehicle_parts.json
+++ b/data/json/items/vehicle_parts.json
@@ -1,455 +1,4 @@
[
- {
- "type": "GENERIC",
- "id": "foldframe",
- "name": "foldable-light frame",
- "description": "A small foldable lightweight frame made from pipework.",
- "weight": 5000,
- "to_hit": -3,
- "color": "light_gray",
- "symbol": "]",
- "material": [ "steel" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 40,
- "bashing": 15,
- "category": "veh_parts",
- "price": 4000
- },
- {
- "type": "GENERIC",
- "id": "foldwoodframe",
- "name": "foldable wooden frame",
- "description": "A small foldable frame made from scrap wood.",
- "weight": 4000,
- "to_hit": -3,
- "color": "brown",
- "symbol": "]",
- "material": [ "wood" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 50,
- "bashing": 15,
- "category": "veh_parts",
- "price": 4000
- },
- {
- "type": "GENERIC",
- "id": "xlframe",
- "name": "extra-light frame",
- "description": "A small lightweight frame made from pipework. Useful for crafting.",
- "weight": 5000,
- "to_hit": -3,
- "color": "light_gray",
- "symbol": "]",
- "material": [ "aluminum" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 40,
- "bashing": 15,
- "category": "veh_parts",
- "price": 4000
- },
- {
- "type": "GENERIC",
- "id": "frame",
- "name": "steel frame",
- "description": "A large frame made of steel. Useful for crafting.",
- "weight": 20000,
- "to_hit": -5,
- "color": "cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 60,
- "bashing": 20,
- "category": "veh_parts",
- "price": 5500
- },
- {
- "type": "GENERIC",
- "id": "basket",
- "name": "wire basket",
- "description": "A large wire basket from a shopping cart.",
- "weight": 6000,
- "to_hit": -5,
- "color": "cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 90,
- "bashing": 20,
- "category": "veh_parts",
- "price": 10000,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "folding_basket",
- "name": "folding wire basket",
- "description": "A large wire basket from a shopping cart, modified to be foldable.",
- "weight": 7000,
- "to_hit": -5,
- "color": "cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 90,
- "bashing": 20,
- "category": "veh_parts",
- "price": 10000,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "bike_basket",
- "name": "bike basket",
- "description": "A simple bike basket. It is small and foldable.",
- "weight": 1200,
- "to_hit": -5,
- "color": "cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 20,
- "bashing": 20,
- "category": "veh_parts",
- "price": 3500,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "frame_wood",
- "name": "wooden frame",
- "description": "A large frame made of wood. Useful for crafting.",
- "weight": 8000,
- "to_hit": -5,
- "color": "brown",
- "symbol": "]",
- "material": [ "wood" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 60,
- "bashing": 16,
- "cutting": 4,
- "category": "veh_parts",
- "price": 3500
- },
- {
- "type": "GENERIC",
- "id": "frame_wood_light",
- "name": "light wooden frame",
- "description": "A small frame made of few pieces of wood, held together by rope. Useful for crafting.",
- "weight": 4000,
- "to_hit": -5,
- "color": "brown",
- "symbol": "]",
- "material": [ "wood" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 35,
- "bashing": 8,
- "cutting": 1,
- "category": "veh_parts",
- "price": 1000
- },
- {
- "type": "GENERIC",
- "id": "hdframe",
- "name": "heavy duty frame",
- "description": "A large, reinforced steel frame, used in military vehicle construction.",
- "weight": 100000,
- "to_hit": -6,
- "color": "green",
- "symbol": "]",
- "material": [ "hardsteel", "steel" ],
- "techniques": [ "DEF_DISARM" ],
- "volume": 80,
- "bashing": 25,
- "category": "veh_parts",
- "price": 12000,
- "qualities": [ [ "ANVIL", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "seat",
- "name": "seat",
- "description": "A soft car seat covered with leather.",
- "weight": 9071,
- "to_hit": -4,
- "color": "red",
- "symbol": "0",
- "material": [ "leather", "aluminum" ],
- "volume": 30,
- "bashing": 4,
- "category": "veh_parts",
- "price": 25000
- },
- {
- "type": "GENERIC",
- "id": "v_table",
- "name": "fancy table",
- "description": "A very fancy table from a very fancy RV. If times were better it might be useful for something more than firewood.",
- "weight": 9071,
- "to_hit": -8,
- "color": "red",
- "symbol": "0",
- "material": [ "wood" ],
- "flags": "TRADER_AVOID",
- "volume": 42,
- "bashing": 6,
- "category": "veh_parts",
- "price": 20000
- },
- {
- "type": "GENERIC",
- "id": "w_table",
- "name": "wooden table",
- "description": "A crude wooden table.",
- "weight": 10071,
- "to_hit": -8,
- "color": "red",
- "symbol": "0",
- "material": [ "wood" ],
- "volume": 42,
- "bashing": 6,
- "category": "veh_parts",
- "price": 20000
- },
- {
- "type": "GENERIC",
- "id": "workbench",
- "name": "workbench",
- "description": "A sturdy workbench built out of metal. It is perfect for crafting large and heavy things.",
- "weight": 23000,
- "to_hit": -8,
- "color": "red",
- "symbol": "0",
- "material": [ "steel" ],
- "volume": 42,
- "bashing": 8,
- "category": "veh_parts",
- "price": 40000
- },
- {
- "type": "GENERIC",
- "id": "saddle",
- "name": "saddle",
- "description": "A leather-covered seat designed to be straddled.",
- "weight": 300,
- "to_hit": -4,
- "color": "red",
- "symbol": "0",
- "material": [ "plastic", "aluminum" ],
- "volume": 5,
- "bashing": 2,
- "category": "veh_parts",
- "price": 2500
- },
- {
- "type": "GENERIC",
- "id": "muffler",
- "name": "muffler",
- "description": "A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting recipes.",
- "weight": 9525,
- "to_hit": -10,
- "color": "light_gray",
- "symbol": "/",
- "material": [ "steel" ],
- "techniques": [ "WBLOCK_1" ],
- "volume": 14,
- "bashing": 19,
- "category": "veh_parts",
- "price": 3000,
- "qualities": [ [ "HAMMER", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "vehicle_controls",
- "name": "vehicle controls",
- "name_plural": "sets of vehicle controls",
- "description": "A set of various vehicle controls. Useful for crafting.",
- "weight": 6000,
- "to_hit": -4,
- "color": "light_cyan",
- "symbol": "$",
- "material": [ "plastic", "steel" ],
- "volume": 12,
- "bashing": 2,
- "category": "veh_parts",
- "price": 40000
- },
- {
- "type": "GENERIC",
- "id": "vehicle_dashboard",
- "name": "dashboard",
- "description": "A vehicle instrument panel with various gauges and switches. Useful for crafting.",
- "weight": 2721,
- "to_hit": -2,
- "color": "cyan",
- "symbol": "$",
- "material": [ "plastic", "steel" ],
- "volume": 40,
- "bashing": 1,
- "category": "veh_parts",
- "price": 8000
- },
- {
- "type": "GENERIC",
- "id": "electronics_controls",
- "name": "electronics control unit",
- "description": "A vehicle instrument panel with various gauges and switches. Useful for crafting.",
- "weight": 1311,
- "to_hit": -4,
- "color": "cyan",
- "symbol": "$",
- "material": [ "plastic" ],
- "volume": 6,
- "bashing": 1,
- "category": "veh_parts",
- "price": 4000
- },
- {
- "type": "GENERIC",
- "id": "motor",
- "name": "electric motor",
- "description": "A powerful electric motor. Useful for crafting.",
- "weight": 27200,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "steel" ],
- "volume": "9700 ml",
- "bashing": 4,
- "category": "veh_parts",
- "price": 12000
- },
- {
- "type": "GENERIC",
- "id": "motor_enhanced",
- "name": "enhanced electric motor",
- "description": "A very powerful and yet lightweight electric motor. Useful for crafting.",
- "weight": 81600,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "superalloy" ],
- "volume": "2650 ml",
- "bashing": 4,
- "category": "veh_parts",
- "price": 68000
- },
- {
- "type": "GENERIC",
- "id": "motor_super",
- "name": "super electric motor",
- "description": "The most powerfull electric motor on the market. Useful for crafting.",
- "weight": 133800,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "steel" ],
- "volume": "111 L",
- "bashing": 4,
- "category": "veh_parts",
- "price": 80000
- },
- {
- "type": "GENERIC",
- "id": "motor_large",
- "name": "large electric motor",
- "description": "A large and very powerful electric motor. Useful for crafting.",
- "weight": 68000,
- "to_hit": -3,
- "color": "light_cyan",
- "symbol": ":",
- "material": [ "steel" ],
- "volume": "1740 ml",
- "bashing": 9,
- "category": "veh_parts",
- "price": 22000
- },
- {
- "type": "GENERIC",
- "id": "motor_small",
- "name": "small electric motor",
- "description": "A small electric motor. Useful for crafting.",
- "weight": 7500,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "steel" ],
- "volume": "5 L",
- "bashing": 1,
- "category": "veh_parts",
- "price": 2000
- },
- {
- "type": "GENERIC",
- "id": "motor_tiny",
- "name": "tiny electric motor",
- "description": "A tiny electric motor. Useful for crafting.",
- "weight": 5800,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "steel", "plastic" ],
- "volume": "500 ml",
- "category": "veh_parts",
- "price": 2000
- },
- {
- "type": "GENERIC",
- "id": "foot_crank",
- "name": "foot crank",
- "description": "The pedal and gear assembly from a bicycle.",
- "weight": 816,
- "to_hit": -2,
- "color": "light_gray",
- "symbol": ":",
- "material": [ "steel" ],
- "volume": 2,
- "bashing": 8,
- "cutting": 2,
- "category": "veh_parts",
- "price": 9000
- },
- {
- "type": "GENERIC",
- "id": "hand_rims",
- "name": "set of hand rims",
- "name_plural": "sets of hand rims",
- "description": "Hand rims for use on a wheelchair.",
- "weight": 816,
- "to_hit": -1,
- "color": "light_gray",
- "symbol": ":",
- "material": [ "steel" ],
- "volume": 2,
- "bashing": 10,
- "category": "veh_parts",
- "price": 9000
- },
- {
- "type": "GENERIC",
- "id": "headlight_reinforced",
- "name": "reinforced headlight",
- "description": "A vehicle headlight with a cage built around it to protect it from damage without reducing its effectiveness.",
- "weight": 1200,
- "to_hit": -2,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "steel", "plastic" ],
- "volume": 4,
- "bashing": 4,
- "category": "veh_parts",
- "price": 40000
- },
- {
- "type": "GENERIC",
- "id": "wide_headlight_reinforced",
- "name": "reinforced wide-angle headlight",
- "description": "A wide-angle vehicle headlight with a cage built around it to protect it from damage without reducing its effectiveness.",
- "weight": 1400,
- "to_hit": -2,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "steel", "plastic" ],
- "volume": 5,
- "bashing": 4,
- "category": "veh_parts",
- "price": 40000
- },
{
"type": "GENERIC",
"id": "it_battery_mount",
@@ -467,379 +16,37 @@
"price": 1000
},
{
- "type": "TOOL",
- "id": "black_box",
- "category": "other",
- "name": "military black box",
- "name_plural": "military black boxes",
- "description": "This is a black box, seemingly pulled from some sort of military vehicle wreckage. If you can find a system to analyze this you may find something of interest.",
- "weight": 4535,
- "volume": "2 L",
- "price": 0,
- "to_hit": -1,
- "bashing": 4,
- "material": [ "steel" ],
- "symbol": ";",
- "color": "light_gray"
- },
- {
- "type": "TOOL",
- "id": "minireactor",
- "name": "minireactor",
- "description": "A small portable plutonium reactor. Handle with great care!",
- "weight": 27215,
- "to_hit": -4,
- "color": "light_cyan",
- "symbol": ":",
- "material": [ "superalloy", "ceramic" ],
- "volume": "100 L",
- "bashing": 7,
- "category": "veh_parts",
- "price": 90000,
- "ammo": "plutonium",
- "max_charges": 10000
- },
- {
- "type": "GENERIC",
- "id": "solar_panel",
- "name": "solar panel",
- "description": "Electronic device that can convert solar radiation into electric power. Useful for a vehicle.",
- "weight": 14000,
- "to_hit": -4,
- "color": "yellow",
- "symbol": "]",
- "material": [ "glass" ],
- "volume": 12,
- "bashing": 1,
- "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": "xl_wind_turbine",
- "name": "large wind turbine",
- "looks_like": "wind_turbine",
- "description": "A large turbine that can convert wind into electric power.",
- "weight": 150000,
- "to_hit": -7,
- "color": "yellow",
- "symbol": "Y",
- "material": [ "steel" ],
- "volume": 240,
- "bashing": 1,
- "category": "veh_parts",
- "price": 150000
- },
- {
- "type": "GENERIC",
- "id": "water_wheel",
- "name": "water wheel",
- "description": "A water wheel. Will slowly recharge the vehicle's electrical power when built over shallow moving water.",
- "weight": 300000,
- "to_hit": -5,
- "color": "yellow",
- "symbol": "*",
- "material": [ "wood" ],
- "volume": 120,
- "bashing": 3,
- "category": "veh_parts",
- "price": 120000
- },
- {
- "type": "GENERIC",
- "id": "xl_water_wheel",
- "name": "large water wheel",
- "description": "A large water wheel with wooden supports. Will recharge the vehicle's electrical power when built over shallow moving water.",
- "weight": 600000,
- "to_hit": -5,
- "color": "yellow",
- "symbol": "o",
- "material": [ "wood" ],
- "volume": 240,
- "bashing": 3,
- "category": "veh_parts",
- "price": 200000
- },
- {
- "type": "GENERIC",
- "id": "reinforced_solar_panel",
- "name": "reinforced solar panel",
- "description": "A solar panel that has been covered with a pane of reinforced glass to protect the delicate solar cells from zombies or errant baseballs. The glass causes this panel to produce slightly less power than a normal panel. Useful for a vehicle.",
- "weight": 24153,
- "to_hit": -4,
- "color": "light_blue",
- "symbol": "]",
- "material": [ "glass", "steel" ],
- "volume": 26,
- "bashing": 1,
- "category": "veh_parts",
- "price": 120000
- },
- {
- "type": "GENERIC",
- "id": "solar_panel_v2",
- "name": "upgraded solar panel",
- "description": "Electronic device that can convert solar radiation into electric power. This panel has been upgraded to convert more sunlight into power. Useful for a vehicle.",
- "weight": 18494,
- "to_hit": -4,
- "color": "yellow",
- "symbol": "]",
- "material": [ "glass" ],
- "volume": 18,
- "bashing": 1,
- "category": "veh_parts",
- "price": 900
- },
- {
- "type": "GENERIC",
- "id": "reinforced_solar_panel_v2",
- "name": "upgraded reinforced solar panel",
- "description": "An upgraded solar panel that has been covered with a pane of reinforced glass to protect the delicate solar cells from zombies or errant baseballs. The glass causes this panel to produce slightly less power than a normal upgraded panel. Useful for a vehicle.",
- "weight": 29062,
- "to_hit": -5,
- "color": "light_blue",
- "symbol": "]",
- "material": [ "glass", "steel" ],
- "volume": 30,
- "bashing": 1,
- "category": "veh_parts",
- "price": 900
- },
- {
- "type": "GENERIC",
- "id": "solar_panel_v3",
- "name": "quantum solar panel",
- "description": "This solar panel is obviously cutting-edge technology and given where you found it, should probably provide a LOT of power. It's covered in strange-looking material, but the covering looks rather fragile; it doesn't look like it could support a reinforcing sheet, either.",
- "weight": 14000,
- "to_hit": -5,
- "color": "yellow",
- "symbol": "]",
- "material": [ "glass", "steel" ],
- "volume": 18,
- "bashing": 1,
- "category": "veh_parts",
- "price": 9000
- },
- {
- "type": "GENERIC",
- "id": "minifridge",
- "name": "minifridge",
- "description": "A very small fridge for keeping food cool. Provides some insulation from outside weather.",
- "weight": 31752,
- "to_hit": -8,
- "color": "light_blue",
- "symbol": "]",
- "material": "steel",
- "volume": "125 L",
- "bashing": 8,
- "category": "veh_parts",
- "price": 60000,
- "insulation": 2
- },
- {
- "type": "GENERIC",
- "id": "minifreezer",
- "name": "minifreezer",
- "description": "Compact version of a chest freezer, designed as a mobile solution for freezing food. Provides insulation from the elements.",
- "weight": 31752,
- "to_hit": -8,
- "color": "light_blue",
- "symbol": "]",
- "material": "steel",
- "volume": "125 L",
- "bashing": 8,
- "category": "veh_parts",
- "price": 70000,
- "insulation": 4
- },
- {
- "type": "GENERIC",
- "id": "washing_machine",
- "name": "washing machine",
- "description": "A very small washing machine designed for use in vehicles.",
- "weight": 31752,
- "to_hit": -8,
- "color": "light_blue",
- "symbol": "]",
- "material": "steel",
- "volume": "125 L",
- "bashing": 8,
- "category": "veh_parts",
- "price": 60000
- },
- {
- "type": "GENERIC",
- "id": "solar_cell",
- "name": "solar cell",
- "description": "A small electronic device that can convert solar radiation into electric power. Useful for crafting.",
- "weight": 500,
- "to_hit": -4,
- "color": "yellow",
- "symbol": ";",
- "material": [ "glass" ],
- "volume": 1,
- "bashing": 1,
- "category": "spare_parts",
- "price": 5000
- },
- {
- "type": "GENERIC",
- "id": "sheet_metal",
- "name": "sheet metal",
- "description": "A thin sheet of metal.",
- "//": "Roughly in the 70cm×70cm×1.5mm to 1m×1m×0.75mm range. Has to be folded / rolled up when in inventory, so 75% density compared to solid block.",
- "weight": 6000,
- "to_hit": -2,
- "color": "light_cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "volume": 4,
- "bashing": 5,
- "category": "spare_parts",
- "price": 6000,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "sheet_metal_lit",
- "name": "wired sheet metal",
- "description": "Sheet metal that has had light housing wired into it.",
- "weight": 6200,
- "to_hit": -2,
- "color": "light_cyan",
- "symbol": "]",
- "material": [ "steel", "plastic" ],
- "volume": 5,
- "bashing": 5,
- "category": "veh_parts",
- "price": 7500
- },
- {
- "type": "GENERIC",
- "id": "wood_plate",
- "name": "wooden armor kit",
- "description": "A bundle of two by fours prepared to be used as vehicle armor.",
- "weight": 5600,
- "to_hit": -8,
- "color": "brown",
- "symbol": "]",
- "material": [ "wood" ],
- "volume": 12,
- "bashing": 10,
- "category": "veh_parts",
- "price": 12000
- },
- {
- "type": "GENERIC",
- "id": "steel_plate",
- "name": "steel plating",
- "description": "A piece of armor plating made of steel.",
- "weight": 12880,
- "to_hit": -1,
- "color": "light_cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "volume": 12,
- "bashing": 6,
- "category": "veh_parts",
- "price": 12000,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "alloy_plate",
- "name": "superalloy plating",
- "description": "A piece of armor plating made of sturdy superalloy.",
- "weight": 10800,
- "to_hit": -1,
- "color": "light_cyan",
- "symbol": "]",
- "material": [ "superalloy" ],
- "volume": 12,
- "bashing": 6,
- "category": "veh_parts",
- "price": 18500,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "alloy_sheet",
- "name": "superalloy sheet",
- "description": "A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable.",
- "weight": 900,
- "to_hit": -2,
- "color": "light_cyan",
- "symbol": ",",
- "material": [ "superalloy" ],
- "volume": 2,
- "category": "veh_parts",
- "price": 8500,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "spiked_plate",
- "name": "spiked plating",
- "description": "A piece of armor plating made of steel. It is covered with menacing spikes.",
- "weight": 12240,
- "to_hit": -1,
- "color": "light_cyan",
- "symbol": "]",
- "material": [ "steel" ],
- "volume": 14,
- "bashing": 6,
- "cutting": 3,
- "flags": [ "STAB" ],
- "category": "veh_parts",
- "price": 18500,
- "qualities": [ [ "COOK", 1 ] ]
- },
- {
- "type": "GENERIC",
- "id": "hard_plate",
- "name": "hard plating",
- "description": "A piece of very thick armor plating made of steel.",
- "weight": 32640,
+ "type": "TOOL",
+ "id": "black_box",
+ "category": "other",
+ "name": "military black box",
+ "name_plural": "military black boxes",
+ "description": "This is a black box, seemingly pulled from some sort of military vehicle wreckage. If you can find a system to analyze this you may find something of interest.",
+ "weight": 4535,
+ "volume": "2 L",
+ "price": 0,
"to_hit": -1,
- "color": "light_cyan",
- "symbol": "]",
- "material": [ "hardsteel" ],
- "volume": 12,
- "bashing": 6,
- "category": "veh_parts",
- "price": 16000,
- "qualities": [ [ "COOK", 1 ], [ "ANVIL", 1 ] ]
+ "bashing": 4,
+ "material": [ "steel" ],
+ "symbol": ";",
+ "color": "light_gray"
},
{
- "type": "GENERIC",
- "id": "mil_plate",
- "name": "military composite plating",
- "description": "A thick sheet of military grade armor, best bullet stopper you can stick on a vehicle.",
- "weight": 16500,
- "to_hit": -1,
- "color": "green",
- "symbol": "]",
- "material": [ "hardsteel", "ceramic" ],
- "volume": 12,
- "bashing": 8,
+ "type": "TOOL",
+ "id": "minireactor",
+ "name": "minireactor",
+ "description": "A small portable plutonium reactor. Handle with great care!",
+ "weight": 27215,
+ "to_hit": -4,
+ "color": "light_cyan",
+ "symbol": ":",
+ "material": [ "superalloy", "ceramic" ],
+ "volume": "100 L",
+ "bashing": 7,
"category": "veh_parts",
- "price": 16000,
- "qualities": [ [ "COOK", 1 ] ]
+ "price": 90000,
+ "ammo": "plutonium",
+ "max_charges": 10000
},
{
"type": "GENERIC",
@@ -870,115 +77,6 @@
"category": "veh_parts",
"price": 80000
},
- {
- "type": "GENERIC",
- "id": "beeper",
- "name": "back-up beeper",
- "description": "This is a safety device intended to warn passersby of a vehicle moving in reverse, but the usage of it now seems terribly unwise.",
- "weight": 360,
- "symbol": ";",
- "color": "light_gray",
- "material": [ "plastic", "aluminum" ],
- "volume": 1,
- "to_hit": -1,
- "bashing": 2,
- "category": "veh_parts",
- "price": 6000
- },
- {
- "type": "GENERIC",
- "id": "light_emergency_red",
- "name": "emergency vehicle light (red)",
- "name_plural": "emergency vehicle lights (red)",
- "description": "One of the red-colored lights from the top of an emergency services vehicle. When turned on, the lights rotate to shine in all directions.",
- "weight": 500,
- "to_hit": 1,
- "color": "red",
- "symbol": ";",
- "material": [ "plastic", "steel" ],
- "volume": 4,
- "bashing": 1,
- "category": "veh_parts",
- "price": 40000
- },
- {
- "type": "GENERIC",
- "id": "light_emergency_blue",
- "name": "emergency vehicle light (blue)",
- "name_plural": "emergency vehicle lights (blue)",
- "description": "One of the blue-colored lights from the top of an emergency services vehicle. When turned on, the lights rotate to shine in all directions.",
- "weight": 500,
- "to_hit": 1,
- "color": "blue",
- "symbol": ";",
- "material": [ "plastic", "steel" ],
- "volume": 4,
- "bashing": 1,
- "category": "veh_parts",
- "price": 40000
- },
- {
- "type": "GENERIC",
- "id": "cargo_rack",
- "name": "cargo carrier",
- "description": "A heavy frame outfitted with tie-downs and attachment points for carrying cargo.",
- "weight": 80000,
- "to_hit": -4,
- "color": "cyan",
- "symbol": "]",
- "material": [ "steel", "plastic" ],
- "volume": 200,
- "bashing": 2,
- "category": "veh_parts",
- "price": 40000
- },
- {
- "id": "cargo_aisle",
- "type": "GENERIC",
- "name": "floor trunk",
- "description": "A section of flooring with a cargo-space beneath, and a hinged door for access.",
- "weight": 18000,
- "color": "cyan",
- "symbol": "]",
- "volume": 200,
- "bashing": 2,
- "material": [ "steel", "plastic" ],
- "category": "veh_parts",
- "price": 20000
- },
- {
- "id": "livestock_carrier",
- "type": "GENERIC",
- "name": "livestock carrier",
- "description": "A heavy frame outfitted with tie-downs and attachment points for carrying cargo, with additional railings to keep a large animal in place. It is meant to hold large animals for transport. Use it on a suitable animal to capture, use it on an empty tile to release.",
- "weight": 96000,
- "volume": 250,
- "price": 48000,
- "category": "veh_parts",
- "material": [ "steel", "plastic" ],
- "symbol": "]",
- "color": "light_gray",
- "looks_like": "cargo_rack",
- "properties": [ [ "monster_size_capacity", "HUGE" ] ],
- "use_action": "CAPTURE_MONSTER_VEH",
- "flags": [ "TRADER_AVOID", "USE_PART_ITEM" ]
- },
- {
- "id": "animal_locker",
- "type": "GENERIC",
- "name": "animal locker",
- "description": "A locker used to contain animals safely during transportation if installed properly. There is room for animal food and other animal care goods. It is meant to hold medium or smaller animals for transport. Use it on a suitable animal to capture, use it on an empty tile to release.",
- "weight": 10000,
- "volume": 125,
- "price": 16000,
- "category": "veh_parts",
- "material": [ "steel", "plastic" ],
- "symbol": "]",
- "color": "light_gray",
- "properties": [ [ "monster_size_capacity", "MEDIUM" ] ],
- "use_action": "CAPTURE_MONSTER_VEH",
- "flags": [ "TRADER_AVOID", "USE_PART_ITEM" ]
- },
{
"id": "bike_rack",
"type": "GENERIC",
@@ -994,37 +92,6 @@
"looks_like": "foldframe",
"flags": [ "TRADER_AVOID" ]
},
- {
- "type": "GENERIC",
- "id": "floodlight",
- "name": "floodlight",
- "description": "A large and heavy light designed to illuminate wide areas.",
- "weight": 2500,
- "to_hit": 1,
- "color": "white",
- "symbol": ";",
- "material": [ "plastic", "steel" ],
- "volume": 8,
- "bashing": 5,
- "category": "veh_parts",
- "price": 90000
- },
- {
- "type": "GENERIC",
- "id": "directed_floodlight",
- "name": "directed floodlight",
- "description": "A large and heavy light designed to illuminate a wide area in a half-circular cone.",
- "weight": 2500,
- "to_hit": 1,
- "color": "white",
- "symbol": ";",
- "material": [ "plastic", "steel" ],
- "volume": 8,
- "bashing": 5,
- "category": "veh_parts",
- "price": 90000,
- "looks_like": "floodlight"
- },
{
"type": "GENERIC",
"id": "recharge_station",
@@ -1040,147 +107,6 @@
"category": "veh_parts",
"price": 90000
},
- {
- "type": "GENERIC",
- "id": "stereo",
- "name": "stereo system",
- "description": "A stereo system with speakers. It is capable of being hooked up to a vehicle.",
- "weight": 800,
- "to_hit": -2,
- "color": "red",
- "symbol": "&",
- "material": [ "steel" ],
- "volume": 14,
- "category": "veh_parts",
- "price": 800
- },
- {
- "type": "GENERIC",
- "id": "chimes",
- "name": "chime loudspeakers",
- "name_plural": "chime loudspeakers",
- "description": "A stereo system with loudspeakers and a built-in set of simple melodies that it will play. Commonly used by ice cream trucks to draw the attention of children in the days when children wanted ice cream more than brains.",
- "weight": 2600,
- "to_hit": -2,
- "color": "blue",
- "symbol": "&",
- "material": [ "steel" ],
- "volume": 16,
- "category": "veh_parts",
- "price": 5000
- },
- {
- "type": "TOOL",
- "id": "jumper_cable",
- "name": "jumper cable",
- "description": "A jumper cable, like you've seen many times before: it's a short multi-stranded copper cable with power leads on either end, whose purpose is to share power between vehicles.",
- "to_hit": 1,
- "color": "light_blue",
- "symbol": "&",
- "material": [ "steel", "plastic" ],
- "volume": 2,
- "weight": 75,
- "bashing": 2,
- "category": "tools",
- "price": 1,
- "max_charges": 3,
- "initial_charges": 3,
- "use_action": "CABLE_ATTACH",
- "flags": [ "CABLE_SPOOL" ]
- },
- {
- "type": "TOOL",
- "id": "jumper_cable_heavy",
- "name": "heavy-duty cable",
- "description": "A long, thick, heavy-duty cable with power leads on either end. It looks like you could use it to hook up two vehicles to each other, though you expect the power loss would be noticeable.",
- "to_hit": 1,
- "color": "light_blue",
- "symbol": "&",
- "material": [ "steel", "plastic" ],
- "volume": 6,
- "weight": 750,
- "bashing": 2,
- "category": "tools",
- "price": 1,
- "max_charges": 20,
- "initial_charges": 20,
- "use_action": "CABLE_ATTACH",
- "flags": [ "CABLE_SPOOL" ]
- },
- {
- "type": "TOOL",
- "id": "jumper_cable_debug",
- "name": "shiny cable",
- "description": "This is the cable of the gods: 50 meters long, no power loss, light as a feather and fits in a matchbook. You're sure this wasn't supposed to exist, and the way it shimmers makes you uneasy.",
- "weight": 1,
- "to_hit": 1,
- "color": "light_blue",
- "symbol": "&",
- "material": [ "steel", "plastic" ],
- "volume": 0,
- "bashing": 2,
- "category": "tools",
- "price": 1,
- "max_charges": 50,
- "initial_charges": 50,
- "use_action": "CABLE_ATTACH",
- "flags": [ "CABLE_SPOOL" ]
- },
- {
- "type": "GENERIC",
- "id": "chitin_plate",
- "symbol": "]",
- "color": "yellow",
- "name": "chitin armor kit",
- "description": "Light chitin plating made for a vehicle.",
- "price": 1200,
- "material": [ "chitin" ],
- "weight": 2000,
- "volume": 22,
- "bashing": 8,
- "to_hit": -4,
- "category": "veh_parts"
- },
- {
- "type": "GENERIC",
- "id": "acidchitin_plate",
- "copy-from": "chitin_plate",
- "name": "biosilicified chitin armor kit",
- "description": "Durable silica-coated chitin plating made for a vehicle.",
- "material": [ "acidchitin" ],
- "proportional": { "price": 1.333, "weight": 1.2, "volume": 1.18, "bashing": 1.25 }
- },
- {
- "type": "GENERIC",
- "id": "bone_plate",
- "symbol": "]",
- "color": "white",
- "name": "bone armor kit",
- "description": "Bone plating made for a vehicle.",
- "price": 1200,
- "material": [ "bone" ],
- "weight": 4000,
- "volume": 38,
- "bashing": 8,
- "to_hit": -4,
- "category": "veh_parts"
- },
- {
- "type": "GENERIC",
- "id": "drive_by_wire_controls",
- "name": "drive by wire controls",
- "name_plural": "sets of drive by wire controls",
- "description": "Fully electronic vehicle control system. You could control it remotely if you had proper tools.",
- "weight": 3000,
- "to_hit": -4,
- "color": "red",
- "symbol": "$",
- "material": [ "plastic", "steel" ],
- "volume": 15,
- "bashing": 1,
- "category": "veh_parts",
- "price": 200000
- },
{
"type": "GENERIC",
"id": "mountable_heater",
@@ -1197,6 +123,22 @@
"category": "veh_parts",
"price": 20000
},
+ {
+ "type": "GENERIC",
+ "id": "mountable_cooler",
+ "name": "vehicle cooler",
+ "name_plural": "vehicle coolers",
+ "description": "A vehicle-mounted area cooler.",
+ "weight": 12500,
+ "to_hit": -4,
+ "color": "light_cyan",
+ "symbol": "C",
+ "material": [ "steel" ],
+ "volume": 30,
+ "bashing": 12,
+ "category": "veh_parts",
+ "price": 20000
+ },
{
"type": "GENERIC",
"id": "camera_control",
@@ -1225,139 +167,6 @@
"category": "veh_parts",
"price": 10000
},
- {
- "type": "GENERIC",
- "id": "robot_controls",
- "name": "robot driving unit",
- "name_plural": "robot driving units",
- "description": "A set of servos, microcontrollers and other devices, together capable of driving an unmanned vehicle. Its AI is not functional, but it should still have some sort of maintenance mode.",
- "weight": 2000,
- "to_hit": -4,
- "color": "white",
- "symbol": "&",
- "material": [ "plastic", "steel" ],
- "volume": 20,
- "bashing": 1,
- "category": "veh_parts",
- "price": 20000
- },
- {
- "type": "GENERIC",
- "id": "v_scoop_item",
- "name": "vehicle scoop",
- "symbol": "u",
- "color": "light_gray",
- "name_plural": "vehicle scoops",
- "description": "An assembly of motors and sheet metal that allows a vehicle to clean the road surface by removing debris and contaminants.",
- "weight": 22666,
- "bashing": 1,
- "material": "steel",
- "category": "veh_parts",
- "price": 3500,
- "volume": 28
- },
- {
- "type": "GENERIC",
- "id": "v_planter_item",
- "symbol": "8",
- "name": "seed drill",
- "name_plural": "seed drills",
- "color": "light_gray",
- "description": "An assembly of tubes, spikes, and wheels, that when dragged along the ground, allows a vehicle to plant seeds automatically in suitably tilled land.",
- "weight": 22666,
- "bashing": 1,
- "material": [ "steel", "plastic" ],
- "category": "veh_parts",
- "price": 3500,
- "volume": 28
- },
- {
- "type": "GENERIC",
- "id": "v_reaper_item",
- "symbol": "/",
- "name": "reaper",
- "name_plural": "reapers",
- "color": "light_gray",
- "description": "An assembly of a blade, wheels, and a small lever for engaging/disengaging used to cut down crops prior to picking them up.",
- "weight": 22666,
- "bashing": 1,
- "material": [ "steel", "plastic" ],
- "category": "veh_parts",
- "price": 3500,
- "volume": 28
- },
- {
- "type": "GENERIC",
- "id": "v_reaper_item_advanced",
- "symbol": "/",
- "name": "advanced reaper",
- "name_plural": "advanced reapers",
- "color": "light_gray",
- "description": "An advanced electronic device used to cut down, collect and store crops.",
- "weight": 25000,
- "bashing": 1,
- "material": [ "steel", "plastic" ],
- "category": "veh_parts",
- "price": 50000,
- "volume": 36
- },
- {
- "type": "GENERIC",
- "id": "v_planter_item_advanced",
- "symbol": "8",
- "name": "advanced seed drill",
- "name_plural": "advanced seed drills",
- "color": "dark_gray",
- "description": "An assembly of tubes, spikes, and wheels, that when dragged along the ground, allows a vehicle to plant seeds automatically in suitably tilled land. This one is equipped with an electronic control system and will avoid damaging itself when used on untilled land.",
- "weight": 32666,
- "bashing": 1,
- "material": [ "steel", "plastic" ],
- "category": "veh_parts",
- "price": 50000,
- "volume": 29
- },
- {
- "type": "GENERIC",
- "id": "v_plow_item",
- "symbol": "&",
- "name": "plow",
- "name_plural": "plows",
- "color": "dark_gray",
- "description": "A heavy assembly of wheels and steel blades that turn up the ground.",
- "weight": 32666,
- "bashing": 1,
- "material": [ "steel", "plastic" ],
- "category": "veh_parts",
- "price": 3500,
- "volume": 29
- },
- {
- "id": "car_headlight",
- "type": "GENERIC",
- "name": "car headlight",
- "description": "A vehicle headlight to light up the way.",
- "symbol": ";",
- "color": "white",
- "material": "plastic",
- "category": "veh_parts",
- "weight": 1000,
- "volume": 4,
- "price": 3000
- },
- {
- "id": "car_wide_headlight",
- "type": "GENERIC",
- "name": "wide-angle car headlight",
- "description": "A wide-angle vehicle headlight to light up the way.",
- "symbol": ";",
- "color": "white",
- "material": "plastic",
- "category": "veh_parts",
- "looks_like": "car_headlight",
- "weight": 2000,
- "volume": 5,
- "price": 4000
- },
{
"id": "cargo_lock",
"type": "GENERIC",
diff --git a/data/json/mapgen/animalshelter.json b/data/json/mapgen/animalshelter.json
index 9b09d064625f8..41f5d7bfeba79 100644
--- a/data/json/mapgen/animalshelter.json
+++ b/data/json/mapgen/animalshelter.json
@@ -155,7 +155,8 @@
"-": "t_wall",
".": "t_floor",
":": "t_door_glass_c",
- "=": "t_chainfence_h",
+ "=": "t_privacy_fence",
+ "3": "t_privacy_fencegate_c",
"O": "t_window",
"^": "t_chaingate_c",
"'": "t_dirt",
diff --git a/data/json/mapgen/bar.json b/data/json/mapgen/bar.json
index 85e2891883922..92e81bf8569e0 100644
--- a/data/json/mapgen/bar.json
+++ b/data/json/mapgen/bar.json
@@ -49,7 +49,6 @@
"D": "t_door_locked",
"c": "t_linoleum_gray",
"d": "t_pavement",
- "f": "t_fencegate_c",
"l": "t_linoleum_gray",
"s": "t_linoleum_gray",
"t": "t_linoleum_gray",
@@ -69,6 +68,7 @@
"r": "f_trashcan",
"c": "f_counter",
"d": "f_dumpster",
+ "f": "f_counter_gate_c",
"s": "f_sink",
"x": "f_pool_table",
"q": "f_stool",
diff --git a/data/json/mapgen/cs_private_park.json b/data/json/mapgen/cs_private_park.json
index 7682b9445d98b..081ea073ab7dc 100644
--- a/data/json/mapgen/cs_private_park.json
+++ b/data/json/mapgen/cs_private_park.json
@@ -5,6 +5,7 @@
"om_terrain": [ "cs_private_park" ],
"weight": 1000,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"..xxxxxxxxxxxxxxxxxxxx.,",
".WWWWWWWWW-XX-WWWWWWWWW.",
@@ -54,16 +55,7 @@
"f": "t_grass",
"o": "t_grass",
"p": "t_grass",
- "s": "t_grass",
- "1": "t_floor",
- "2": "t_floor",
- "a": "t_floor",
- "t": "t_floor",
- "B": "t_floor",
- "E": "t_floor",
- "F": "t_floor",
- "L": "t_floor",
- "S": "t_floor"
+ "s": "t_grass"
},
"furniture": {
"~": "f_dahlia",
@@ -103,5 +95,40 @@
],
"place_signs": [ { "signage": "Private Property: No Trespassing", "x": 8, "y": 0 } ]
}
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "cs_private_park_roof",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ........ ",
+ " ........ ",
+ " ........ ",
+ " ........ ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
+ }
}
]
diff --git a/data/json/mapgen/cs_sex_shop.json b/data/json/mapgen/cs_sex_shop.json
index 9fbb5134ffa75..0c07e21ffb570 100644
--- a/data/json/mapgen/cs_sex_shop.json
+++ b/data/json/mapgen/cs_sex_shop.json
@@ -1,76 +1,11 @@
[
- {
- "type": "monstergroup",
- "name": "GROUP_ZOMBIE_SEXSHOP_A",
- "default": "mon_zombie",
- "monsters": [
- { "monster": "mon_zombie_cop", "freq": 250, "cost_multiplier": 2 },
- { "monster": "mon_zombie", "freq": 150, "cost_multiplier": 1 },
- { "monster": "mon_zombie_swimmer", "freq": 100, "cost_multiplier": 2 }
- ]
- },
- {
- "type": "monstergroup",
- "name": "GROUP_ZOMBIE_SEXSHOP_B",
- "default": "mon_zombie",
- "monsters": [ { "monster": "mon_zombie_swimmer", "freq": 500, "cost_multiplier": 2 } ]
- },
- {
- "type": "item_group",
- "id": "ss_merch_1",
- "items": [
- [ "corset", 20 ],
- [ "vibrator", 20 ],
- [ "leather_cat_tail", 20 ],
- [ "leather_cat_ears", 20 ],
- [ "leather_collar", 20 ],
- [ "bondage_mask", 20 ],
- [ "bullwhip", 20 ],
- [ "candle", 20 ],
- [ "condom", 20 ]
- ]
- },
- {
- "type": "item_group",
- "id": "ss_merch_2",
- "items": [ [ "mag_porn", 50 ] ]
- },
- {
- "type": "item_group",
- "id": "ss_merch_3",
- "items": [
- [ "wolfsuit", 15 ],
- [ "dinosuit", 15 ],
- [ "bondage_suit", 10 ],
- [ "chaps_leather", 10 ],
- [ "hot_pants", 20 ],
- [ "hot_pants_leather", 20 ],
- [ "hot_pants_fur", 20 ]
- ]
- },
- {
- "type": "item_group",
- "id": "backroom",
- "items": [
- [ "weed", 10 ],
- [ "coke", 10 ],
- [ "meth", 10 ],
- [ "aspirin", 10 ],
- [ "mag_porn", 10 ],
- [ "purse", 10 ],
- [ "hairpin", 5 ],
- [ "syringe", 10 ],
- [ "blanket", 20 ],
- [ "candle", 20 ],
- [ "pillow", 20 ]
- ]
- },
{
"type": "mapgen",
"method": "json",
"om_terrain": [ "cs_sex_shop" ],
"weight": 1000,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"..y''''yoooy''''y''''y..",
"..y''''yoooy''''y''''y..",
@@ -83,11 +18,11 @@
"..|,,,,c,,,,,,,,,,,,,|..",
"..|,cccc,,cccccccccc,|..",
"..|,,,,,,,,,,,,,,,,,,|..",
- "..|b,,tt,,cccccccccc,|..",
- "..|b,,tt,,,,,,,,,,,,,|..",
- "..|b,,tt,,cccccccccc,|..",
- "..|b,,tt,,,,,,,,,,,,,|..",
- "..|b,,tt,,,,,,,,,,bbb|..",
+ "..|b,____,cccccccccc,|..",
+ "..|b,_tt_,,,,,,,,,,,,|..",
+ "..|b,_tt_,cccccccccc,|..",
+ "..|b,_tt_,,,,,,,,,,,,|..",
+ "..|b,____,,,,,,,,,bbb|..",
"..|b,,,,,,,,,,,,,,,,,|..",
"..|bcccccccc,,,,,,bbb|..",
"..|-------------x----|..",
@@ -95,27 +30,22 @@
"..|BBB,,,,,,x,|------|..",
"..|BBB,,sss,|,x,,,BBB|..",
"..-----------X|h,,BBB|..",
- "..............--------.."
+ "....4ooooooooo--------.."
],
"terrain": {
- ".": "t_grass",
+ ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
",": "t_floor",
- "|": "t_wall",
- "-": "t_wall",
+ "_": "t_carpet_green",
+ "t": "t_carpet_green",
+ "|": "t_wall_r",
+ "-": "t_wall_r",
"X": "t_door_metal_pickable",
"x": "t_door_locked_interior",
"y": "t_pavement_y",
"'": "t_pavement",
"o": "t_sidewalk",
- "C": "t_floor",
- "c": "t_floor",
- "b": "t_floor",
- "t": "t_floor",
- "B": "t_floor",
- "T": "t_floor",
- "s": "t_floor",
- "D": "t_door_c_peep",
- "h": "t_floor"
+ "4": "t_gutter_downspout",
+ "D": "t_door_c_peep"
},
"furniture": {
"C": "f_rack",
@@ -160,5 +90,55 @@
],
"place_monsters": [ { "monster": "GROUP_ZOMBIE_SEXSHOP_A", "x": 12, "y": 14 } ]
}
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "cs_sex_shop_roof",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " |2222222222222222223 ",
+ " |..................3 ",
+ " |...............X..3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |................=.3 ",
+ " |..................3 ",
+ " |..............AA..3 ",
+ " --5---------|......3 ",
+ " -------3 "
+ ],
+ "palettes": [ "roof_palette" ],
+ "place_items": [ { "item": "roof_trash", "x": [ 4, 16 ], "y": [ 7, 20 ], "chance": 50, "repeat": [ 1, 3 ] } ],
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 40 ],
+ [ "roof_4x4_utility", 40 ],
+ [ "roof_6x6_utility", 20 ]
+ ],
+ "x": [ 4, 13 ],
+ "y": [ 9, 12 ]
+ }
+ ]
+ }
}
]
diff --git a/data/json/mapgen/cs_tire_shop.json b/data/json/mapgen/cs_tire_shop.json
index 62f415699ca54..d43c267d81a9c 100644
--- a/data/json/mapgen/cs_tire_shop.json
+++ b/data/json/mapgen/cs_tire_shop.json
@@ -1,108 +1,11 @@
[
- {
- "type": "vehicle_group",
- "id": "oa_vg_ts_vehicles",
- "vehicles": [
- [ "car", 2000 ],
- [ "electric_car", 500 ],
- [ "suv", 800 ],
- [ "suv_electric", 200 ],
- [ "car_mini", 800 ],
- [ "beetle", 500 ],
- [ "motorcycle", 200 ],
- [ "motorcycle_sidecart", 100 ],
- [ "scooter", 200 ],
- [ "scooter_electric", 300 ],
- [ "pickup", 800 ],
- [ "hippie_van", 1000 ]
- ]
- },
- {
- "type": "item_group",
- "id": "oa_ig_ts_tables",
- "items": [
- [ "radio", 30 ],
- [ "rag", 30 ],
- [ "cell_phone", 20 ],
- [ "mag_mechanics", 20 ],
- [ "manual_mechanics", 10 ],
- [ "jack", 60 ],
- [ "jack_small", 60 ],
- [ "jack_makeshift", 30 ],
- [ "wrench", 50 ],
- [ "gloves_work", 30 ],
- [ "glasses_safety", 20 ]
- ]
- },
- {
- "type": "item_group",
- "id": "oa_ig_ts_lockers",
- "items": [
- { "group": "ammo_pocket_batteries_full", "prob": 10 },
- [ "radio", 10 ],
- [ "rag", 30 ],
- [ "jack", 20 ],
- [ "jack_small", 30 ],
- [ "flashlight", 20 ],
- [ "heavy_flashlight", 10 ],
- [ "jumper_cable", 20 ],
- [ "jumper_cable_heavy", 10 ],
- [ "pliers", 10 ],
- [ "battery_motorbike", 10 ],
- [ "battery_car", 10 ],
- [ "stereo", 10 ],
- [ "wrench", 10 ],
- [ "gloves_work", 10 ],
- [ "glasses_safety", 10 ],
- [ "solar_cell", 10 ],
- [ "screwdriver", 15 ],
- [ "superglue", 5 ],
- [ "polisher", 15 ],
- [ "solar_panel", 15 ],
- [ "spare_tire_carrier", 10 ],
- [ "mounted_spare_tire", 10 ]
- ]
- },
- {
- "type": "item_group",
- "id": "oa_ig_ts_crates",
- "items": [
- { "group": "ammo_any_batteries_full", "prob": 10 },
- [ "radio", 10 ],
- [ "rag", 30 ],
- [ "jack", 20 ],
- [ "jack_small", 30 ],
- [ "flashlight", 20 ],
- [ "heavy_flashlight", 10 ],
- [ "jumper_cable", 20 ],
- [ "jumper_cable_heavy", 10 ],
- [ "pliers", 10 ],
- [ "battery_motorbike", 10 ],
- [ "battery_car", 10 ],
- [ "stereo", 10 ],
- [ "wrench", 10 ],
- [ "gloves_work", 10 ],
- [ "glasses_safety", 10 ],
- [ "solar_cell", 10 ],
- [ "screwdriver", 15 ],
- [ "superglue", 5 ],
- [ "polisher", 15 ],
- [ "solar_panel", 15 ],
- [ "spare_tire_carrier", 10 ],
- [ "mounted_spare_tire", 10 ]
- ]
- },
- {
- "type": "item_group",
- "id": "oa_ig_ts_tires",
- "items": [ [ "wheel_small", 30 ], [ "wheel", 30 ], [ "wheel_wide", 20 ] ]
- },
{
"type": "mapgen",
"om_terrain": [ "cs_tire_shop" ],
"method": "json",
"weight": 1000,
"object": {
+ "fill_ter": "t_floor",
"rows": [
",..~~y''''y~~''''''~~.,,",
".,.~~y''''y~~''''''~~..,",
@@ -124,37 +27,29 @@
".,..| cc--l---- -- Sg..",
"...,| ch|L C|Vv c| Sg,.",
".,..| |L C| c|-D-|..",
- "..,.|rrr|L C|hhhh|T S|.,",
+ "..,.|rrr|L C|hhhh|T S|4,",
"...,-ggg-----gggg-----..",
- ".,..,..,...,..,....,...,",
- "...,,....,.....,.....,.."
+ ".,..,..,.u## ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ">": "t_ladder_down" },
+ "place_items": [ { "item": "roof_trash", "x": [ 7, 15 ], "y": [ 7, 18 ], "chance": 20, "repeat": [ 1, 3 ] } ],
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 40 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 10 ],
+ [ "roof_2x2_utilities", 10 ],
+ [ "roof_2x2_golf", 5 ]
+ ],
+ "x": [ 7, 16 ],
+ "y": 17
+ },
+ {
+ "chunks": [
+ [ "null", 50 ],
+ [ "roof_4x4_party", 5 ],
+ [ "roof_4x4_holdout", 5 ],
+ [ "roof_4x4_utility", 10 ],
+ [ "roof_4x4_utility_1", 10 ],
+ [ "roof_6x6_survivor", 10 ],
+ [ "roof_6x6_utility", 10 ]
+ ],
+ "x": [ 6, 15 ],
+ "y": [ 9, 12 ]
+ }
+ ]
+ }
}
]
diff --git a/data/json/mapgen/faction_buildings.json b/data/json/mapgen/faction_buildings.json
index ef4ac1f7a2f64..95ff737c294d6 100644
--- a/data/json/mapgen/faction_buildings.json
+++ b/data/json/mapgen/faction_buildings.json
@@ -3,6 +3,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -39,6 +40,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -75,6 +77,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_2" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -111,6 +114,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_3" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -147,6 +151,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_4" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -183,6 +188,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_5" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -219,6 +225,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_6" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -255,6 +262,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_7" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -291,6 +299,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_8" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -327,6 +336,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_9" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -363,6 +373,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_10" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -399,6 +410,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_11" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -435,6 +447,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_12" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -471,6 +484,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_13" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -507,6 +521,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_14" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -543,6 +558,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_15" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -579,6 +595,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_16" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -615,6 +632,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_17" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -651,6 +669,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_18" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -687,6 +706,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_19" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -723,6 +743,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_camp_20" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -759,6 +780,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_farm_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -795,6 +817,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_farm_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -831,6 +854,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_farm_2" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -867,6 +891,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_farm_3" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -903,6 +928,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_farm_4" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -939,6 +965,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -975,6 +1002,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1011,6 +1039,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_2" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1047,6 +1076,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_3" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1083,6 +1113,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_4" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1119,6 +1150,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_5" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1155,6 +1187,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_garage_6" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1191,6 +1224,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1227,6 +1261,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1263,6 +1298,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_2" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1299,6 +1335,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_3" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1335,6 +1372,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_4" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1371,6 +1409,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_5" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1407,6 +1446,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_6" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1443,6 +1483,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_7" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1479,6 +1520,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_kitchen_8" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1515,6 +1557,7 @@
"type": "mapgen",
"om_terrain": [ "faction_hide_site_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1551,6 +1594,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_N_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1587,6 +1631,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_E_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1623,6 +1668,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_S_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1659,6 +1705,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_W_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1695,6 +1742,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_N_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1731,6 +1779,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_E_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1767,6 +1816,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_S_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1803,6 +1853,7 @@
"type": "mapgen",
"om_terrain": [ "faction_wall_level_W_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1839,6 +1890,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_0" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1875,6 +1927,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_1" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1911,6 +1964,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_2" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1947,6 +2001,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_3" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -1983,6 +2038,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_4" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -2019,6 +2075,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_5" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -2055,6 +2112,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_6" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -2091,6 +2149,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_7" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -2128,6 +2187,7 @@
"om_terrain": [ "faction_base_blacksmith_8" ],
"method": "json",
"weight": 250,
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"object": {
"fill_ter": "t_floor",
"rows": [
@@ -2164,6 +2224,7 @@
"om_terrain": [ "faction_base_blacksmith_9" ],
"method": "json",
"weight": 250,
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"object": {
"fill_ter": "t_floor",
"rows": [
@@ -2199,6 +2260,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_10" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -2235,6 +2297,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_11" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
@@ -2271,6 +2334,7 @@
"type": "mapgen",
"om_terrain": [ "faction_base_blacksmith_12" ],
"method": "json",
+ "faction_owner": { "id": "your_followers", "area": [ { "x": 0, "y": 0, "x2": 23, "y2": 23 } ] },
"weight": 250,
"object": {
"fill_ter": "t_floor",
diff --git a/data/json/mapgen/farm_dairy.json b/data/json/mapgen/farm_dairy.json
index 7d685c021a530..d7f8e4dd507b6 100644
--- a/data/json/mapgen/farm_dairy.json
+++ b/data/json/mapgen/farm_dairy.json
@@ -41,7 +41,7 @@
".$......................",
".$......................"
],
- "terrain": { "$": "t_chainfence_v", ".": [ "t_grass", "t_grass", "t_dirt", "t_dirt", "t_dirt" ] },
+ "terrain": { "$": "t_splitrail_fence", ".": [ "t_grass", "t_grass", "t_dirt", "t_dirt", "t_dirt" ] },
"place_monsters": [
{ "monster": "GROUP_COWS", "x": [ 1, 10 ], "y": [ 1, 9 ], "density": 0.5 },
{ "monster": "GROUP_COWS", "x": [ 1, 12 ], "y": [ 1, 12 ], "density": 0.5 },
@@ -83,7 +83,7 @@
"......................$.",
"......................$."
],
- "terrain": { "$": "t_chainfence_v", ".": [ "t_grass", "t_grass", "t_dirt", "t_dirt", "t_dirt" ] },
+ "terrain": { "$": "t_splitrail_fence", ".": [ "t_grass", "t_grass", "t_dirt", "t_dirt", "t_dirt" ] },
"place_monsters": [
{ "monster": "GROUP_COWS", "x": [ 1, 10 ], "y": [ 1, 9 ], "density": 0.5 },
{ "monster": "GROUP_COWS", "x": [ 1, 12 ], "y": [ 1, 12 ], "density": 0.5 },
@@ -127,7 +127,7 @@
"........................"
],
"terrain": {
- "$": "t_chainfence_v",
+ "$": "t_splitrail_fence",
"%": "t_milking_machine",
"*": "t_window_bars",
"+": "t_door_o",
@@ -182,7 +182,7 @@
"........................"
],
"terrain": {
- "$": "t_chainfence_v",
+ "$": "t_splitrail_fence",
"'": "t_door_o",
"*": "t_window_domestic",
"+": "t_door_locked_interior",
@@ -192,7 +192,7 @@
"Y": "t_floor",
"_": "t_floor",
"a": [ "t_grass", "t_grass", "t_dirt", "t_dirt", "t_dirt" ],
- "f": "t_door_metal_c",
+ "f": "t_splitrail_fencegate_c",
"|": "t_wall"
},
"furniture": {
diff --git a/data/json/mapgen/farm_horse.json b/data/json/mapgen/farm_horse.json
new file mode 100644
index 0000000000000..c27c34ff8665f
--- /dev/null
+++ b/data/json/mapgen/farm_horse.json
@@ -0,0 +1,417 @@
+[
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [
+ [ "horse_farm_1", "horse_farm_2", "horse_farm_3", "horse_farm_4" ],
+ [ "horse_farm_5", "horse_farm_6", "horse_farm_7", "horse_farm_8" ],
+ [ "horse_farm_9", "horse_farm_10", "horse_farm_11", "horse_farm_12" ],
+ [ "horse_farm_13", "horse_farm_14", "horse_farm_15", "horse_farm_16" ]
+ ],
+ "weight": 250,
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "........................X.......................X.......................X.......................",
+ "................................................................................................",
+ "..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%...........6...........................................6..................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%..........................................................................................%..",
+ "..%.....................................6.................................WW+WWWW+WW.........%..",
+ "..%...................................6...6...............................W^;;LWL;LW.........%..",
+ "..%................9......................................................WWWWWWWWWW.........%..",
+ "..%........9...9..........................................................W;;7777;;W.........%..",
+ "..%.....9............................................................/////G;;;;;;;;W.........%..",
+ "..%..9.....9..9...9.9..............................................///////G;;;;;;;;W.........%..",
+ "..%.....9.........................................................////////G;;;;;;;;W.........%..",
+ "..%........9..9...9.9...........................................//////////G;;;;;;;;W.........%..",
+ "..%..9..9...9.9...9............................................./////....5W5;;;;;;;W.........%..",
+ "..%.........................................................../////.......WWWWWWWWWW.........%..",
+ "..%......9.9..9...9.9...X.......................X........../////........X....................%..",
+ "..%..9......9............................................/////...............................%..",
+ "..%..9.....9..9...9.9...................................../////...........%%%%%%%%%%%%%%%%%%%%..",
+ "..%..9......9............................................/////............%............9..9.9%..",
+ "..%.9..9................................................/////.............3..............9.9.%..",
+ "..%.......9..9...........................................5/////...........%............9..9..%..",
+ "..%...9...........9................................WWWWWWWGGGGGWWWWWWW....%..................%..",
+ "..%.9.....9........................................W;;;W#5;;;;;77W;;;W....%..............9...%..",
+ "..%....9......9....................................3;;;3;;;;;;;;;3;;;3//..%..................%..",
+ "..%.......9......9.9...............................W;;;W77;;;;;;;W;;;W.//.%..................%..",
+ "..%..9...9..9...9.9................................WWWWWWW;;;;;WWWWWWW//..%..................%..",
+ "..%........~~~.....................9...............W;;;W77;;;;;77W;;;W.//.%..................%..",
+ "..%...9...~~``~~.9..9..............................3;;;3;;;;;;;;;3;;;3//..%..................%..",
+ "..%........~~``~~..................................W;;;W;;;;;;;;;W;;;W.//.%..................%..",
+ "..%.........~~~~~~~................................WWWWWWW;;;;;WWWWWWW..//3..................%..",
+ "..%...........~~~..................................W;;;W77;;;;;77W;;;W..//3..................%..",
+ "..%.............................9..................3;;;3;;;;;;;;;3;;;3//..%................6.%..",
+ "..%................................................W;;;W;;;;;;;;;W;;;W....%...............6..%..",
+ "..%................................................WWWWWWW;;;;;WWWWWWW%%%%%..................%..",
+ "..%...........................................9....W1 8W;;;;;;;WLL ^W....%..................%..",
+ "..%................................................v h +;;;;;;;+ ^v.9..%..................%..",
+ "..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wkkk8W5;;;;;;WL ^W..//H..................%..",
+ "..%................................................WWvvWWWGGGGGWWWvvWW.//.%..................%..",
+ "..%......................................................5/////.......//..%%%%HHH%%%%%%%%%%%%%..",
+ "..%.....................X....AAAAAAAAAAWWWWWWW..X..........///////////..X....////............%..",
+ "..%......................///.A.........W;W;W;W................./////.. .////.////............%..",
+ "..%................./////////T.........W;;;;;W..................////////////.////........9...%..",
+ "..%................////.////.A.........A;;;;;W..................///////////////....9.........%..",
+ "..%.............////.........A.........K;;;;;W..........................///...............9..%..",
+ "..%...........///............A.........W;W;W;W..................%%%%%%%%333%%%%%%%%%.........%..",
+ "..%..........///.............A.........WWWWWWW.................%%.......///........%%..9.9...%..",
+ "..%...........///............A...............A................%%....////////////....%%.....9.%..",
+ "..%.........///..............A...............A...............%%...///.///.///.///....%%.9....%..",
+ "..%..........///.............A...............A..............%%..///............///....%%..9..%..",
+ "..%.........///..............AATAAAAAAAAAAAAAA.............%%....///............///....%%.9..%..",
+ "..%..........///..............,,..........................%%.....///..............///...%%..9%..",
+ "..%.....$$OO$*$OO$$.........,,...........................%%.....///...............///....%%..%..",
+ "..%.....$QQQQ;QQQQ$.........,,..........................%%.../////.................///....%%.%..",
+ "..%.....O;;;;;;;;;O.........,,.........................%%.....///...................///....%.%..",
+ "..%.....OQQQQ;QQQQO........,,..........................%.....////....................///....%%..",
+ "..%.....O;;;;;;;;;O.......,,...........................%....///.......................///....%..",
+ "..%.....$QQQQ;QQQQ$......,,............................%...///........................///....%..",
+ "..%.....$$OO$*$OO$$.....,,.......................//,/,/3/////.........................///....%..",
+ "..%..........,,.........,,.......................//,,,.%/////.........................///....%..",
+ "..%.........,,...........,,..................,,../,//,/3/////.........................///....%..",
+ "..%...b.....,,....,,....,,..............,,.,,.,,/,/....%..///.........................///....%..",
+ "..%..........,,,,,,,,,,,,,,...........,,,,.,,..........%...///........................///....%..",
+ "..%........0..,,,,,,,,,,,,,.........,,.................%....///......................///....%%..",
+ "..%......ppppp...,,pp...X.,,.....,,,,...........X......%%...///.........X..........///.....%.%..",
+ "..%..|---|vvv|---+-v-|.....,,...,,,,,,..................%%...///..................///.....%%.%..",
+ "..%..|ccfccSc 8|p.....,,,,,,,,,,,,.................%%...///................///.....%%..%..",
+ "..%..|o hnnh |p....,,,,,,,,,,,,,,.................%%....///.............///.....%%...%..",
+ "..%..vc c hnnh yvp..,,,,,,,,,..,,,....................%%....///...........///.....%%.9..%..",
+ "..%..vc c hnnh yvp..,,,,,,,,..,,,,,....................%%....///.........///.....%%.....%..",
+ "..%..|D 8vp..,,,,,,,,..,,,,,.....................%%....///......///......%%.9..9.%..",
+ "..%..|---|-+-|---i---|p.,,,,,,,,,..,,,,,......................%%...../////////......%%....9..%..",
+ "..%..|t y|r r|8 n1|..,,,,,,.,,..,,..........................%%.......///........%%.9..9..9%..",
+ "..%..| |r r|8 g|.,,,,,,..,,..,,...........................%%%%%%%%333%%%%%%%%%.........%..",
+ "..%..|S D|rrr|8 +,,,,,,..,,..,,....................................///.........9..9..9..%..",
+ "..%..|-+------ a|.......,,..,,............................9....9...///...9...9..........%..",
+ "..%..|< ||.....,,..,,..............................9.......///....9......9..9...%..",
+ "..%..|---+---- YYYYY yvp....,,..,,......................9...9..9...9..9..///......9.......9..%..",
+ "..%..|88 yYY| 1vp....,,..,,..............................9....9..9.///.9....9..9......%..",
+ "..%..v1 | gvp....,,..,,...............................9..9..9...///......9....9..9%..",
+ "..%.4|8 h 8|8nnnnn8||.....,,..,,.............................///...9..9...///...9....9..9..%..",
+ "..%..|--kkk-----------......,,..,,....................9...9..9...///.9..9..9.///.9....9..9...%..",
+ "..%....-vvv-...p.p..........,,..,,.......................9...9..9..////...9...///..9....9..9.%..",
+ "..%..9................9...9.,,..,,.9..9..9...9..99...9..9....9...9..9///9...///.......9......%..",
+ "..%.9...0.....9...9..9.9...9,,..,,...9..99...9..9..........9...9..9....//////...9....9..9....%..",
+ "..%...9....9.......9...9..9.,,..,,.9..9...9..99...9..9.9...9..9.9...9..9..9...9..99...9..9...%..",
+ "..%%%%%%%%%%%%%%%%%%%%%%%%%%,,..,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..",
+ "..%.........................,,..,,...........................................................%.."
+ ],
+ "palettes": [ "farm_horse" ],
+ "terrain": { "p": "t_grass", "0": "t_grass", "6": "t_grass" },
+ "sealed_item": { "Q": { "item": { "item": "seed_rose" }, "furniture": "f_planter_mature" } },
+ "items": {
+ "k": { "item": "office", "chance": 30 },
+ "f": { "item": "fridge", "chance": 30 },
+ "o": { "item": "oven", "chance": 30 },
+ "8": { "item": "homebooks", "chance": 30 },
+ "r": { "item": "restaur_kitchen", "chance": 30 },
+ "c": { "item": "kitchen_counters", "chance": 30 },
+ "D": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] }
+ },
+ "place_loot": [
+ { "item": "television", "x": 17, "y": 88, "chance": 100 },
+ { "item": "stepladder", "x": 67, "y": 43, "chance": 100 },
+ { "item": "straw_pile", "x": [ 40, 44 ], "y": [ 48, 52 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "item": "straw_pile", "x": [ 52, 54 ], "y": [ 31, 33 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "item": "straw_pile", "x": [ 52, 54 ], "y": [ 35, 37 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "item": "straw_pile", "x": [ 52, 54 ], "y": [ 39, 41 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "item": "straw_pile", "x": [ 66, 68 ], "y": [ 31, 33 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "item": "straw_pile", "x": [ 66, 68 ], "y": [ 35, 37 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "item": "straw_pile", "x": [ 66, 68 ], "y": [ 39, 41 ], "chance": 30, "repeat": [ 2, 4 ] },
+ { "group": "farming_seeds", "x": [ 9, 18 ], "y": [ 61, 65 ], "chance": 80, "repeat": [ 2, 4 ] },
+ { "group": "farming_tools", "x": [ 74, 77 ], "y": 15, "chance": 40, "repeat": [ 2, 4 ] },
+ { "group": "farming_tools", "x": [ 79, 81 ], "y": 15, "chance": 40, "repeat": [ 2, 4 ] },
+ { "group": "farming_tools", "x": [ 75, 81 ], "y": [ 17, 22 ], "chance": 50, "repeat": [ 2, 4 ] },
+ { "item": "bucket", "x": 46, "y": 48, "chance": 20 },
+ { "item": "bucket", "x": 56, "y": 52, "chance": 30 },
+ { "item": "bucket", "x": 56, "y": 33, "chance": 30 },
+ { "item": "bucket", "x": 56, "y": 37, "chance": 30 },
+ { "item": "bucket", "x": 64, "y": 41, "chance": 30 },
+ { "item": "cattlefodder", "x": [ 52, 68 ], "y": [ 31, 41 ], "chance": 80, "repeat": [ 6, 10 ] },
+ { "item": "birdfood", "x": [ 40, 44 ], "y": [ 48, 52 ], "chance": 80, "repeat": [ 2, 4 ] }
+ ],
+ "place_monster": [
+ { "monster": "mon_chicken", "x": [ 40, 44 ], "y": [ 48, 52 ], "repeat": [ 2, 6 ], "chance": 30 },
+ { "monster": "mon_horse", "x": [ 52, 54 ], "y": [ 31, 33 ], "chance": 30 },
+ { "monster": "mon_horse", "x": [ 52, 54 ], "y": [ 35, 37 ], "chance": 30 },
+ { "monster": "mon_horse", "x": [ 52, 54 ], "y": [ 39, 41 ], "chance": 30 },
+ { "monster": "mon_horse", "x": [ 66, 68 ], "y": [ 31, 33 ], "chance": 30 },
+ { "monster": "mon_horse", "x": [ 66, 68 ], "y": [ 35, 37 ], "chance": 30 },
+ { "monster": "mon_horse", "x": [ 66, 68 ], "y": [ 39, 41 ], "chance": 30 }
+ ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_4_roof",
+ "object": {
+ "fill_ter": "t_shingle_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... ",
+ " .......... "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_7_hayloft",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " wwwwwww.....wwwwwww ",
+ " w..6..>.........6.w ",
+ " w...6.........6...w ",
+ " w......*****`.....w ",
+ " wwww...*****...wwww ",
+ " w......*****....66w ",
+ " w.6.6..*****....66w ",
+ " w......*****....6.w ",
+ " wwww...*****...wwww ",
+ " w..6...*****....6.w ",
+ " w......*****....66w ",
+ " w...6..*****....6.w ",
+ " wwww...*****...wwww ",
+ " w...6...........6.w ",
+ " w.6.............66w ",
+ " w...............6.w ",
+ " wwwwwww.....wwwwwww ",
+ " "
+ ],
+ "terrain": { ">": "t_ladder_down", ".": "t_floor", "*": "t_open_air_rooved", "w": "t_wall_wood", " ": "t_open_air" },
+ "furniture": { "6": "f_hay" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_7_roof",
+ "object": {
+ "fill_ter": "t_shingle_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " ................... ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_9_roof",
+ "object": {
+ "fill_ter": "t_glass_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ooooooooooo ",
+ " ooooooooooo ",
+ " ooooooooooo ",
+ " ooooooooooo ",
+ " ooooooooooo ",
+ " ooooooooooo ",
+ " ooooooooooo ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_10_roof",
+ "object": {
+ "fill_ter": "t_shingle_flat_roof",
+ "rows": [
+ " ....... ",
+ " ....... ",
+ " ....... ",
+ " ....... ",
+ " ....... ",
+ " ....... ",
+ " ....... ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_13_2ndfloor",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ " |-vv-|-v-v-|_____ ",
+ " |@*hk|@@**d|_____ ",
+ " |@**k|***hkv_____ ",
+ " vd**8|8***k|_____ ",
+ " |-+------+-|_____ ",
+ " v**********|_____ ",
+ " |---|-+-|*8|_____ ",
+ " |t*B|S*y|**v_____ ",
+ " |**B|***|**v_____ ",
+ " |S*D|BBt|**v_____ ",
+ " |-+------*8|_____ ",
+ " |>*********|______ ",
+ " |---+-------______ ",
+ " |@@****d|_________ ",
+ " v@@****yv_________ ",
+ " |n*****d|_________ ",
+ " |--1n1---_________ ",
+ " -vvv- ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "farm_horse" ],
+ "terrain": { "_": "t_shingle_flat_roof", "*": "t_floor", " ": "t_open_air", ">": "t_stairs_down" },
+ "items": {
+ "@": { "item": "bed", "chance": 50, "repeat": [ 1, 2 ] },
+ "D": { "item": "trash_cart", "chance": 50 },
+ "B": { "item": "shower", "chance": 40, "repeat": [ 2, 4 ] },
+ "d": { "item": "dresser", "chance": 70, "repeat": [ 2, 4 ] },
+ "8": { "item": "homebooks", "chance": 70, "repeat": [ 2, 4 ] },
+ "k": { "item": "bedroom", "chance": 60, "repeat": [ 2, 4 ] },
+ "S": { "item": "softdrugs", "chance": 60, "repeat": [ 2, 4 ] }
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "horse_farm_13_roof",
+ "object": {
+ "fill_ter": "t_shingle_flat_roof",
+ "rows": [
+ " ",
+ " |22222222223 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |..........3 ",
+ " |.......---3 ",
+ " |.......3 ",
+ " |.......3 ",
+ " |.......3 ",
+ " |--...--- ",
+ " ----- ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof" }
+ }
+ }
+]
diff --git a/data/mods/Boats/whaleys_house_river.json b/data/json/mapgen/house/whaleys_house_river.json
similarity index 99%
rename from data/mods/Boats/whaleys_house_river.json
rename to data/json/mapgen/house/whaleys_house_river.json
index b3d667beba3ea..1247e4ca32048 100644
--- a/data/mods/Boats/whaleys_house_river.json
+++ b/data/json/mapgen/house/whaleys_house_river.json
@@ -1,6 +1,5 @@
[
{
- "//": "Place this file in /data/json/mapgen/house/",
"method": "json",
"object": {
"place_item": [
diff --git a/data/json/mapgen/lab/lab_common.json b/data/json/mapgen/lab/lab_common.json
index b764cac707f6e..b12a7742b86ac 100644
--- a/data/json/mapgen/lab/lab_common.json
+++ b/data/json/mapgen/lab/lab_common.json
@@ -5,7 +5,7 @@
"furniture": {
"b": "f_bed",
"l": "f_locker",
- "X": "f_crate_c",
+ "X": [ "f_cardboard_box", "f_crate_c" ],
"r": "f_rack",
"d": "f_desk",
"s": "f_dresser",
diff --git a/data/json/mapgen/lab/lab_surface/lab_surface_nested.json b/data/json/mapgen/lab/lab_surface/lab_surface_nested.json
index 424826c572ceb..9483015c0c829 100644
--- a/data/json/mapgen/lab/lab_surface/lab_surface_nested.json
+++ b/data/json/mapgen/lab/lab_surface/lab_surface_nested.json
@@ -1728,7 +1728,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "supplies_reagents_lab", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 20 ] } ]
}
},
@@ -1741,7 +1741,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "tools_science", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 10 ] } ]
}
},
@@ -1754,7 +1754,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "electronics", "x": 0, "y": 0, "chance": 90, "repeat": [ 1, 10 ] } ]
}
},
@@ -1767,7 +1767,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "hardware_bulk", "x": 0, "y": 0, "chance": 90, "repeat": [ 1, 5 ] } ]
}
},
@@ -1780,7 +1780,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "produce", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 10 ] } ]
}
},
@@ -1793,7 +1793,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "supplies_samples_lab", "x": 0, "y": 0, "chance": 90, "repeat": [ 10, 20 ] } ]
}
},
@@ -1806,7 +1806,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "snacks", "x": 0, "y": 0, "chance": 50, "repeat": [ 5, 10 ] } ]
}
},
@@ -1819,7 +1819,7 @@
"rows": [ "X" ],
"//": "Places a crate, 25% chance of being pre-opened.",
"terrain": { "X": "t_strconc_floor" },
- "furniture": { "X": [ [ "f_crate_c", 3 ], "f_crate_o" ] },
+ "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] },
"place_items": [ { "item": "hospital_lab", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 10 ] } ]
}
},
diff --git a/data/json/mapgen/landscaping_supply.json b/data/json/mapgen/landscaping_supply.json
index fb5783b020e9a..7be5f0db88925 100644
--- a/data/json/mapgen/landscaping_supply.json
+++ b/data/json/mapgen/landscaping_supply.json
@@ -106,27 +106,27 @@
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 5, "y": 3 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 6, "y": 3 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 7, "y": 3 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 9, "y": 3 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 10, "y": 3 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 11, "y": 3 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 9, "y": 3 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 10, "y": 3 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 11, "y": 3 },
{ "item": "stick", "repeat": [ 1, 5 ], "x": 0, "y": 4 },
{ "item": "stick", "repeat": [ 1, 5 ], "x": 1, "y": 4 },
{ "item": "stick", "repeat": [ 1, 5 ], "x": 2, "y": 4 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 5, "y": 4 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 6, "y": 4 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 7, "y": 4 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 9, "y": 4 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 10, "y": 4 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 11, "y": 4 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 9, "y": 4 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 10, "y": 4 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 11, "y": 4 },
{ "item": "stick", "repeat": [ 1, 5 ], "x": 0, "y": 5 },
{ "item": "stick", "repeat": [ 1, 5 ], "x": 1, "y": 5 },
{ "item": "stick", "repeat": [ 1, 5 ], "x": 2, "y": 5 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 5, "y": 5 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 6, "y": 5 },
{ "item": "material_cement", "repeat": [ 1, 2 ], "x": 7, "y": 5 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 9, "y": 5 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 10, "y": 5 },
- { "item": "fertilizer", "repeat": [ 1, 2 ], "x": 11, "y": 5 }
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 9, "y": 5 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 10, "y": 5 },
+ { "item": "fertilizer_commercial", "repeat": [ 1, 2 ], "x": 11, "y": 5 }
],
"furniture": {
"#": "f_counter",
diff --git a/data/json/mapgen/mall.json b/data/json/mapgen/mall.json
index f36638b33935f..2f9e3e753c75b 100644
--- a/data/json/mapgen/mall.json
+++ b/data/json/mapgen/mall.json
@@ -125,6 +125,58 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_3",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_concrete",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " -------------------",
+ " |JJJJuuJ|zzzzz_zQQQ",
+ " |J______|zz___zz___",
+ " |J_FKF__|z____zz___",
+ " |__FKF__|__________",
+ " |Y_FKF__=__________",
+ " |Y_____y|--=--_____",
+ " |u_FKF_P|0+_F|_____",
+ " |u_FKF_P|--_F|_____",
+ " |_______|0+_F|_____",
+ " |-==-------_F|_____",
+ " |P___=__=___y|_____"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "furniture": { "0": "f_shower" }
+ },
+ "items": {
+ "J": { "item": "elecsto_homapl", "chance": 10 },
+ "0": { "item": "beauty", "chance": 10 },
+ "P": [
+ { "item": "jackets", "chance": 20 },
+ { "item": "softdrugs", "chance": 20 },
+ { "item": "bags", "chance": 20 },
+ { "item": "winter", "chance": 20 }
+ ],
+ "u": [
+ { "item": "vending_food_items", "chance": 20, "repeat": [ 4, 10 ] },
+ { "item": "vending_drink_items", "chance": 30, "repeat": [ 6, 10 ] }
+ ],
+ "K": [ { "item": "vending_food_items", "chance": 20 }, { "item": "vending_drink_items", "chance": 20 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -145,21 +197,71 @@
" ",
" ",
" ",
- " 2222222222222222222",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- " |.................."
+ " 222222222222#######",
+ " !...........#______",
+ " !...........#zz_z__",
+ " !...........=_z_z__",
+ " !...........#____z_",
+ " !...........1__z_z_",
+ " !...........1___z__",
+ " !....*......1___z__",
+ " !...........1___zz_",
+ " !...........1____z_",
+ " !..........3#3___z_",
+ " !...........#______"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ".": "t_flat_roof",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control",
+ "#": "t_wall_w",
+ "!": "t_gutter_west",
+ "2": "t_gutter_north"
+ },
+ "items": {
+ "z": [
+ { "item": "kitchen", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "allclothes", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "livingroom", "chance": 20, "repeat": [ 1, 2 ] }
+ ]
+ },
+ "vehicles": { "*": { "vehicle": "forklift", "chance": 100, "rotation": 90 } }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_3",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " 2222222",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......"
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "|": "t_gutter_west" },
- "place_items": [ { "item": "roof_trash", "x": [ 7, 22 ], "y": [ 14, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -212,9 +314,102 @@
{
"type": "mapgen",
"method": "json",
- "//": "has freight elevators on ground",
+ "//": "has freight elevators",
+ "om_terrain": "mall_b_4",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_concrete",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "---------|-----|--------",
+ "QQQ__QQQ_|EEEEE|____Y___",
+ "_________+EEEEE+___z__z_",
+ "QQQ______+EEEEE+___z_zz_",
+ "_________+EEEEE+__zz__z_",
+ "_________|EEEEE|________",
+ "_________|-----|________",
+ "___________zzz__________",
+ "____________z___________",
+ "________________________",
+ "________________---H=H--",
+ "_______________Y|Sy____WR"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": {
+ "Y": { "item": "trash", "chance": 100, "repeat": [ 1, 2 ] },
+ "S": { "item": "trash", "chance": 30, "repeat": [ 4, 6 ] },
+ "R": { "item": "magazines", "chance": 30, "repeat": [ 1, 2 ] },
+ "z": [
+ { "item": "hatstore_accessories", "chance": 40, "repeat": [ 1, 2 ] },
+ { "item": "shoestore_shoes", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "coffee_display_2", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "coffee_condiments", "chance": 10, "repeat": [ 1, 2 ] }
+ ],
+ "Q": [
+ { "item": "tools_construction", "chance": 40, "repeat": [ 1, 2 ] },
+ { "item": "tools_entry", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "tools_mechanic", "chance": 30, "repeat": [ 1, 2 ] },
+ { "item": "tools_carpentry", "chance": 10, "repeat": [ 1, 2 ] }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 13, 23 ], "y": [ 2, 23 ], "density": 0.3 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "//": "has freight elevators",
"om_terrain": "mall_a_4_roof",
"weight": 200,
+ "object": {
+ "fill_ter": "t_concrete",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "-|-------|-----|-------|",
+ "_|xx_____+EEEEE+_zzz_z_|",
+ "_|x__x___+EEEEE+_____z_1",
+ "_=_______+EEEEE+_______1",
+ "_|P______+EEEEE+__*____1",
+ "_|P______+EEEEE+_______1",
+ "_|-H+H-__|-----|______3|",
+ "_|K__S|_______________u|",
+ "_|@__BH_______________u|",
+ "_|@_II|_______3____xx__|",
+ "_|------=-1111---------|",
+ "______________3________|"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { ".": "t_flat_roof", "1": "t_door_metal_locked", "3": "t_gates_mech_control" },
+ "vehicles": { "*": { "vehicle": "forklift", "chance": 100, "rotation": 90 } },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 13, 23 ], "y": [ 2, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_4",
"object": {
"fill_ter": "t_flat_roof",
"rows": [
@@ -230,21 +425,20 @@
" ",
" ",
" ",
- "222222222222222222222222",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................"
+ "222222222222222222222223",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3"
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north" },
- "place_items": [ { "item": "roof_trash", "x": [ 2, 21 ], "y": [ 14, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -298,6 +492,49 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_5",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_concrete",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "---------------- ",
+ "_______________| ",
+ "_______________| ",
+ "____|-------|__| ",
+ "____|______z|__| ",
+ "____|__xx___|__| ",
+ "____+___xx__+__| ",
+ "____|____x__|__| ",
+ "____|_______|__| ",
+ "____|___z___|__| ",
+ "-___|zzzxxx_|__| ",
+ "--==---------==| "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": {
+ "z": [
+ { "item": "tools_carpentry", "chance": 40, "repeat": [ 1, 2 ] },
+ { "item": "tools_common", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "tools_mechanic", "chance": 10, "repeat": [ 1, 2 ] }
+ ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -324,15 +561,14 @@
"...............3 ",
"...............3 ",
"...............3 ",
- "...............3 ",
+ "4..............3 ",
"...............3 ",
"...............3 ",
"...............3 ",
"...............3 ",
"...............3 "
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "3": "t_gutter_east" },
- "place_items": [ { "item": "roof_trash", "x": [ 1, 13 ], "y": [ 14, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "3": "t_gutter_east", "4": "t_gates_mech_control" }
}
},
{
@@ -541,6 +777,47 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 15 ], "y": [ 2, 23 ], "density": 0.15 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_10",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " |-------",
+ " |^^^^^^^",
+ " |^^^^^^^",
+ " |==|----",
+ " |^^|y666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|Y666",
+ " |^^=6666",
+ " |^^|----",
+ " |^^=6666",
+ " |^^|Y666",
+ " |^^|y666"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "Y": "t_carpet_red", "y": "t_carpet_red" },
+ "items": {
+ "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -574,8 +851,7 @@
" |.......",
" |......."
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "|": "t_gutter_west" },
- "place_items": [ { "item": "roof_trash", "x": [ 18, 22 ], "y": [ 3, 14 ], "chance": 50, "repeat": [ 6, 23 ] } ]
+ "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "|": "t_gutter_west" }
}
},
{
@@ -594,8 +870,8 @@
" ",
" ",
"----------------|---|-0-",
- "3333333333333333|33K|u33",
- "g3g3g3g3g3g3g333|-0-|u33",
+ "3333333333333333|<3<|u33",
+ "g3g3g3g3g3g3g333|333|u33",
"g3g3g3g3g3g3g333033Q|-3-",
"g3g3g3g3g3g3g3330333|33J",
"g3g3g3g3g3g3g33G|333|333",
@@ -623,6 +899,51 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 9, 23 ], "density": 0.15 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_11",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ "------------------------",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "------------------=--=--",
+ "6666666666666666|>^>|^Y|",
+ "B6B6B6B6B6B6B666|^^^|^^|",
+ "B6B6B6B6B6B6B666=^^^|Q^7",
+ "B6B6B6B6B6B6B666=^^^|Q^7",
+ "B6B6B6B6B6B6B666|y^^|Q^7",
+ "6666666666666666|^^Y|b^7",
+ "6666666666666666|^^Y|y^7",
+ "B6B6B6B6B6B6B666|y^^|b^7",
+ "B6B6B6B6B6B6B666=^^^|Q^7",
+ "B6B6B6B6B6B6B666=^^^|Q^7",
+ "B6B6B6B6B6B6B666|y^^|Q^7",
+ "6666666666666666|^^^|^^^",
+ "----------------|y^Y|yby",
+ "6666666666666666|^^^|---",
+ "B6B6B6B6B6B6B666|y^^=^^P",
+ "B6B6B6B6B6B6B666=^^^|^^P"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "B": "t_carpet_red" },
+ "items": {
+ "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] },
+ "P": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] },
+ "B": [ { "item": "bags", "chance": 5 }, { "item": "snacks", "chance": 20 }, { "item": "vending_food_items", "chance": 10 } ],
+ "Q": [ { "item": "bags", "chance": 20 }, { "item": "shoestore_shoes", "chance": 30 } ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 10, 23 ], "y": [ 2, 23 ], "density": 0.3 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -657,7 +978,7 @@
"........................"
],
"terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north" },
- "place_items": [ { "item": "roof_trash", "x": [ 2, 21 ], "y": [ 3, 14 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
}
},
{
@@ -706,24 +1027,98 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 8, 23 ], "density": 0.2 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_12",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ " |P__P|jt|_--||_____",
+ " |P__P|--|_+0|______",
+ " |P___=__=_--|______",
+ " |P__P|jt|_+0|______",
+ "-------==-|---------==--",
+ "^^^^^^^^^^|P_=__________",
+ "^^^^^^^^^^|---=--------|",
+ "-----------MM|..yFFFy.Y|",
+ "^|^|^|^%|MM^^HH........|",
+ "=|=|=|=-|^^^^dH........|",
+ "77777777777^^dH...FF...+",
+ "KK7KK77KK77^^HH...FF...+",
+ "KK77777KK77^^+....FF...|",
+ "777JJJ77777^^+..........",
+ "KK77AJ7KK77^dHH.........",
+ "777JJJ77777^^+..........",
+ "KK77777KK77^^+....FF....",
+ "KK7KK77KK77^^HH...FF....",
+ "77777777777^^dH...FF....",
+ "^^^^^^^^^^^^^dH.........",
+ "^QQQdQQQdQQQ^HH.........",
+ "-------------|y.........",
+ "|UUUU|VVVyVVV|-H+H+H-|..",
+ "|U...|..............y|.."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "K": "t_carpet_green",
+ "J": "t_carpet_green",
+ "A": "t_carpet_green",
+ "d": "t_floor",
+ "M": "t_floor",
+ "Q": "t_floor",
+ "%": "t_floor",
+ "j": "t_concrete",
+ "t": "t_concrete"
+ },
+ "furniture": { "%": "f_bench", "0": "f_shower" },
+ "items": {
+ "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] },
+ "M": { "item": "jewelry_front", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": { "item": "pants", "chance": 30 },
+ "d": { "item": "dresses", "chance": 50 },
+ "V": { "item": "consumer_electronics", "chance": 40 },
+ "J": { "item": "hatstore_accessories", "chance": 20, "repeat": [ 1, 2 ] },
+ "K": [
+ { "item": "shoestore_accessories", "chance": 10 },
+ { "item": "shirts", "chance": 10 },
+ { "item": "winter", "chance": 10 }
+ ],
+ "U": [
+ { "item": "consumer_electronics", "chance": 20 },
+ { "item": "elecsto_books", "chance": 30 },
+ { "item": "elecsto_lights", "chance": 10 }
+ ],
+ "P": [
+ { "item": "jackets", "chance": 30 },
+ { "item": "softdrugs", "chance": 30 },
+ { "item": "bags", "chance": 30 },
+ { "item": "winter", "chance": 30 }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
"om_terrain": "mall_a_12_roof",
"weight": 200,
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_concrete",
"rows": [
- " |..................",
- " |..................",
- " |..................",
- " |..................",
- "222222..................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ " !...........#______",
+ " !...........#_____z",
+ " !...........#_____z",
+ " !...........#zzzz_z",
+ "******...........#_z___z",
+ ".................#_z____",
+ ".................#_zzz__",
+ ".................#______",
+ ".................#_PPP_#",
+ ".................#######",
"........................",
"........................",
"........................",
@@ -739,8 +1134,61 @@
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "|": "t_gutter_west" },
- "place_items": [ { "item": "roof_trash", "x": [ 2, 21 ], "y": [ 5, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ".": "t_flat_roof",
+ " ": "t_open_air",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control",
+ "4": "t_chainfence",
+ "0": "t_chaingate_c",
+ "#": "t_wall_w",
+ "*": "t_gutter_north",
+ "!": "t_gutter_west"
+ },
+ "items": {
+ "z": [
+ { "item": "pasta", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "allclothes", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "child_items", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ]
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_12",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |------",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -759,7 +1207,7 @@
" | z :2111111",
" |zzz :2112222",
"--| |---|--|2112|--",
- "<<| |<<|2112|yq",
+ " <| | <|2112|yq",
" |----||----| |2112|22",
" |EEEE||EEEE| [2112V22",
" |EEEE||EEEE| [2112V22",
@@ -792,6 +1240,66 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 15, 23 ], "density": 0.6 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_13",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_linoleum_white",
+ "rows": [
+ "____________z___=___I__S",
+ "__zzz____z______H_C_IB_w",
+ "___zz___zzz____P|-------",
+ "____z__________P|yFFYFFy",
+ "-------==-------|.......",
+ "________________=.......",
+ "__|----==----|__=.......",
+ "--|x________x|--|....|-H",
+ "<>|xxxPxxxPxx|<>|....|d%",
+ "..|----||----|..|....H%8",
+ ".Y|EEEE||EEEE|Y.+....+88",
+ "..|EEEE||EEEE|..+....+88",
+ "HH|H++H||H++H|HH|....H%8",
+ ".....................|d%",
+ ".....................|-H",
+ "........................",
+ "....###666###...........",
+ "...F# #606# #F.........#",
+ "...F# #666# #F........y#",
+ "...F# ##### #F........F#",
+ "...Y# #Y........F#",
+ "...F# #F........y#",
+ "...F# #F.........#",
+ "...F# #F.........."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "P": "t_concrete",
+ "z": "t_concrete",
+ "S": "t_concrete",
+ "C": "t_concrete",
+ "I": "t_concrete",
+ "B": "t_concrete",
+ "w": "t_concrete",
+ "0": "t_carpet_red",
+ "%": "t_carpet_purple",
+ "d": "t_carpet_purple"
+ },
+ "furniture": { "0": "f_piano", "%": [ "f_indoor_plant_y", "f_indoor_plant" ] },
+ "items": {
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 100 },
+ { "item": "shoestore_shoes", "chance": 100 }
+ ],
+ "Y": { "item": "floor_trash", "chance": 100, "repeat": [ 1, 2 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -800,42 +1308,91 @@
"object": {
"fill_ter": "t_flat_roof",
"rows": [
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- ">>............>>........",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................"
- ],
- "terrain": { ".": "t_flat_roof", ">": "t_stairs_down" },
- "place_items": [ { "item": "roof_trash", "x": [ 2, 22 ], "y": [ 2, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "_______________________|",
+ "_______________zz_____3|",
+ "______zzz_______z__z___1",
+ "______________zz_______1",
+ "_zzz________________z__1",
+ "___z__zzz___________z__1",
+ "___________________zz__1",
+ "_______________________|",
+ ">>|__________|>>|_PP_PP|",
+ "--|++++--++++|--|---=---",
+ "..|EEEE--EEEE|..........",
+ "..|EEEE--EEEE|..........",
+ "..|----------|..........",
+ "........................",
+ "........................",
+ "........................",
+ "....ooooooooo...........",
+ "....ooooooooo..........o",
+ "....ooooooooo..........o",
+ "....ooooooooo..........o",
+ "....ooooooooo..........o",
+ "....ooooooooo..........o",
+ "....ooooooooo..........o",
+ "....ooooooooo..........."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ".": "t_flat_roof",
+ "o": "t_glass_roof",
+ ">": "t_stairs_down",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control"
+ },
+ "items": {
+ "z": [
+ { "item": "cannedfood", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "allclothes", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "bed", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ]
+ }
}
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "mall_a_14" ],
- "weight": 250,
+ "om_terrain": "mall_upper_roof_13",
"object": {
- "fill_ter": "t_floor",
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ "--|..........3----------",
+ " |..........3 ",
+ " |..........3 ",
+ " |----------3 ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [ "mall_a_14" ],
+ "weight": 250,
+ "object": {
+ "fill_ter": "t_floor",
"rows": [
"|2222|S + t| |...ss___",
"|2112|S |--| |-|.ss___",
@@ -879,6 +1436,80 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 16, 23 ], "density": 0.4 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_14",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_linoleum_white",
+ "rows": [
+ "|....|^..+.t|__| ",
+ "|....|...|--|__|H| ",
+ "|....+^..+.t|__|dH ",
+ "F....|---|--|__|yH ",
+ ".....+^..+.t|__=dH ",
+ ".....|...|.-|__|H| ",
+ "..yuu|^..+.t|__| ",
+ "+H---------||==| ",
+ "88%TTT%8888|z__| ",
+ "88888888!A8|z__| ",
+ "KK8K8K88?88|z__| ",
+ "KK8K8K88!88=__z| ",
+ "88888888?8!|__z| ",
+ "KK%88%88!8!|zzz| ",
+ "HHH++HHHHH-|-H-| ",
+ "...........| ",
+ "yFFy......yH ",
+ "#####.....YH ",
+ " #y..JmmH ",
+ " #F..J.BH ",
+ " #F..J..H ",
+ " #y..JJ.H ",
+ "#####...Y..H ",
+ "yFFy......yH "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "%": "t_carpet_purple",
+ "T": "t_carpet_purple",
+ "K": "t_carpet_purple",
+ "!": "t_carpet_purple",
+ "A": "t_carpet_purple"
+ },
+ "furniture": { "%": [ "f_indoor_plant_y", "f_indoor_plant" ], "^": "f_sink", "!": "f_counter" },
+ "items": {
+ "u": [
+ { "item": "vending_food_items", "chance": 20, "repeat": [ 4, 10 ] },
+ { "item": "vending_drink_items", "chance": 30, "repeat": [ 6, 10 ] }
+ ],
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 100 },
+ { "item": "shoestore_shoes", "chance": 100 }
+ ],
+ "K": { "item": "shoestore_shoes", "chance": 100, "repeat": [ 1, 2 ] },
+ "Y": { "item": "floor_trash", "chance": 100, "repeat": [ 1, 2 ] },
+ "T": { "item": "hatstore_accessories", "chance": 100, "repeat": [ 1, 2 ] },
+ "!": [
+ { "item": "hatstore_accessories", "chance": 30, "repeat": [ 1, 2 ] },
+ { "item": "shoestore_shoes", "chance": 30, "repeat": [ 1, 2 ] }
+ ],
+ "z": [
+ { "item": "hatstore_accessories", "chance": 40, "repeat": [ 1, 2 ] },
+ { "item": "shoestore_shoes", "chance": 10, "repeat": [ 1, 2 ] }
+ ],
+ "m": { "item": "dessert", "chance": 50, "repeat": [ 1, 2 ] },
+ "J": [
+ { "item": "baked_goods", "chance": 40, "repeat": [ 1, 2 ] },
+ { "item": "coffee_display_2", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "coffee_condiments", "chance": 10, "repeat": [ 1, 2 ] }
+ ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -888,7 +1519,7 @@
"fill_ter": "t_flat_roof",
"rows": [
"...............3 ",
- "...............323 ",
+ "4..............323 ",
".................3 ",
".................3 ",
".................3 ",
@@ -904,16 +1535,23 @@
"...........3---3 ",
"...........3 ",
"...........3 ",
- "...........3 ",
- "...........3 ",
- "...........3 ",
- "...........3 ",
- "...........3 ",
- "...........3 ",
+ "ooooo......3 ",
+ "ooooo......3 ",
+ "ooooo......3 ",
+ "ooooo......3 ",
+ "ooooo......3 ",
+ "ooooo......3 ",
"...........3 "
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "-": "t_gutter_south", "2": "t_gutter_north", "3": "t_gutter_east" },
- "place_items": [ { "item": "roof_trash", "x": [ 1, 13 ], "y": [ 1, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "terrain": {
+ ".": "t_flat_roof",
+ " ": "t_open_air",
+ "-": "t_gutter_south",
+ "2": "t_gutter_north",
+ "3": "t_gutter_east",
+ "o": "t_glass_roof",
+ "4": "t_gates_mech_control"
+ }
}
},
{
@@ -1123,6 +1761,46 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 15 ], "y": [ 5, 11 ], "density": 0.15 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_19",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|6666",
+ " |^^|yY66",
+ " |^^---==",
+ " |^^^^^^^",
+ " |^^^^^^^",
+ " |^^^^^^^",
+ " |-------",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "y": "t_carpet_red", "Y": "t_carpet_red" },
+ "items": {
+ "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1175,8 +1853,8 @@
"g3g3g3g3g3g3g33G|333|L +",
"g3g3g3g3g3g3g3330333|-:|",
"g3g3g3g3g3g3g333033Q| ",
- "g3g3g3g3g3g3g333|-0-| ",
- "3333333333333333|33K| ",
+ "g3g3g3g3g3g3g333|333| ",
+ "3333333333333333|<3<| ",
"----------------|---| ",
" ",
" |--| |--| ",
@@ -1210,6 +1888,49 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_20",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "B6B6B6B6B6B6B666=^^^|^zz",
+ "B6B6B6B6B6B6B666|y^^|---",
+ "6666666666666666|^^^|j.j",
+ "6666666666666666|^^^=...",
+ "B6B6B6B6B6B6B666|y^^|t|t",
+ "B6B6B6B6B6B6B666=^^Y|---",
+ "B6B6B6B6B6B6B666=^^Y|t|t",
+ "B6B6B6B6B6B6B666|y^^=...",
+ "6666666666666666|>^>|j.j",
+ "------------------------",
+ "^yyYyy^^^^yyYyy^^H..|777",
+ "^^^^^^^^^^^^^^^^^+.F|%99",
+ "^^^^^^^^^^^^^^^^^H.FHK99",
+ "HHH---HHH---HHH---.F|%99",
+ " |..H799",
+ " H..+799",
+ " H..+799",
+ " H..|777",
+ " |..|-HH",
+ " HF.....",
+ " HF.....",
+ " HF..###",
+ " H...# ",
+ " H...# "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "F": "t_linoleum_gray", "B": "t_carpet_red", "$": "t_ladder_up", "%": "t_carpet_green", "K": "t_carpet_green" },
+ "furniture": { "%": "f_chair" },
+ "items": {
+ "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] },
+ "z": { "item": "vending_food_items", "chance": 70, "repeat": [ 4, 6 ] },
+ "B": [ { "item": "bags", "chance": 5 }, { "item": "snacks", "chance": 10 }, { "item": "vending_food_items", "chance": 10 } ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1239,12 +1960,11 @@
" |......",
" |......",
" |......",
- " |......",
- " |......",
- " |......"
+ " |...ooo",
+ " |...ooo",
+ " |...ooo"
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "-": "t_gutter_south", "|": "t_gutter_west" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "terrain": { ".": "t_flat_roof", " ": "t_open_air", "-": "t_gutter_south", "|": "t_gutter_west", "o": "t_glass_roof" }
}
},
{
@@ -1300,6 +2020,116 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 6, 23 ], "y": [ 13, 23 ], "density": 0.2 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_21",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "|z...|V..000.........|..",
+ "|....|V.......000....H..",
+ "|z...=...000.........+..",
+ "|zz..|V........MMMM?MH..",
+ "|zzz.|VVVyVVV....*...|..",
+ "------|------|-------|..",
+ "|U.U.U|QQQlll|%n^%%!%|y.",
+ "|U.U.U|Q.....=......%|..",
+ "|U...U|QQQQ.Y|$$$$$%%|Y.",
+ "|-=---|----=-|$HHH$--||F",
+ "777~jim~|YY.*%$...$%*.HF",
+ "9999999~|y..*%$.$$$%*.HF",
+ "JJJJJJJ?|...*%$.$%%%*.H.",
+ "9AAAAAA7|%*.*%$.$%*...+.",
+ "99999997|%*.*%$$$%*...H.",
+ "BKB9BKB7|%*.*%%%%%*...HF",
+ "BKB9BKB7|%*..*****...YHF",
+ "77777777|?...........?|F",
+ "-HH+HHH-|-HHHH++HHHH--|.",
+ "........................",
+ "........................",
+ "######################..",
+ " #..",
+ " #.."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "A": "t_carpet_yellow",
+ "B": "t_carpet_yellow",
+ "K": "t_carpet_yellow",
+ "J": "t_carpet_yellow",
+ "i": "t_carpet_green",
+ "%": "t_carpet_green",
+ "j": "t_carpet_green",
+ "m": "t_carpet_green",
+ "~": "t_carpet_green",
+ "Q": "t_linoleum_gray",
+ "$": "t_conveyor"
+ },
+ "furniture": { "%": "f_counter", "^": "f_sink", "*": "f_stool", "!": "f_oven", "0": "f_table" },
+ "items": {
+ "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] },
+ "^": { "item": "restaur_sink", "chance": 50, "repeat": [ 1, 2 ] },
+ "n": { "item": "restaur_sink", "chance": 50, "repeat": [ 1, 2 ] },
+ "!": { "item": "oven", "chance": 50, "repeat": [ 1, 2 ] },
+ "$": [
+ { "item": "diner_food", "chance": 10 },
+ { "item": "baked_goods", "chance": 10 },
+ { "item": "groce_premade", "chance": 10 }
+ ],
+ "%": [
+ { "item": "bar_food", "chance": 20 },
+ { "item": "diner_food", "chance": 20 },
+ { "item": "groce_premade", "chance": 20 }
+ ],
+ "Q": [
+ { "item": "restaur_kitchen", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "groce_bread", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "groce_condiment", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "l": [
+ { "item": "restaur_fridge", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "baked_goods", "chance": 20 },
+ { "item": "fridge", "chance": 10, "repeat": [ 1, 2 ] }
+ ],
+ "K": [
+ { "item": "baked_goods", "chance": 20 },
+ { "item": "coffee_counter", "chance": 20 },
+ { "item": "tea_dishes", "chance": 20 }
+ ],
+ "J": [
+ { "item": "coffee_counter", "chance": 20 },
+ { "item": "coffee_condiments", "chance": 20 },
+ { "item": "tea_dishes", "chance": 20 }
+ ],
+ "~": [
+ { "item": "coffee_display_2", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "coffee_prep", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "tea_dishes", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "U": [
+ { "item": "baked_goods", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "groce_bread", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "groce_ingredient", "chance": 30, "repeat": [ 1, 2 ] }
+ ],
+ "m": { "item": "coffee_freezer", "chance": 30, "repeat": [ 1, 2 ] },
+ "V": { "item": "consumer_electronics", "chance": 25, "repeat": [ 1, 2 ] },
+ "0": [ { "item": "elecsto_lights", "chance": 20, "repeat": [ 1, 2 ] }, { "item": "elecsto_books", "chance": 30 } ],
+ "z": [
+ { "item": "consumer_electronics", "chance": 20 },
+ { "item": "elecsto_persele", "chance": 30 },
+ { "item": "elecsto_pcs", "chance": 30 }
+ ],
+ "M": [
+ { "item": "elecsto_pcs", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "elecsto_persele", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "elecsto_cameras", "chance": 10, "repeat": [ 1, 2 ] }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1329,37 +2159,12 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................"
+ "oooooooooooooooooooooo..",
+ "oooooooooooooooooooooo..",
+ "oooooooooooooooooooooo.."
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ],
- "place_nested": [
- {
- "chunks": [
- [ "null", 20 ],
- [ "roof_2x2_utilities_b", 15 ],
- [ "roof_2x2_utilities_c", 5 ],
- [ "roof_2x2_utilities_d", 40 ],
- [ "roof_2x2_utilities", 50 ],
- [ "roof_4x4_utility_1", 30 ]
- ],
- "x": [ 3, 15 ],
- "y": [ 3, 7 ]
- },
- {
- "chunks": [
- [ "null", 20 ],
- [ "roof_4x4_party", 15 ],
- [ "roof_4x4_utility", 40 ],
- [ "roof_4x4_utility_1", 30 ],
- [ "roof_6x6_utility", 20 ]
- ],
- "x": [ 3, 15 ],
- "y": [ 3, 7 ]
- }
- ]
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
+ "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
{
@@ -1411,38 +2216,77 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_22_roof",
- "weight": 200,
+ "om_terrain": "mall_b_22",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_linoleum_gray",
"rows": [
+ "....# #...........",
+ "....# #....M.M...|",
+ "....# #....MAM...H",
+ "....# #....MMM...H",
+ "....# #..........|",
+ "....# #..........|",
+ "...F# #F.........H",
+ "...F# #F.........+",
+ "...F# #F.........+",
+ "...Y# #Y.........H",
+ "...F# #F.........|",
+ "...F# #F.........|",
+ "...F# #F...KKK...H",
+ "....#########....KAK...H",
+ ".................K.K...|",
"........................",
"........................",
"........................",
+ "......................##",
+ "........#####.........# ",
+ ".......## ##........# ",
+ "......## ##.......# ",
+ ".....## ##......##",
+ "....## ##......."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": {
+ "K": { "item": "cell_shop", "chance": 50 },
+ "M": { "item": "jewelry_accessories", "chance": 50 },
+ "Y": { "item": "floor_trash", "chance": 70, "repeat": [ 1, 2 ] }
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_22_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
+ "....ooooooooo...........",
"........................",
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................"
+ "......................oo",
+ ".........ooo..........oo",
+ "........ooooo.........oo",
+ ".......ooooooo........oo",
+ "......ooooooooo.......oo",
+ ".....ooooooooooo........"
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" }
}
},
{
@@ -1506,6 +2350,62 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 2, 21 ], "density": 0.15 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_23",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "...........| ",
+ "-HH--+H---|---|---------",
+ "yKK^^^K|PP|t.%|IB..Pzzzz",
+ "^^^^^^K|..|...|I......zz",
+ "^^^^^^K|=--=|=-------=--",
+ "^^^^^^^^^^^^|^^VVYVV^^^y",
+ "^^^^^^^^^^^^|^^^^^^^A^^^",
+ "^KK^KK^^J^^~|^^JJJJJJ?J^",
+ "^KK^KK^^J^^~|^^99999999^",
+ "^^^^^^^^?A^~|V^90099009^",
+ "^KK^KK^^J^^^|V^99999999^",
+ "^KK^KK^^JJJ^|V^90099009^",
+ "^^^^^^^^^^^^|^^99999999^",
+ "^KKy^^^^^KK^|yMM^^^^^^MM",
+ "-HH--+H--HH-|-HH--+H--HH",
+ "........................",
+ "........................",
+ "........................",
+ "####################....",
+ " #....",
+ " #....",
+ " #....",
+ "####################....",
+ "........................"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "0": "t_carpet_yellow",
+ "B": "t_linoleum_gray",
+ "I": "t_linoleum_gray",
+ "P": "t_linoleum_gray",
+ "z": "t_linoleum_gray",
+ "t": "t_linoleum_gray",
+ "%": "t_linoleum_gray"
+ },
+ "furniture": { "%": "f_sink", "0": "f_table" },
+ "items": {
+ "I": { "item": "cubical_office", "chance": 70, "repeat": [ 2, 4 ] },
+ "M": { "item": "smoke_shop", "chance": 70, "repeat": [ 2, 4 ] },
+ "J": { "item": "office_supplies", "chance": 10 },
+ "P": { "item": "cleaning", "chance": 60, "repeat": [ 2, 4 ] },
+ "K": { "item": "kitchen_counters", "chance": 50, "repeat": [ 1, 2 ] },
+ "0": { "item": "smoke_shop", "chance": 50, "repeat": [ 1, 2 ] },
+ "V": { "item": "misc_smoking", "chance": 50, "repeat": [ 1, 2 ] },
+ "z": { "item": "smoke_shop", "chance": 50, "repeat": [ 4, 8 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1531,14 +2431,14 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "oooooooooooooooooooo....",
+ "oooooooooooooooooooo....",
+ "oooooooooooooooooooo....",
+ "oooooooooooooooooooo....",
+ "oooooooooooooooooooo....",
"........................"
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north" },
+ "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 1, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -1604,6 +2504,54 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.2 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_24",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ "------------------------",
+ "z|t|t|t|t..|t|t|t|t..|RR",
+ "z|=|=|=|-=-|=|=|=|-=-|R^",
+ "-|.........|.........|R^",
+ "^|Y%%%%%..Y|Y%%%%%..Y|^^",
+ "V|------=---------=---^^",
+ "V|yFFF^^^^^^yFFF^^^^^^^^",
+ "y|^^^^777777777^^^^^^^^^",
+ "V|d^^^7K7K7K7K7^Q^^Q^^Q^",
+ "V|T^^^7K7K7K7K7^Q^^Q^^Q^",
+ "V|T^^^7K7K7K7K7^Q^^Q^^Q^",
+ "^|d^^^777777777^^^^^^^^^",
+ "^|T^^^7K7K7K7K7^Q^^Q^^Q^",
+ "-|T^^^7K7K7K7K7^Q^^Q^^Q^",
+ ".Hy^^^777777777^^^^^^^^^",
+ ".Hd^^^^^^^^^^^^^^^^^^^^^",
+ ".Hydy|^^^|d|^^^|^dyd^^^^",
+ ".|HHH|...|H|...|-HHH-|R^",
+ "....................Y|R^",
+ ".....................Hd^",
+ ".....................--^",
+ "......................^^",
+ "......................^^"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "%": "t_linoleum_gray", "t": "t_linoleum_gray", "Y": "t_linoleum_gray", "K": "t_carpet_green" },
+ "furniture": { "%": "f_sink" },
+ "items": {
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] },
+ "V": { "item": "smoke_shop", "chance": 30, "repeat": [ 2, 4 ] },
+ "z": { "item": "smoke_shop", "chance": 50, "repeat": [ 4, 8 ] },
+ "R": { "item": "shoestore_shoes", "chance": 30, "repeat": [ 2, 4 ] },
+ "K": { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] },
+ "T": { "item": "hatstore_accessories", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": [ { "item": "pants", "chance": 30, "repeat": [ 2, 4 ] }, { "item": "suits", "chance": 30, "repeat": [ 2, 4 ] } ],
+ "d": [ { "item": "jackets", "chance": 40 }, { "item": "pants", "chance": 100 }, { "item": "shirts", "chance": 100 } ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1657,9 +2605,9 @@
"Y ??? @@c@@ @c ",
" ??? ",
" HHHHH hnnh ccc cc ",
- " | c@@ c ",
+ " <| c@@ c ",
" HHHHH hh @@ ",
- " | hnnh ",
+ " |< hnnh ",
" HHHHH hnnh ",
" VEEEV hh ",
" VEEEV r",
@@ -1697,6 +2645,54 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.2 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_25",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ "------------------------",
+ "RRRRRRRRRRR|^|^|^F|SSSSS",
+ ".R..R..R..R|%|%|%-|..B..",
+ ".R..R..R..R|......|.III.",
+ "...........|--%---|.C.C.",
+ "...yFFFy..........|--=--",
+ "...HHHHH................",
+ "......>|.....MMMMMMM....",
+ "...HHHHH..............d.",
+ "J..|>.....J..MMMMMMM....",
+ "J.AHHHHH..J...........d.",
+ "?..HEEEHA.?..MMMMMMM....",
+ "J..HEEEH..J...........d.",
+ "JJ.H+++H.JJ..MMMMMMM....",
+ "...y...y................",
+ "........................",
+ ".9999999999.....9999999.",
+ ".9KK9KK9KK9..d..9K9K9K9.",
+ ".9KK9KK9KK9..y..9999999.",
+ ".9999999999..d..9K9K9K9.",
+ ".9KK9KK9KK9..y..9999999.",
+ ".9KK9KK9KK9..d..9K9K9K9.",
+ ".9999999999.....9999999."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { ".": "t_floor", "-": "t_wall_w", "K": "t_carpet_yellow", ">": "t_stairs_down" },
+ "furniture": { "%": "f_beaded_door" },
+ "items": {
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] },
+ "M": { "item": "jewelry_front", "chance": 30, "repeat": [ 1, 2 ] },
+ "J": { "item": "office", "chance": 10 },
+ "R": { "item": "shoestore_shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "K": { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] },
+ "S": { "item": "office_paper", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": [ { "item": "pants", "chance": 30, "repeat": [ 2, 4 ] }, { "item": "suits", "chance": 30, "repeat": [ 2, 4 ] } ],
+ "d": [ { "item": "jackets", "chance": 40 }, { "item": "pants", "chance": 100 }, { "item": "shirts", "chance": 100 } ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1791,6 +2787,47 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_26",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " ",
+ "----------| ",
+ "|zzzzzz..z| ",
+ "=........z| ",
+ "|-----|...|-| ",
+ "|@@@Wy|z..|yH ",
+ "|@....=...|dH ",
+ "......|...=dH ",
+ "Q.Q.Q.|z..|dH ",
+ "Q.Q.Q.|z..|yH ",
+ "Q.Q.Q.|z..|-| ",
+ "Q.Q.Q.|..z| ",
+ "Q.Q.Q.|.zz| ",
+ "......|...| ",
+ "Q.Q.Q.|z..| ",
+ "Q.Q.Q.|..z| ",
+ "Q.Q.Q.|..z| ",
+ "Q.Q.Q.|...| ",
+ "Q.Q.Q.|...| ",
+ "......|z..| ",
+ "Q.Q.Q.|z..| ",
+ "Q.Q.Q.|z.z| ",
+ "Q.Q.Q.|..z| ",
+ "Q.Q.Q.|...| "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { ".": "t_floor" },
+ "items": {
+ "Q": { "item": "allclothes", "chance": 20, "repeat": [ 1, 2 ] },
+ "y": { "item": "trash", "chance": 10 },
+ "z": { "item": "allclothes", "chance": 20, "repeat": [ 2, 4 ] }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1961,6 +2998,53 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 12 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_29",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " H...# ",
+ " H...# ",
+ " H...# ",
+ " H...# ",
+ " H...###",
+ " H......",
+ " |......",
+ " |-H++H-",
+ " H^6666^",
+ " H^!666F",
+ " |A!666F",
+ " |^?666F",
+ " |^6666^",
+ " |-HHHH---22^^22",
+ " |JJJJJJ^y^^^^^^",
+ " HJAAAA^^^^^^JJJ",
+ " HJA^^^^B^^^^J^V",
+ " HJA^^^^KKB^^J^V",
+ " HJA^^^BKK^^^J^V",
+ " |JJJ^^^^B^^^^^Y",
+ " |--2HHH222^^222",
+ " |JJJJJJ^^^JJJ",
+ " HJAA^A^^^^A^^",
+ " HJA^^^^^^^^AJ"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "!": "t_carpet_red" },
+ "furniture": { "%": "f_pool_table", "!": "f_counter" },
+ "items": {
+ "V": { "item": "alcohol", "chance": 50 },
+ "!": { "item": "office", "chance": 40, "repeat": [ 2, 4 ] },
+ "J": { "item": "bar_alcohol", "chance": 20 },
+ "K": [
+ { "item": "restaur_table", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "bar_alcohol", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "restaur_sink", "chance": 20, "repeat": [ 1, 2 ] }
+ ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -1969,11 +3053,11 @@
"object": {
"fill_ter": "t_open_air",
"rows": [
- " |......",
- " |......",
- " |......",
- " |......",
- " |......",
+ " |...ooo",
+ " |...ooo",
+ " |...ooo",
+ " |...ooo",
+ " |...ooo",
" |......",
" |......",
" |......",
@@ -1994,7 +3078,14 @@
" |............",
" |............"
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north", "-": "t_gutter_south", "|": "t_gutter_west" },
+ "terrain": {
+ ".": "t_flat_roof",
+ " ": "t_open_air",
+ "2": "t_gutter_north",
+ "-": "t_gutter_south",
+ "|": "t_gutter_west",
+ "o": "t_glass_roof"
+ },
"place_items": [ { "item": "roof_trash", "x": [ 19, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -2057,6 +3148,57 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 11 ], "density": 0.2 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_30",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ " #..",
+ " #..",
+ " #..",
+ " #..",
+ "######################..",
+ "...yFFFFy..Y..yFFFFy....",
+ "........................",
+ "--HHH-HHH-++-HHH-HHH-|p.",
+ "2.KKKyKKK....KKKyKKKY|..",
+ "2....................H..",
+ "2..K.K.K........K.K..|--",
+ "2..K.K.K........K.K..|Q^",
+ "2..K.K.K.JJ?JJJ.K.K..|Q^",
+ "2y.......J..A.J......|Q^",
+ "2.MMMM...J......MMMM.|Q^",
+ "2-----------=--------|--",
+ "2I...C|.Yz....zz.|Y.P|I.",
+ "2IB...=..........=..F|IB",
+ "2I...y|...UUUU..z|..P|S.",
+ "2R.SS--=----------------",
+ "2----|..................",
+ "2yj|t|.|----=-----|----=",
+ "=..|+|.|.%%..%|IIS|SII|.",
+ "2....|.|%....%|B..|..B|."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "Q": "t_floor" },
+ "furniture": { "%": "f_crate_c" },
+ "items": {
+ "K": { "item": "beauty", "chance": 30, "repeat": [ 1, 2 ] },
+ "R": { "item": "dollar_books", "chance": 50 },
+ "M": { "item": "beauty", "chance": 40, "repeat": [ 2, 4 ] },
+ "J": { "item": "kitchen", "chance": 10 },
+ "z": { "item": "beauty", "chance": 60, "repeat": [ 2, 4 ] },
+ "I": { "item": "office", "chance": 20 },
+ "Q": { "item": "camping", "chance": 20 },
+ "S": { "item": "office_paper", "chance": 30, "repeat": [ 2, 4 ] },
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ],
+ "U": { "item": "beauty", "chance": 60, "repeat": [ 2, 4 ] },
+ "%": { "item": "candy_shop", "chance": 60, "repeat": [ 2, 4 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2065,11 +3207,11 @@
"object": {
"fill_ter": "t_flat_roof",
"rows": [
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "oooooooooooooooooooooo..",
+ "oooooooooooooooooooooo..",
+ "oooooooooooooooooooooo..",
+ "oooooooooooooooooooooo..",
+ "oooooooooooooooooooooo..",
"........................",
"........................",
"........................",
@@ -2090,28 +3232,8 @@
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ],
- "place_nested": [
- {
- "chunks": [
- [ "null", 20 ],
- [ "roof_2x2_utilities_b", 15 ],
- [ "roof_2x2_utilities_c", 5 ],
- [ "roof_2x2_utilities_d", 40 ],
- [ "roof_2x2_utilities", 50 ],
- [ "roof_2x2_golf", 20 ],
- [ "roof_4x4_utility_1", 30 ]
- ],
- "x": [ 3, 15 ],
- "y": [ 3, 7 ]
- },
- {
- "chunks": [ [ "null", 20 ], [ "roof_4x4_utility", 40 ], [ "roof_4x4_utility_1", 30 ], [ "roof_6x6_utility", 20 ] ],
- "x": [ 3, 20 ],
- "y": [ 3, 20 ]
- }
- ]
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
+ "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
{
@@ -2175,6 +3297,71 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_31",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "....# #.......",
+ "....# #.......",
+ "....## ##.......",
+ ".....## ##........",
+ "......## ##.........",
+ ".......## ##..........",
+ "........#####...........",
+ "........................",
+ "....................####",
+ "....................# #",
+ "--HHHH-++-HHHH-|....# #",
+ "^^MMMM^^^^MMMM^|...F# #",
+ "^^^^^^^^^^^^^^^|...F# #",
+ "^JJJ?JJ^^KK^KK^|...F# #",
+ "^^^^A^J^^KK^KK^H...y# #",
+ "-=--^^?^^^^^^^^+...F# #",
+ "..P|A^J^^KK^KK^H...F# #",
+ "..P|^^J^^KK^KK^|...F# #",
+ "..P|^^^^^^^^^^^|....# #",
+ "-=-|R^77777777^|...Y# #",
+ "...|R^7*]*7r%7^H....# #",
+ "---|R^7*'*7r%7^H...F# #",
+ "zzz|R^7***7777^H...F# #",
+ "..z|^^77777777^|...F# #"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "*": "t_carpet_green",
+ "'": "t_carpet_green",
+ "r": "t_carpet_green",
+ "b": "t_carpet_green",
+ "]": "t_carpet_green",
+ "%": "t_carpet_green",
+ "z": "t_linoleum_gray",
+ "F": "t_linoleum_gray",
+ "P": "t_linoleum_gray",
+ "Y": "t_linoleum_gray",
+ "y": "t_linoleum_gray"
+ },
+ "furniture": {
+ "*": "f_canvas_wall",
+ "'": "f_groundsheet",
+ "]": "f_canvas_door",
+ "%": "f_camp_chair",
+ "b": "f_brazier",
+ "r": "f_tourist_table"
+ },
+ "items": {
+ "K": { "item": "camping", "chance": 30, "repeat": [ 1, 4 ] },
+ "R": { "item": "camping", "chance": 30, "repeat": [ 1, 4 ] },
+ "J": { "item": "camping", "chance": 10 },
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ],
+ "M": { "item": "knife_shop", "chance": 40, "repeat": [ 2, 4 ] },
+ "z": { "item": "softdrugs", "chance": 40, "repeat": [ 2, 4 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2183,32 +3370,32 @@
"object": {
"fill_ter": "t_flat_roof",
"rows": [
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................"
- ],
- "terrain": { ".": "t_flat_roof" },
+ "....ooooooooooooo.......",
+ "....ooooooooooooo.......",
+ ".....ooooooooooo........",
+ "......ooooooooo.........",
+ ".......ooooooo..........",
+ "........ooooo...........",
+ ".........ooo............",
+ "........................",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo"
+ ],
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -2273,6 +3460,72 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 0, 14 ], "y": [ 1, 22 ], "density": 0.2 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_32",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "........................",
+ "........................",
+ "....|-HHHH-HH+H-HHH-|-HH",
+ "....|yQQQ...AA.A.A..|V66",
+ "....HQ....JJJJJJJ?J.|V66",
+ "....HQ...AJ...A.....|V6V",
+ "....+....AJ..~jll.n~|---",
+ "....+....AJ..~---=--|IIS",
+ "....HY...AJ..~|IB.=.=.B.",
+ "....|y...AJ..~|I.S|.|---",
+ "....--------------|.=...",
+ "F...|.MMMyMMM.|IIS|.|*.U",
+ "F...H.........|.B.|.|*.U",
+ "F...H..MM..%%%|...|.|..U",
+ "y...+..MM..?.A|-=-|.|*..",
+ "F...+..MM..%..=..z|.|***",
+ "F...H..MM..%..|z.z|.----",
+ "F...H......%%.|z..=.....",
+ "....|.MMMy....|zzz|.....",
+ "Y...--------------|-=---",
+ "....|TTT|^|^|^|^|ppp.S..",
+ "F..||^^^|!|!|!|!|pA...B.",
+ "F..Hd^^^^^^^^^^^|p..pppZ",
+ "F..Hd^^^@@^^^@@^|-=-HHH-"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "V": "t_carpet_red", "!": "t_floor", "T": "t_floor", "d": "t_floor", "@": "t_floor" },
+ "furniture": { "%": "f_counter", "*": "f_crate_c", "!": "f_beaded_door", "p": "f_desk" },
+ "items": {
+ "J": { "item": "coffee_counter", "chance": 20 },
+ "j": { "item": "coffee_dishes", "chance": 20 },
+ "l": { "item": "coffee_freezer", "chance": 20, "repeat": [ 2, 4 ] },
+ "n": { "item": "coffee_dishes", "chance": 30, "repeat": [ 2, 4 ] },
+ "~": [
+ { "item": "coffee_condiments", "chance": 20, "repeat": [ 2, 4 ] },
+ { "item": "coffee_prep", "chance": 20, "repeat": [ 2, 4 ] }
+ ],
+ "Y": { "item": "coffee_trash", "chance": 30, "repeat": [ 2, 4 ] },
+ "Q": { "item": "coffee_display_2", "chance": 30, "repeat": [ 2, 4 ] },
+ "S": { "item": "office_paper", "chance": 20 },
+ "I": { "item": "office", "chance": 20 },
+ "z": { "item": "glasses", "chance": 20 },
+ "M": { "item": "glasses", "chance": 20 },
+ "%": { "item": "office", "chance": 20 },
+ "U": { "item": "cleaning", "chance": 20 },
+ "p": { "item": "leather_shop_repair", "chance": 40, "repeat": [ 2, 4 ] },
+ "T": { "item": "leather_shop", "chance": 30, "repeat": [ 2, 4 ] },
+ "V": { "item": "bags", "chance": 30, "repeat": [ 2, 4 ] },
+ "*": { "item": "bags", "chance": 30, "repeat": [ 2, 4 ] },
+ "d": [
+ { "item": "leather_shop", "chance": 100 },
+ { "item": "pants", "chance": 50 },
+ { "item": "shirts", "chance": 50 },
+ { "item": "leather_shop_accessories", "chance": 100 }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2365,10 +3618,70 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_33_roof",
- "weight": 200,
+ "om_terrain": "mall_b_33",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_floor",
+ "rows": [
+ ".....................--^",
+ ".........HHH.........H^^",
+ "H-HH++HH-HdH-|.......|--",
+ "6666666666666|.......|..",
+ "66%%%6%%%6666HH......H..",
+ "6666666666666dH......H.]",
+ "|V66666%6%6%6HH......|..",
+ "|V66666%6%6%6|.......H.]",
+ "=666J66%6%6%6H.......H..",
+ "|6A6?66666666+.......+..",
+ "|666J66666666+.......H..",
+ "|666J66%6%6%6H.......H.0",
+ "|6A6J66%6%6%6|.......|..",
+ "|666?66%6%6%6HH......H.0",
+ "=666J66666666dH......H..",
+ "|V66666VVV666HH......|FF",
+ "-------------|.......|--",
+ ".............=..........",
+ ".............=..........",
+ "--=----------|.......|--",
+ "|^^S|y^^^^^^^|.......|.|",
+ "|^B^=^^K^K^K^H.......|-|",
+ "|III|y^K^K^K^H.........H",
+ "|----^^K^K^K^H.........+"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "V": "t_carpet_red",
+ "J": "t_carpet_red",
+ "d": "t_carpet_red",
+ "A": "t_carpet_red",
+ "%": "t_carpet_red",
+ "0": "t_linoleum_gray",
+ "]": "t_linoleum_gray",
+ "F": "t_linoleum_gray"
+ },
+ "furniture": { "%": "f_counter", "*": "f_crate_c", "!": "f_beaded_door", "p": "f_desk", "]": "f_ergometer", "0": "f_exercise" },
+ "items": {
+ "K": { "item": "pottery", "chance": 30, "repeat": [ 2, 4 ] },
+ "J": { "item": "office", "chance": 20 },
+ "%": { "item": "bags", "chance": 30, "repeat": [ 1, 2 ] },
+ "V": { "item": "bags", "chance": 30, "repeat": [ 2, 4 ] },
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 100 },
+ { "item": "bags", "chance": 100 }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_33_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
"rows": [
"........................",
"........................",
@@ -2377,10 +3690,10 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "..................o.....",
+ "..................o.....",
+ "..................o.....",
+ "..................o.....",
"........................",
"........................",
"........................",
@@ -2395,23 +3708,8 @@
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ],
- "place_nested": [
- {
- "chunks": [
- [ "null", 20 ],
- [ "roof_2x2_utilities_b", 15 ],
- [ "roof_2x2_utilities_c", 5 ],
- [ "roof_2x2_utilities_d", 40 ],
- [ "roof_2x2_utilities", 50 ],
- [ "roof_3x3_wine", 30 ],
- [ "roof_4x4_utility_1", 30 ]
- ],
- "x": [ 3, 22 ],
- "y": [ 3, 22 ]
- }
- ]
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
+ "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
{
@@ -2473,6 +3771,65 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_34",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "^^^^C0C^^^^^C0C^^^^^C0C^",
+ "------------------------",
+ "..uuu...................",
+ "........------+------=--",
+ ".].].*..|t|FFY.PPP|@...S",
+ "........|.|F.....P|@...a",
+ ".].].*..=.|FF..PPP|P..BI",
+ "........|.|---+---|P...I",
+ ".....*..|j|%.=.=.%|W...S",
+ "........----------------",
+ ".!.!.*..|RRR7RRR|j.Y.=.t",
+ "........|.7A777.|J...---",
+ ".!.!.*..|.JJ?JJ.|j...=.t",
+ "........|.77777.|J...---",
+ ".FFF.FF.|y.....B|j......",
+ "-----------...-----=----",
+ ".........................",
+ "........................",
+ "-HH--HH------------=----",
+ "^^)^^^)^^^^^|IIS|j......",
+ "^77777777J7^|B..|J...---",
+ "^7K7K7K77?A^|-=-|j...=.t",
+ "^7K7K7K77J7^=..z|J...---"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "C": "t_floor", "0": "t_floor", ")": "t_floor", "A": "t_carpet_green", "J": "t_carpet_green", "K": "t_carpet_green" },
+ "furniture": {
+ "*": "f_treadmill",
+ "]": "f_ergometer",
+ "!": "f_exercise",
+ "%": "f_shower",
+ "0": [ "f_indoor_plant_y", "f_indoor_plant" ]
+ },
+ "items": {
+ "R": [
+ { "item": "magazines", "chance": 40, "repeat": [ 2, 4 ] },
+ { "item": "oa_discarded_news", "chance": 40, "repeat": [ 2, 4 ] }
+ ],
+ "Y": { "item": "trash", "chance": 50 },
+ "F": { "item": "gym", "chance": 10 },
+ "u": { "item": "default_vending_machine", "chance": 10 },
+ "I": { "item": "office", "chance": 20 },
+ "P": { "item": "gym", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ ")": { "item": "keg_wine_intact", "chance": 100 },
+ "z": { "item": "crate_wine", "chance": 30 },
+ "K": [ { "item": "table_wine", "chance": 30 }, { "item": "wines_worthy", "chance": 30 } ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2483,15 +3840,15 @@
"rows": [
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ ".................#######",
+ ".................#______",
+ ".................1______",
+ ".................1______",
+ ".................1______",
+ ".................1______",
+ ".................1______",
+ "................3#3_____",
+ ".................####=##",
"........................",
"........................",
"........................",
@@ -2506,8 +3863,49 @@
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "terrain": {
+ ".": "t_flat_roof",
+ "#": "t_wall_w",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control",
+ "=": "t_door_c",
+ "_": "t_concrete"
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_34",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " 2222222",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " |......",
+ " -------",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -2552,6 +3950,51 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_35",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "^^^^^^|^^z| ",
+ "^^C^^y|z^^| ",
+ "|-----|-=-| ",
+ "|EEEEE|^^^| ",
+ "|EEEEE+^^^| ",
+ "|EEEEE+^^^| ",
+ "|EEEEE+^^^| ",
+ "|EEEEE|^^^| ",
+ "|-----|^^^| ",
+ "|<^^^^=^^^| ",
+ "------|^^^|| ",
+ "|t.=.Y|^^^yH ",
+ "|---..|^^^dH ",
+ "|t.=..|^^^yH ",
+ "|---..|^^^|| ",
+ ".....Y|^^^| ",
+ "|-----|^^^| ",
+ "=^^^^^^^^^| ",
+ "=^^^^^^^^^| ",
+ "|-----|^^^| ",
+ ".....Y|^^^| ",
+ "|---..|^^^| ",
+ "|t.=..|^^^| ",
+ "|---..|^^^| "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "Y": "t_linoleum_gray", "t": "t_linoleum_gray", "<": "t_stairs_up" },
+ "items": {
+ "Y": { "item": "trash", "chance": 30, "repeat": [ 2, 4 ] },
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 10 }
+ ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2562,15 +4005,15 @@
"rows": [
"..........3 ",
"..........3 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
- "..........33 ",
+ "|||||||...3 ",
+ "|EEEEE|...3 ",
+ "=EEEEE|...3 ",
+ "=EEEEE|...3 ",
+ "=EEEEE|...3 ",
+ "|EEEEE|...3 ",
+ "|||||||...3 ",
+ "_>|.......3 ",
+ "|||.......33 ",
"...........3 ",
"...........3 ",
"...........3 ",
@@ -2585,10 +4028,53 @@
"..........3 ",
"..........3 "
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "3": "t_gutter_east" },
+ "terrain": {
+ ".": "t_flat_roof",
+ " ": "t_open_air",
+ "3": "t_gutter_east",
+ ">": "t_stairs_down",
+ "|": "t_wall_w",
+ "E": "t_elevator",
+ "_": "t_concrete"
+ },
"place_items": [ { "item": "roof_trash", "x": [ 0, 8 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_35",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ "2222223 ",
+ "......3 ",
+ "......3 ",
+ "......3 ",
+ "......3 ",
+ "......3 ",
+ "..3---3 ",
+ "..3 ",
+ "--- ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2736,6 +4222,70 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_38",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " |J^^^^^^^^^^J",
+ " |J^^^%%^^%%^^",
+ " |-|JA^^%%^^%%^^",
+ " |JJJ^^^%%^^%%^^",
+ " HJA^^^^^^^^^^^^",
+ " |^^^^^^^^^^^^^^",
+ " H^^%%^^%%^^%%^^",
+ " H^^%%^^%%^^%%^^",
+ " H^^%%^^%%^^%%^^",
+ " |^^^^^^^^^^^^AJ",
+ " H^^^^^^^AAAAAAJ",
+ " |^^^^^^JJJJJJJJ",
+ " |-+-+----------",
+ " |.....|9wII|bbb",
+ " HF....=999B|b6b",
+ " HF....|SS99|666",
+ " |y...-|--=--999",
+ " HF...Hd99999999",
+ " HF...Hd999!@@!9",
+ " |....-|99999999",
+ " |-|...|V99MMMM9",
+ " |...|V9999999",
+ " |...|V99MMMM9",
+ " |...|V9999999",
+ " |...|99999999"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "F": "t_linoleum_gray",
+ "y": "t_linoleum_gray",
+ "b": "t_carpet_red",
+ "M": "t_carpet_yellow",
+ "V": "t_carpet_yellow",
+ "I": "t_carpet_yellow",
+ "B": "t_carpet_yellow",
+ "S": "t_carpet_yellow",
+ "@": "t_carpet_yellow",
+ "!": "t_carpet_yellow",
+ "w": "t_carpet_yellow",
+ "d": "t_carpet_yellow"
+ },
+ "furniture": { "%": "f_pool_table", "!": [ "f_indoor_plant_y", "f_indoor_plant" ] },
+ "items": {
+ "%": { "item": "pool_table", "chance": 20 },
+ "J": [
+ { "item": "restaur_table", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "bar_alcohol", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "restaur_sink", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "w": { "item": "mansion_safe", "chance": 20 },
+ "S": { "item": "office_paper", "chance": 20 },
+ "d": { "item": "fancyfurs", "chance": 20 },
+ "V": { "item": "fancyfurs", "chance": 20 },
+ "M": { "item": "fancyfurs", "chance": 20 }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2832,6 +4382,71 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_39",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "2----|.|z...zz|..Z|W..|.",
+ "2J..n|.|--=-----=-|-=---",
+ "2l..j|.|VV..VVV..V|.....",
+ "2l..J|.|V.888A88.V|Q....",
+ "2Y..J|.|..8%%%?%..|Q..*?",
+ "=...i|.|V.888888.V|Q....",
+ "2l..i|.|V.888888.V|Q..Q.",
+ "2l..J|.|V.8KKKK8.V|Q..Q.",
+ "2--=-|.|V.888888.V|Q..Q.",
+ "2U..U|.|V.8KKKK8.V|Q..Q.",
+ "2U...=.|..888888..|Q....",
+ "2UUUU|.|y........y|.....",
+ "-----|=--HH-++-HH---HH-+",
+ "|@99b|..................",
+ "|@99b|..................",
+ "--=--|H|................",
+ "999999dH......yFFFyFFF..",
+ "999999dH....y...........",
+ "!@@!99dH....F...........",
+ "99999|H|....F...........",
+ "MMMM99H.....F...|-HH-HH-",
+ "999999+.....y...|.B0BB0B",
+ "MMMM99H.....F...H.B0BB0B",
+ "99999|H|....F...H......."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "b": "t_carpet_yellow",
+ "M": "t_carpet_yellow",
+ "@": "t_carpet_yellow",
+ "!": "t_carpet_yellow",
+ "d": "t_carpet_yellow",
+ "K": "t_carpet_purple",
+ "%": "t_carpet_purple",
+ "A": "t_carpet_purple"
+ },
+ "furniture": { "!": [ "f_indoor_plant_y", "f_indoor_plant" ], "%": "f_counter", "*": "f_counter", "0": "f_table" },
+ "items": {
+ "n": { "item": "restaur_sink", "chance": 20, "repeat": [ 3, 5 ] },
+ "l": { "item": "restaur_fridge", "chance": 20, "repeat": [ 3, 5 ] },
+ "U": { "item": "restaur_kitchen", "chance": 20, "repeat": [ 3, 5 ] },
+ "i": { "item": "oven", "chance": 20 },
+ "j": { "item": "restaur_sink", "chance": 20 },
+ "Y": { "item": "trash", "chance": 20 },
+ "J": [
+ { "item": "restaur_table", "chance": 30 },
+ { "item": "restaur_kitchen", "chance": 30 },
+ { "item": "restaur_sink", "chance": 20 }
+ ],
+ "d": { "item": "fancyfurs", "chance": 20 },
+ "M": { "item": "fancyfurs", "chance": 20 },
+ "V": { "item": "candy_shop", "chance": 20, "repeat": [ 3, 5 ] },
+ "K": { "item": "candy_shop", "chance": 20, "repeat": [ 3, 5 ] },
+ "Q": { "item": "softdrugs", "chance": 20, "repeat": [ 3, 5 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2923,6 +4538,76 @@
"place_vehicles": [ { "vehicle": "golf_cart", "x": 12, "y": 12, "chance": 35, "rotation": 0 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_40",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "...|R^7***D77D^|...y# #",
+ "-=-|R^7*']77%7^H...F# #",
+ "...|R^7***L7D7^H...F# #",
+ "J.Q|R^77777777^H...F# #",
+ "J.Q|^!d^^^^^d!^|....# #",
+ "..Q|-HH-H+H-HH-|....####",
+ "Q.Q|....................",
+ "Q.Q|....................",
+ "Q.Q|....................",
+ "Q.Q|....########........",
+ "..Q|....# #........",
+ "..Y|....# #........",
+ "-H-|....# #........",
+ "........# #...#####",
+ "........# #...# ",
+ "........# #...# ",
+ "........########...# ",
+ "...................# ",
+ "...................# ",
+ "...................#####",
+ "HH-|....................",
+ "...|-H++H-H++H-|y.......",
+ "...............|-|Y.....",
+ ".................|Y...FK"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "*": "t_carpet_green",
+ "'": "t_carpet_green",
+ "L": "t_carpet_green",
+ "D": "t_carpet_green",
+ "]": "t_carpet_green",
+ "%": "t_carpet_green",
+ "Q": "t_linoleum_gray",
+ "Y": "t_linoleum_gray",
+ "J": "t_linoleum_gray",
+ "y": "t_linoleum_gray",
+ "F": "t_linoleum_gray",
+ "K": "t_linoleum_gray"
+ },
+ "furniture": {
+ "*": "f_canvas_wall",
+ "'": "f_groundsheet",
+ "]": "f_canvas_door",
+ "D": "f_camp_chair",
+ "%": "f_brazier",
+ "L": "f_tourist_table",
+ "!": [ "f_indoor_plant_y", "f_indoor_plant" ]
+ },
+ "items": {
+ "Q": { "item": "softdrugs", "chance": 30, "repeat": [ 2, 3 ] },
+ "R": { "item": "book_survival", "chance": 30, "repeat": [ 2, 3 ] },
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 100 },
+ { "item": "shoestore_shoes", "chance": 100 }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -2931,32 +4616,32 @@
"object": {
"fill_ter": "t_flat_roof",
"rows": [
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
+ "....................oooo",
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "........oooooooo........",
+ "........oooooooo........",
+ "........oooooooo........",
+ "........oooooooo........",
+ "........oooooooo...ooooo",
+ "........oooooooo...ooooo",
+ "........oooooooo...ooooo",
+ "........oooooooo...ooooo",
+ "...................ooooo",
+ "...................ooooo",
+ "...................ooooo",
"........................",
"........................",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -3012,16 +4697,61 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_41_roof",
- "weight": 200,
+ "om_terrain": "mall_b_41",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_floor",
"rows": [
+ "Y..--^^^^^^^^^^^^^^^^^^^",
+ "F...|^^^KK^^KK^^J^^A^^^^",
+ "F...H^^^KK^^KK^^JJJJJJ^T",
+ "F...+^^^^^^^^^^^^^^^^^^T",
+ "....H^^^KK^^KK^^KK^^KK^T",
+ "....|^^^KK^^KK^^KK^^KK^y",
+ "...HH^^^^^^^^^^^^^^^^^^T",
+ "...Hd^^^^^d^C^d^C^d^^^^T",
+ "...HH^^^^^^^^^^^^^^^^^^T",
+ "....|yMMM^TT^^^^^TT^MMMy",
+ "....|-HHH----H+H----HHH-",
"........................",
"........................",
+ "########################",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "########################",
"........................",
"........................",
"........................",
+ "F.F%F.F%F.F%F.F%F.F%F.F%"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "F": "t_linoleum_gray", "Y": "t_linoleum_gray", "%": "t_linoleum_gray" },
+ "furniture": { "%": "f_table" },
+ "items": {
+ "S": { "item": "office_paper", "chance": 20 },
+ "J": { "item": "office", "chance": 20 },
+ "M": { "item": "leather_shop_accessories", "chance": 30 },
+ "K": { "item": "leather_shop", "chance": 40 },
+ "T": { "item": "leather_shop", "chance": 30 },
+ "d": [
+ { "item": "leather_shop", "chance": 100 },
+ { "item": "pants", "chance": 40 },
+ { "item": "shirts", "chance": 40 },
+ { "item": "leather_shop_accessories", "chance": 100 }
+ ]
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_41_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
"........................",
"........................",
"........................",
@@ -3035,14 +4765,19 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
+ "oooooooooooooooooooooooo",
+ "oooooooooooooooooooooooo",
+ "oooooooooooooooooooooooo",
+ "oooooooooooooooooooooooo",
+ "oooooooooooooooooooooooo",
+ "oooooooooooooooooooooooo",
+ "oooooooooooooooooooooooo",
"........................",
"........................",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -3098,6 +4833,58 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 0, 23 ], "y": [ 0, 22 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_42",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "|^^^^^^^^^^^^|.........+",
+ "|^^^^^^^^^^^^|.........H",
+ "|^I^C^^K^K^K^+.......|-|",
+ "|BI^^^^K^K^K^+.......|.|",
+ "|^I^C^^K^K^K^|.......|-|",
+ "|^^^^^^^^^^^^|.......|..",
+ "|^^^^^^^^^^^^H.......H..",
+ "|^KKK^KKK^^^^H.......H..",
+ "|^^^^^^^^^^^KH.......|..",
+ "|^^^^^^^^KKKK|.......+..",
+ "--|H++H|-HHH-|.......+..",
+ ".....................|..",
+ ".....................H..",
+ "#####................H..",
+ " #................|..",
+ " #1...............|-H",
+ " #1..................",
+ " #1..................",
+ " #...................",
+ "#####...................",
+ "........................",
+ "........HHHHHH-++-HHHHH.",
+ "......HHHY...........YHH",
+ "F.....H................y"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "V": "t_carpet_red", "y": "t_linoleum_gray", "Y": "t_linoleum_gray", "F": "t_linoleum_gray" },
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_harvest" } },
+ "furniture": { "%": "f_counter", "*": "f_crate_c", "!": "f_beaded_door", "p": "f_desk" },
+ "items": {
+ "1": { "item": "ga_items_1", "chance": 100 },
+ "K": { "item": "pottery", "chance": 30, "repeat": [ 2, 4 ] },
+ "I": { "item": "office", "chance": 20 },
+ "Y": { "item": "office", "chance": 20 },
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 100 },
+ { "item": "bags", "chance": 100 }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -3119,19 +4906,20 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "ooooo...................",
+ "ooooo...................",
+ "ooooo...................",
+ "ooooo...................",
+ "ooooo...................",
+ "ooooo...................",
+ "ooooo...................",
"........................",
"........................",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
+ "sealed_item": { "1": { "item": { "item": "seed_lettuce" }, "furniture": "f_planter_harvest" } },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -3191,6 +4979,58 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_43",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "^7K7K7K77J7)|z.z|j.Y.=.t",
+ "^7K7K7K77J7)|P.z|-------",
+ "^77777777J7^|...=^^^^^^^",
+ "^^^^))))^^^^|zzz|^^^^^^^",
+ "------------------------",
+ "..QQQQ.QQQQ.QQQQ.......|",
+ "...................%..Q|",
+ "..QQQQ.QQQQ.QQQQ...?.AQ|",
+ "...................%..Q|",
+ ".......................=",
+ "..!!!!.!!!!.!!!!...%..Y|",
+ "...................%.AQ|",
+ "..!!!!.!!!!.!!!!...?..Q|",
+ "...................%..Q|",
+ "....y...y..............|",
+ "-HHH-H+H-HHH------------",
+ ".............|...VVV..VV",
+ ".............HM.99999999",
+ ".............HM.9*9*99*9",
+ ".............HM.9*9*99*9",
+ ".............|..9*9*99*9",
+ "...........|-|..99999999",
+ "H..........|y...99999999",
+ "H..........|..9999999999"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "K": "t_carpet_green", "J": "t_carpet_green", ")": "t_floor", "*": "t_carpet_yellow" },
+ "furniture": { "%": "f_counter", "!": "f_table", "*": "f_table" },
+ "items": {
+ "Y": { "item": "trash", "chance": 50 },
+ "I": { "item": "office", "chance": 20 },
+ "P": { "item": "cleaning", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ ")": { "item": "keg_wine_intact", "chance": 100 },
+ "z": { "item": "crate_wine", "chance": 60, "repeat": [ 1, 3 ] },
+ "K": [ { "item": "table_wine", "chance": 30 }, { "item": "wines_worthy", "chance": 30 } ],
+ "!": { "item": "sports", "chance": 20, "repeat": [ 1, 3 ] },
+ "Q": { "item": "sports", "chance": 20, "repeat": [ 1, 3 ] },
+ "V": { "item": "mussto_stringinst", "chance": 20, "repeat": [ 1, 3 ] },
+ "*": { "item": "musicstore_showpiece", "chance": 20, "repeat": [ 1, 3 ] },
+ "M": { "item": "mussto_windinst", "chance": 20, "repeat": [ 1, 3 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -3284,6 +5124,59 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_44",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "|t.=.Y|^^^| ",
+ "------|^^^| ",
+ "^^^^^^^^^^| ",
+ "^^^^^^^^^^| ",
+ "------|^^^| ",
+ "S.YIIS|^^^| ",
+ "y...B.|^^^| ",
+ "---=--||^^|| ",
+ "UUU..zz|^^d| ",
+ ".......=^^d| ",
+ "U...zz.|^^d| ",
+ "U.Yz.zz|^^|| ",
+ "---=---|^^| ",
+ "P.....P|^^| ",
+ "P.FFF.P|^^| ",
+ "-------|^^| ",
+ "V..|YII|^^| ",
+ "99.|..B|^^| ",
+ "K9V|S..|^^| ",
+ "K9V|-=-|^^| ",
+ "K9.|Q.Q|^^| ",
+ "99.=...=^^| ",
+ "99.|Q..|^^| ",
+ "99.|.PP|^^| "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "d": "t_floor", "K": "t_carpet_yellow" },
+ "items": {
+ "Y": { "item": "trash", "chance": 30, "repeat": [ 2, 4 ] },
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 10 }
+ ],
+ "I": { "item": "office", "chance": 20 },
+ "P": { "item": "jackets", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ "z": { "item": "sports", "chance": 60, "repeat": [ 1, 3 ] },
+ "U": { "item": "sports", "chance": 20, "repeat": [ 1, 3 ] },
+ "V": { "item": "mussto_stringinst", "chance": 20, "repeat": [ 1, 3 ] },
+ "K": { "item": "musicstore_showpiece", "chance": 20, "repeat": [ 1, 3 ] },
+ "Q": { "item": "musicstore_showpiece", "chance": 20, "repeat": [ 1, 3 ] }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -3419,8 +5312,8 @@
"____ss...Vc| | + rr ",
"____ss...Vc| |-| rr rr ",
"____ss...|:| | rr ",
- "___sss.|-| | ",
- "ssssss.|.|--::-|--|cccc|",
+ "___sss.|-| | | ",
+ "ssssss.|< -::-|--|cccc|",
"...sss.|-|2222yV22|HHHH|",
"###.sssssZ21112Z22222222",
"T###pssssZ21112Z21111111",
@@ -3429,8 +5322,8 @@
"T###pssssZ21112Z21111111",
"###.sssssZ21112Z21111111",
"...sss.|-|2222yV22222222",
- "ssssss.|.|--::-|HHH|-HHH",
- "___sss.|-| :ccc|r hn",
+ "ssssss.|< -::-|HHH|-HHH",
+ "___sss.|-| | :ccc|r hn",
"____ss...|:| |---|r ",
"____ss...Vc| |rrrrr r",
"____ss...Vc| ||r ",
@@ -3461,6 +5354,64 @@
"place_vehicles": [ { "vehicle": "hippie_van", "x": 1, "y": 19, "chance": 35, "rotation": 0 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_47",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " |...|V99MMMM9",
+ " |-|...|V9999999",
+ " HdH...H999MMMM9",
+ " HdH...+99999999",
+ " HdH...H9999C999",
+ " |+|...|V99IIII9",
+ " |H|.|...|VV999999",
+ " H>..--+-|--|9999|",
+ " |H|.......Y|H++H|",
+ " H..............",
+ " H..............",
+ " H..............",
+ " H..............",
+ " H..............",
+ " H..............",
+ " |H|.....H........",
+ " H>..--=-|-HH--HH+",
+ " |H|.|...|^%%^^^^^",
+ " |+|...|^^^^^888",
+ " H.|...|TTTT^888",
+ " H.|..||----^8J8",
+ " H.|..|zzzz|^8?8",
+ " |-|..=....=^AJ8",
+ " |..|zz.z|^8J8"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "I": "t_carpet_yellow",
+ "M": "t_carpet_yellow",
+ "C": "t_carpet_yellow",
+ "!": "t_carpet_yellow",
+ "d": "t_carpet_yellow",
+ "A": "t_carpet_purple",
+ "J": "t_carpet_purple"
+ },
+ "furniture": { "%": "f_mannequin", "0": "f_glass_cabinet", "!": [ "f_indoor_plant_y", "f_indoor_plant" ] },
+ "items": {
+ "Y": { "item": "trash", "chance": 20 },
+ "d": { "item": "fancyfurs", "chance": 20 },
+ "V": { "item": "fancyfurs", "chance": 20 },
+ "M": { "item": "fancyfurs", "chance": 20 },
+ "3": { "item": "costume_accessories", "chance": 30 },
+ "T": { "item": "costume_clothes", "chance": 30, "repeat": [ 1, 2 ] },
+ "%": [ { "item": "costume_clothes", "chance": 100 }, { "item": "costume_accessories", "chance": 100 } ],
+ "z": [
+ { "item": "costume_clothes", "chance": 30, "repeat": [ 1, 2 ] },
+ { "item": "costume_accessories", "chance": 30, "repeat": [ 1, 2 ] }
+ ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -3475,18 +5426,18 @@
" |..............",
" |..............",
" |..............",
+ " |2|..............",
+ " |................",
+ " |-|..............",
" |..............",
" |..............",
" |..............",
" |..............",
" |..............",
" |..............",
- " |..............",
- " |..............",
- " |..............",
- " |..............",
- " |..............",
- " |..............",
+ " |2|..............",
+ " |................",
+ " |-|..............",
" |..............",
" |..............",
" |..............",
@@ -3553,55 +5504,146 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_48",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "MMMM99dH....F...|-------",
+ "999999dH........|QQQQY..",
+ "MMMM99dH........|Q......",
+ "99999|H|........|QQllllQ",
+ "C9!9V|..........|-------",
+ "99C9V|...####...=.......",
+ "V9d9V|...# #...|-|--|..",
+ "-HHH-|...# #...|EEEE|--",
+ ".........# #...HEEEE|66",
+ ".........# #...|H++H|66",
+ ".........# #........|HH",
+ ".........####........+66",
+ ".....................+66",
+ ".....................|HH",
+ "................|H++H|66",
+ "................HEEEE|66",
+ "HH-HHH-|........|EEEE||-",
+ "^^^333y|......|------|..",
+ "8888883H..FF..Hy^^^^^|..",
+ "8888883H..FF..H^^BKB^|--",
+ "8000883H..FF..H^^BKB^^^y",
+ "800088y|......|y^^^^^^^%",
+ "888888^H......H^^BKB^^^%",
+ "888888^+......+^^^^^^^^^"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "V": "t_carpet_yellow",
+ "M": "t_carpet_yellow",
+ "C": "t_carpet_yellow",
+ "!": "t_carpet_yellow",
+ "d": "t_carpet_yellow",
+ "%": "t_floor",
+ "y": "t_floor",
+ "K": "t_floor",
+ "B": "t_floor",
+ "0": "t_carpet_purple",
+ "3": "t_floor"
+ },
+ "furniture": { "!": [ "f_indoor_plant_y", "f_indoor_plant" ], "%": "f_glass_cabinet", "0": "f_glass_cabinet", "3": "f_displaycase" },
+ "items": {
+ "Y": { "item": "trash", "chance": 20 },
+ "%": { "item": "baked_goods", "chance": 20, "repeat": [ 2, 4 ] },
+ "K": { "item": "baked_goods", "chance": 20 },
+ "d": { "item": "fancyfurs", "chance": 20 },
+ "V": { "item": "fancyfurs", "chance": 20 },
+ "M": { "item": "fancyfurs", "chance": 20 },
+ "J": { "item": "fast_table", "chance": 10, "repeat": [ 2, 4 ] },
+ "l": { "item": "fast_fridge", "chance": 20, "repeat": [ 2, 4 ] },
+ "Q": { "item": "fast_kitchen", "chance": 20, "repeat": [ 2, 4 ] },
+ "3": { "item": "costume_accessories", "chance": 30 },
+ "0": { "item": "costume_weapons", "chance": 30 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
"om_terrain": "mall_a_48_roof",
"weight": 200,
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_concrete",
"rows": [
"........................",
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "................|-------",
+ ".........oooo...|_______",
+ ".........oooo...|-----__",
+ ".........oooo...|EEEE|__",
+ ".........oooo...|EEEE|z_",
+ ".........oooo...|++++|__",
+ ".........oooo...|_______",
+ ".........oooo...|___z___",
+ "................|___zz__",
+ "................|_______",
+ "................|++++|__",
+ "................|EEEE|__",
+ "................|EEEE|__",
+ "................|-----__",
+ "................|___z___",
+ "................|-------",
"........................",
"........................",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ],
- "place_nested": [
- {
- "chunks": [
- [ "null", 20 ],
- [ "roof_2x2_utilities_b", 15 ],
- [ "roof_2x2_utilities_c", 5 ],
- [ "roof_2x2_utilities_d", 40 ],
- [ "roof_2x2_utilities", 50 ],
- [ "roof_4x4_utility_1", 30 ]
- ],
- "x": [ 3, 15 ],
- "y": [ 3, 7 ]
- }
- ]
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
+ "items": {
+ "z": [
+ { "item": "winter", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "camping", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "alcohol", "chance": 20, "repeat": [ 1, 2 ] }
+ ]
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_48",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " |2222222",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |.......",
+ " |-------",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -3620,14 +5662,14 @@
" |-|",
" |-------| |",
"--:----| |3XuuuX3| ",
- "2222222| |3333333| ",
- "2222222| |---:---|-----",
+ "222222<| |3333333| ",
+ "222222<| |---:---|-----",
"H222HHH| |Q333333|B33g3",
"222222y| |3d3g3d3|B3ddd",
"222222y| |3ddddd3|33333",
"H222HHH| |3333333|HHH0H",
- "2222222| |B33g333:33333",
- "2222222| |B333333:33333",
+ "222222<| |B33g333:33333",
+ "222222<| |B333333:33333",
"-------| |-------|-----",
" ",
" ",
@@ -3660,18 +5702,120 @@
"place_vehicles": [ { "vehicle": "tricycle", "x": 20, "y": 23, "chance": 25, "status": 0 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_49",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "?JJJ?JJJ?JJJ?JJ.Y|-|..FK",
+ ".................|P|....",
+ "QQllJJJiiJJjnJJ..=.|..FK",
+ "---------------=-|-|..FK",
+ "-..................|-|..",
+ ".....................|-|",
+ "..........|-------|....|",
+ "--=----|..|t..|..t|.....",
+ "666666>|..|--.|.--|.....",
+ "666666>|..|j..|..j|-----",
+ "H666HHH|..|-=-|-=-|.uu.|",
+ "6666666|..|............|",
+ "6666666|..|..FFF..FFF..|",
+ "H666HHH|..|..KKK..KKK..=",
+ "666666>|..|..FFF..FFF..|",
+ "666666>|..|Y...........|",
+ "-------|..|-------------",
+ ".......................=",
+ ".......................=",
+ "---=----------------=--|",
+ "|U...U|y.....mmm.y|P..z|",
+ "|U.UUU|m.V.V.....Y|P.zz|",
+ "|U..AI|m.V.V...M..|z..z|",
+ "---=--|m.V.V...M..|-=--|"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": {
+ "Y": { "item": "trash_cart", "chance": 20 },
+ "J": { "item": "fast_table", "chance": 20, "repeat": [ 2, 4 ] },
+ "Q": { "item": "fast_kitchen", "chance": 20, "repeat": [ 2, 4 ] },
+ "l": { "item": "fast_fridge", "chance": 20, "repeat": [ 2, 4 ] },
+ "P": { "item": "cleaning", "chance": 20, "repeat": [ 2, 4 ] },
+ "u": { "item": "default_vending_machine", "chance": 60, "repeat": [ 2, 4 ] },
+ "M": { "item": "butcher_meat", "chance": 20, "repeat": [ 2, 4 ] },
+ "V": { "item": "butcher_meat", "chance": 20, "repeat": [ 2, 4 ] },
+ "z": { "item": "butcher_meat", "chance": 20, "repeat": [ 2, 4 ] },
+ "m": { "item": "butcher_raw_meat", "chance": 20, "repeat": [ 2, 4 ] },
+ "U": { "item": "groce_ingredient", "chance": 20, "repeat": [ 2, 4 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
"om_terrain": "mall_a_49_roof",
"weight": 200,
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_concrete",
"rows": [
"........................",
"........................",
"........................",
+ "......3.................",
+ "-11111--=--.............",
+ "____zz3___|.............",
+ "__zzz_____|.............",
+ "__________|-------------",
+ "________________________",
+ "_z_____________zzzzz____",
+ "____________z__zz_z_____",
+ "____z_______z__zzz______",
+ "________________________",
+ "____________________z___",
+ "____z___________________",
+ "__________________z_z___",
+ "__________|-------------",
+ "___z______|............4",
+ "___zz_3___|............0",
+ "-11111--=-|............4",
+ "......3...4............4",
+ "..........44444000044444",
"........................",
+ "........................"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ".": "t_flat_roof",
+ "4": "t_chainfence",
+ "0": "t_chaingate_c",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control"
+ },
+ "items": {
+ "z": [
+ { "item": "cannedfood", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "consumer_electronics", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "sports", "chance": 20, "repeat": [ 1, 2 ] }
+ ]
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_49",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ "22222222223 ",
+ "..........3 ",
+ "..........3 ",
+ "..........3-------------",
"........................",
"........................",
"........................",
@@ -3680,21 +5824,16 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................"
+ "..........3-------------",
+ "..........3 ",
+ "..........3 ",
+ "----------3 ",
+ " ",
+ " ",
+ " ",
+ " "
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -3714,8 +5853,8 @@
":|22222222222222222222|:",
" |--------------------| ",
" ",
- "--|--------::|----|-++-|",
- "3B|QgggJJJ333|EEEE|EEEE|",
+ "--|------::|-|----|-++-|",
+ "3B|QgggJJ33|<|EEEE|EEEE|",
"3B|g333333333|EEEE|EEEE|",
"33|g3nn333333|-55-|----|",
"HH|33nn33333333333333335",
@@ -3731,7 +5870,7 @@
" r|333V3JJJJ3333333333"
],
"palettes": [ "mall_palette" ],
- "terrain": { "B": "t_carpet_red", "d": "t_carpet_red", "n": "t_carpet_red" },
+ "terrain": { "B": "t_carpet_red", "d": "t_carpet_red", "n": "t_carpet_red", "<": "t_stairs_up" },
"furniture": { "B": "f_bookcase", "d": "f_desk", "n": "f_table" },
"place_items": [
{ "item": "museum_security", "x": [ 10, 13 ], "y": [ 23, 23 ], "chance": 60 },
@@ -3750,13 +5889,61 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_50_roof",
- "weight": 200,
+ "om_terrain": "mall_b_50",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_linoleum_gray",
"rows": [
+ "F.FKF.FKF.FKF.FKF.FKF.FK",
+ "........................",
+ "F.FKF.FKF.FKF.FKF.FKF.FK",
+ "F.FKF.FKF.FKF.FKF.FKF.FK",
"........................",
+ "=|y....uu..YY..uu....y|=",
+ ".|--------------------|.",
"........................",
+ "---------==|-|----|-==-|",
+ "-66666666666>|EEEE|EEEE|",
+ "6@@@@@666666<|EEEE|EEEE|",
+ "6@66666666666|-==-|----|",
+ "6@6666666666C|66B6|6B66|",
+ "6@66C66666666|6III|6III|",
+ "666666666666C|666S|S666|",
+ "6666666666666-H+H---H+H|",
+ "666666666666666666666666",
+ "66C6C666666666666B666666",
+ "-H-+-H-|66666666III66666",
+ "666B666|6666666666666666",
+ "6BIIIB6H666BI6I66BI6I666",
+ "6BIIIB6H6666I6IB66I6IB6B",
+ "6BIIIB6H6666666666666666",
+ "6BIIIB6|666666I666I6IB6B"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ">": "t_stairs_down",
+ "E": "t_elevator",
+ "<": "t_stairs_up",
+ "B": "t_carpet_red",
+ "I": "t_carpet_red",
+ "S": "t_carpet_red",
+ "C": "t_carpet_red",
+ "@": "t_carpet_red"
+ },
+ "items": {
+ "u": { "item": "default_vending_machine", "chance": 50, "repeat": [ 2, 8 ] },
+ "K": { "item": "pizza_table", "chance": 20 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_50_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_concrete",
+ "rows": [
"........................",
"........................",
"........................",
@@ -3764,12 +5951,51 @@
"........................",
"........................",
"........................",
+ "----------==------------",
+ "xxx__________|----|-==-|",
+ "__________z|_|EEEE|EEEE|",
+ "___________|>|EEEE|EEEE|",
+ "_____________|-==-|----|",
+ "________________________",
+ "________________________",
+ "___x______________z_z___",
+ "__xxxx__________zzz_z___",
+ "----------==------------",
"........................",
"........................",
"........................",
"........................",
"........................",
"........................",
+ "........................"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ".": "t_flat_roof",
+ " ": "t_open_air",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control",
+ "4": "t_chainfence",
+ "0": "t_chaingate_c",
+ ">": "t_stairs_down"
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_50",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "222222222222222222222222",
"........................",
"........................",
"........................",
@@ -3778,10 +6004,16 @@
"........................",
"........................",
"........................",
- "........................"
+ "------------------------",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -3800,14 +6032,14 @@
"|-| : ",
"| |rrr|----|",
" |----:|---|EEEE|",
- " |222222222|EEEEV",
- "-----| |222222222|HZZH|",
+ " |<22222222|EEEEV",
+ "-----| |<22222222|HZZH|",
"N11S$| |HHH222HHH|22222",
"9111$| |y22222222Z21111",
"N111l| |y22222222Z21111",
"1111l| |HHH222HHH|22222",
- "11111| |222222222|HZZH|",
- "N99N1| |222222222|EEEEV",
+ "11111| |<22222222|HZZH|",
+ "N99N1| |<22222222|EEEEV",
"N99N1| |---------|EEEE|",
"-----| |----|",
"3333B| ",
@@ -3849,55 +6081,148 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.1 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_51",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "F..y|-|.AAA.AAAAAAA.....",
+ "...Y|JJJJJJJJJJJJJJJ?J..",
+ "F..Y|...................",
+ "F..y|QQiiJJnjJ.YJJJllQQ|",
+ "..|-|---------=---------",
+ "--|....................=",
+ "..................|----|",
+ "........|---------|EEEE|",
+ "........|>666666|P|EEEEH",
+ "-----|,.|>666666=.|H++H|",
+ "SSSSS|..|HHH666H|-|.....",
+ "66666|..|666666666+.....",
+ "SSSS6|..|666666666+.....",
+ "SSSS6|..|HHH666H|-|.....",
+ "66666|..|>666666=.|H++H|",
+ "--=--|..|>666666|<|EEEEH",
+ "66B66|..|---------|EEEE|",
+ "6III6|............|----|",
+ "66666=.................=",
+ "66666|--------=---------",
+ "I6IB6|I66S|zz...zz|3333|",
+ "I6I66|IB66=.....zz|3..33",
+ "66666|-------=----|3....",
+ "I6IB6|.................."
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "<": "t_stairs_up", "S": "t_carpet_red", "B": "t_carpet_red", "I": "t_carpet_red" },
+ "furniture": { "3": "f_table" },
+ "items": {
+ "Q": { "item": "pizza_kitchen", "chance": 50, "repeat": [ 2, 4 ] },
+ "J": { "item": "pizza_display", "chance": 30 },
+ "l": { "item": "pizza_fridge", "chance": 30, "repeat": [ 2, 4 ] },
+ "j": { "item": "SUS_dishes", "chance": 10, "repeat": [ 2, 4 ] },
+ "n": { "item": "SUS_dishes", "chance": 30, "repeat": [ 2, 4 ] },
+ "i": { "item": "oven", "chance": 30, "repeat": [ 1, 2 ] },
+ "z": { "item": "farming_seeds", "chance": 30, "repeat": [ 1, 2 ] },
+ "3": { "item": "farming_seeds", "chance": 30, "repeat": [ 1, 2 ] },
+ "I": { "item": "office", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
"om_terrain": "mall_a_51_roof",
"weight": 200,
"object": {
- "fill_ter": "t_flat_roof",
- "rows": [
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "fill_ter": "t_concrete",
+ "rows": [
+ "........................",
+ "..........!.....*....*..",
+ "....!...................",
+ ".............3..........",
+ ".....---11111--=--------",
+ ".....|_______3_______zz|",
+ ".....|____________|----|",
+ "-----|____________|EEEE|",
+ "___z______________|EEEE|",
+ "___z______________|++++|",
+ "_________%_____________|",
+ "__z____________z_______|",
+ "z_z___________zz_______|",
+ "z______________________|",
+ "___z_____________-|++++|",
+ "_zzz_______%_____>|EEEE|",
+ "-----|___________-|EEEE|",
+ ".....|____________|----|",
+ ".....|_______3_______zz|",
+ ".....---11111--=--------",
+ ".............3..........",
+ "....................!...",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
- "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ],
- "place_nested": [
- {
- "chunks": [
- [ "null", 20 ],
- [ "roof_2x2_utilities_b", 15 ],
- [ "roof_2x2_utilities_c", 5 ],
- [ "roof_2x2_utilities_d", 40 ],
- [ "roof_2x2_utilities", 50 ],
- [ "roof_4x4_utility_1", 30 ]
- ],
- "x": [ 15, 20 ],
- "y": [ 15, 20 ]
- }
- ]
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ ".": "t_flat_roof",
+ "*": "t_flat_roof",
+ "!": "t_flat_roof",
+ " ": "t_open_air",
+ "1": "t_door_metal_locked",
+ "3": "t_gates_mech_control",
+ "4": "t_chainfence",
+ "0": "t_chaingate_c",
+ ">": "t_stairs_down"
+ },
+ "items": {
+ "z": [
+ { "item": "cannedfood", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "allclothes", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "livingroom", "chance": 20, "repeat": [ 1, 2 ] }
+ ]
+ },
+ "vehicles": {
+ "!": { "vehicle": "golf_cart", "chance": 30, "rotation": 90 },
+ "*": { "vehicle": "golf_cart_4seat", "chance": 30, "rotation": 180 },
+ "%": { "vehicle": "forklift", "chance": 30, "rotation": 90 }
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_upper_roof_51",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " |222222222222222222",
+ " |.................3",
+ " |.................3",
+ "22222|.................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ ".......................3",
+ "-----|.................3",
+ " |.................3",
+ " |.................3",
+ " ------------------3",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ]
}
},
{
@@ -3934,7 +6259,7 @@
"|cV21111112 cc "
],
"palettes": [ "mall_palette" ],
- "terrain": { "8": "t_grass" },
+ "terrain": { "8": "t_grass", "Q": "t_linoleum_gray", "G": "t_linoleum_gray", "g": "t_linoleum_gray", "J": "t_linoleum_gray" },
"furniture": { "8": "f_bluebell" },
"place_items": [
{ "item": "knife_shop", "x": [ 14, 17 ], "y": [ 9, 9 ], "chance": 60 },
@@ -3953,37 +6278,85 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_52_roof",
- "weight": 200,
+ "om_terrain": "mall_b_52",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_linoleum_gray",
"rows": [
+ "HHH........HV.9K9K9K99K9",
+ ".yH........H..9K9K9K99K9",
+ ".YH..####..+..9999999999",
+ "--|..# #..+..9K9K9K99K9",
+ "PP|..# #..H..9K9K9K99K9",
+ "..|..# #..H..9999999999",
+ "PP|..# #..|yMMMVMMM....",
+ "--|..####..|-HHH-HHH-H+H",
"........................",
"........................",
+ ".....####....###########",
+ ".....# #....# ",
+ ".....# #....# ",
+ ".....####....###########",
"........................",
"........................",
+ "--|..####..|-H--HHH--HHH",
+ "PP|..# #..|^A^^^^^^^444",
+ "..|..# #..HJJ?JJ^^^^^^^",
+ "PP|..# #..+^^9999999999",
+ "--|..# #..H^^9R9RR9RR9R",
+ "33|..####..|^^9R9RR9RR9R",
+ ".3H........H^^9R9RR9RR9R",
+ ".3H........+^^9R9RR9RR9R"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "K": "t_carpet_yellow", "4": "t_floor", "R": "t_carpet_yellow", "J": "t_floor", "A": "t_floor" },
+ "furniture": { "3": "f_table", "4": "f_table" },
+ "items": {
+ "J": { "item": "office", "chance": 5 },
+ "K": { "item": "musicstore_showpiece", "chance": 50 },
+ "M": { "item": "mussto_windinst", "chance": 50 },
+ "V": { "item": "mussto_stringinst", "chance": 50 },
+ "P": { "item": "cleaning", "chance": 50 },
+ "3": { "item": "farming_seeds", "chance": 50 },
+ "R": { "item": "novels", "chance": 50 },
+ "4": { "item": "manuals", "chance": 50 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_52_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
"........................",
"........................",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
"........................",
"........................",
+ ".....oooo....ooooooooooo",
+ ".....oooo....ooooooooooo",
+ ".....oooo....ooooooooooo",
+ ".....oooo....ooooooooooo",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
+ ".....oooo...............",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -4037,6 +6410,49 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_53",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "K9.----|^^| ",
+ "K9.....||^| ",
+ "99..J...|^| ",
+ "K9..J.A.|^| ",
+ "K9..?...|^| ",
+ "99..JJJ.|^| ",
+ "........|^|-| ",
+ "-HHH-HHH|=|.| ",
+ "........|.||| ",
+ "..........yH ",
+ "###.......FH ",
+ " #.......FH ",
+ " #.......FH ",
+ "###.......FH ",
+ "..........yH ",
+ "........|.||| ",
+ "-HHH-HH-|=|.| ",
+ "^444^44^|^|-| ",
+ "^^^^^^^^|^| ",
+ "99999^R||^| ",
+ "R9RR9^R|^^| ",
+ "R9RR9^R|^^| ",
+ "R9RR9^R|^^| ",
+ "R9RR9^R|^^| "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "K": "t_carpet_yellow", "4": "t_floor", "R": "t_carpet_yellow", "A": "t_floor" },
+ "furniture": { "4": "f_table" },
+ "items": {
+ "J": { "item": "office", "chance": 5 },
+ "K": { "item": "light_reading", "chance": 50 },
+ "R": { "item": "textbooks", "chance": 30 },
+ "4": { "item": "exotic_books", "chance": 20 }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -4051,18 +6467,18 @@
"..........3 ",
"..........3 ",
"..........3 ",
- "..........3 ",
- "..........3 ",
- "..........33 ",
- "...........3 ",
- "...........3 ",
- "...........3 ",
+ "..........333 ",
+ "............3 ",
+ "...........33 ",
"...........3 ",
+ "ooo........3 ",
+ "ooo........3 ",
+ "ooo........3 ",
+ "ooo........3 ",
"...........3 ",
- "..........33 ",
- "..........3 ",
- "..........3 ",
- "..........3 ",
+ "...........33 ",
+ "............3 ",
+ "..........333 ",
"..........3 ",
"..........3 ",
"..........3 ",
@@ -4223,6 +6639,74 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_56",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " |..|--=||8JJ8",
+ " |..|I..|^8888",
+ " |..|IB.|T88MM",
+ " |..|S..|T88MM",
+ " |-|..|-=-|T8888",
+ " Hd|..|t.j|^^TTT",
+ " Hd+..|---------",
+ " Hd|..=^^y^3333^",
+ " |----|^^^777777",
+ " Hy^^^^^^^7KK7KK",
+ " H@^777^^^7KK7KK",
+ " H@^7K7^^^777777",
+ " |^^7K7^^^^^^^^^",
+ " H@^7K7^^^^^^^^^",
+ " H@^777^77777^77",
+ " Hy^^^^^77777^77",
+ " |---^^^7K7K7^7K",
+ " |b^%^^^7K7K7^7K",
+ " |---^C^77777^77",
+ " |b^%^y^7K7K7^7K",
+ " |---^C^7K7K7^7K",
+ " |b^%^^^77777^77",
+ " |---^^^77777^77",
+ " |b^%^^^^^^^^^^^"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": {
+ "S": "t_linoleum_gray",
+ "I": "t_linoleum_gray",
+ "B": "t_linoleum_gray",
+ "j": "t_linoleum_gray",
+ "d": "t_linoleum_gray",
+ "J": "t_carpet_purple",
+ "M": "t_carpet_purple",
+ "K": "t_carpet_green"
+ },
+ "furniture": { "3": "f_wardrobe", "4": "f_table", "%": "f_beaded_door" },
+ "items": {
+ "M": { "item": "costume_accessories", "chance": 20, "repeat": [ 1, 2 ] },
+ "T": { "item": "costume_clothes", "chance": 20, "repeat": [ 1, 2 ] },
+ "I": { "item": "office", "chance": 20 },
+ "J": { "item": "office", "chance": 20 },
+ "S": { "item": "office_paper", "chance": 100, "repeat": [ 1, 2 ] },
+ "d": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 100 },
+ { "item": "shoestore_shoes", "chance": 100 }
+ ],
+ "U": { "item": "allclothes", "chance": 30 },
+ "z": { "item": "allclothes", "chance": 30, "repeat": [ 1, 2 ] },
+ "R": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "K": { "item": "pants", "chance": 30, "repeat": [ 1, 2 ] },
+ "3": { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -4286,7 +6770,7 @@
" cccc cc c r|-",
" rrrr r|t",
" HHHH| r| ",
- " >| rrrr r|-",
+ " <| rrrr r|-",
" |HHH| |D",
"cc rr |< | ",
"c rr |HHHH rrrr r| ",
@@ -4294,6 +6778,7 @@
" rr rrrr r|-"
],
"palettes": [ "mall_palette" ],
+ "terrain": { "<": "t_stairs_up" },
"place_items": [
{ "item": "floor_trash", "x": [ 23, 23 ], "y": [ 19, 19 ], "chance": 80 },
{ "item": "allclothes", "x": [ 0, 1 ], "y": [ 20, 22 ], "chance": 60 },
@@ -4328,6 +6813,61 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_57",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "888888^+..11..+^^^B4B^^^",
+ "8MMM88^H..11..H^^^B4B^^^",
+ "888888^|..11..|^^^^^^^^^",
+ "8MMM88dH..11..H4^^B4B^^^",
+ "888888dH......H4^^B4B^^^",
+ "bTTTb^^|......|^^^^^^^^^",
+ "-------|-H++H-|---------",
+ "^3333^^^^^^^^^^^^3333^|.",
+ "77777777777777777777^^H.",
+ "K7KK7KK7KK7KK7KK7KK7^^H.",
+ "K7KK7KK7KK7KK7KK7KK7^^+.",
+ "77777777777777777777^^+.",
+ "^^^^^^^^^^^^^^^^^^^^^^H.",
+ "^^^^^^^^^^^^^^^^^^^^^^H.",
+ "777^JJJ?JJJ?JJJ^77777^|.",
+ "777^J^^^^A^^^^J^77777^|-",
+ "7K7^^^^^^^^^^^^^7K7K73|t",
+ "7K7^^^^HHHH|~^J^7K7K73|F",
+ "777^^^^^^^>|~A?^77777^|-",
+ "7K7^J^~|HHH|~^J^7K7K73|Y",
+ "7K7^?^~|>^^^^^^^7K7K73|.",
+ "777^JA~|HHHH^^^^77777^|.",
+ "777^^^^^^^^^^^^^77777^|J",
+ "^^^^^^^^^^^^^^^^^^^^^^|-"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "M": "t_carpet_purple", ">": "t_stairs_down", "Y": "t_linoleum_gray", "F": "t_linoleum_gray", "K": "t_carpet_green" },
+ "furniture": { "3": "f_wardrobe", "4": "f_table" },
+ "items": {
+ "4": { "item": "baked_goods", "chance": 20, "repeat": [ 1, 2 ] },
+ "M": { "item": "costume_accessories", "chance": 20, "repeat": [ 1, 2 ] },
+ "T": { "item": "costume_clothes", "chance": 20, "repeat": [ 1, 2 ] },
+ "d": [ { "item": "costume_clothes", "chance": 100 }, { "item": "costume_accessories", "chance": 100 } ],
+ "I": { "item": "office", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ "U": { "item": "allclothes", "chance": 30 },
+ "z": { "item": "allclothes", "chance": 30, "repeat": [ 1, 2 ] },
+ "R": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "K": { "item": "pants", "chance": 30, "repeat": [ 1, 2 ] },
+ "3": { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ]
+ },
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_harvest" } },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -4427,15 +6967,63 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_58_roof",
- "weight": 200,
+ "om_terrain": "mall_b_58",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_linoleum_gray",
"rows": [
+ "^^0^^Q|m.V.V...M..|S...|",
+ "^^0^^Q|m.V.V...M..=..B.|",
+ "^^?%^Q|m.V.V...MA.|IIIy|",
+ "^^0^^Q|m.V.V...M?M|----|",
+ "^^^^^Q|m.........y|EEEE|",
+ "000^^^|...KKK.KKK.|EEEE|",
+ "HHH+H-|-+-HHH-HHH-|H++H|",
"........................",
"........................",
+ ".........###############",
+ ".........# ",
+ ".........# ",
+ ".........###############",
"........................",
"........................",
+ "-----|....|-HHH--H+H-H+H",
+ ".|t|t|....|^444^^^^^^^^^^",
+ ".|.|.|....|^^^^^^^^^^^^^",
+ "=|=|=|....|^^^^^^3333^^^",
+ ".....|....|*^^3^^^^^^^^3",
+ ".....=....|*^^3^^3333^^3",
+ ".....|....|*^^3^^3333^^3",
+ "JjJjJ|....|^^^3^^^^^^^^3",
+ "-----|....|*^^^^^3333^^^"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "Q": "t_floor", "M": "t_floor", "0": "t_floor", "%": "t_floor", "3": "t_floor", "*": "t_floor", "4": "t_floor" },
+ "furniture": { "0": "f_displaycase", "%": "f_stool", "4": "f_displaycase", "3": "f_table", "*": "f_glass_cabinet" },
+ "items": {
+ "I": { "item": "office", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "M": { "item": "butcher_meat", "chance": 20, "repeat": [ 1, 2 ] },
+ "V": { "item": "butcher_meat", "chance": 20, "repeat": [ 1, 2 ] },
+ "K": { "item": "butcher_meat", "chance": 20, "repeat": [ 1, 2 ] },
+ "m": { "item": "butcher_raw_meat", "chance": 20, "repeat": [ 1, 2 ] },
+ "0": { "item": "baked_goods", "chance": 20, "repeat": [ 1, 2 ] },
+ "Q": { "item": "groce_bread", "chance": 20, "repeat": [ 1, 2 ] },
+ "*": { "item": "glass_shop", "chance": 20, "repeat": [ 1, 2 ] },
+ "3": { "item": "glass_shop", "chance": 20, "repeat": [ 1, 2 ] },
+ "4": { "item": "glass_shop", "chance": 20, "repeat": [ 1, 2 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_58_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
"........................",
"........................",
"........................",
@@ -4445,6 +7033,10 @@
"........................",
"........................",
"........................",
+ ".........ooooooooooooooo",
+ ".........ooooooooooooooo",
+ ".........ooooooooooooooo",
+ ".........ooooooooooooooo",
"........................",
"........................",
"........................",
@@ -4457,7 +7049,7 @@
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -4516,15 +7108,56 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_59_roof",
- "weight": 200,
+ "om_terrain": "mall_b_59",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_carpet_green",
"rows": [
+ "6BIIIB6H666666IB6BI6I666",
+ "6BIIIB6|6666666666666666",
+ "666B666||--==--|66666666",
+ "--------|......|--------",
+ "EEEE|-|..........|-|EEEE",
+ "EEEE|..............|EEEE",
+ "H++H|..............|H++H",
"........................",
"........................",
+ "#######..........#######",
+ " #..........# ",
+ " #..........# ",
+ "#######..........#######",
"........................",
"........................",
+ "--HHH--|..####..|---HHH-",
+ "^^444^^|..# #..|777MMM7",
+ "^^^^^^4H..# #..HM777777",
+ "^333^^4H..# #..HM77KKK7",
+ "^333^^4H..# #..HM777777",
+ "^^^^^^^|..# #..|7777777",
+ "^^^|H+H|..####..|H+H|777",
+ "^^^|................|VVV",
+ "^^4H................|---"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "B": "t_carpet_red", "I": "t_carpet_red", "S": "t_carpet_red", "4": "t_floor", "3": "t_floor" },
+ "furniture": { "4": "f_displaycase", "3": "f_table" },
+ "items": {
+ "V": { "item": "consumer_electronics", "chance": 30 },
+ "M": { "item": "consumer_electronics", "chance": 30 },
+ "K": { "item": "elecsto_diy", "chance": 30 },
+ "4": { "item": "glass_shop", "chance": 30 },
+ "3": { "item": "glass_shop", "chance": 30 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_59_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
"........................",
"........................",
"........................",
@@ -4534,19 +7167,23 @@
"........................",
"........................",
"........................",
+ "ooooooo..........ooooooo",
+ "ooooooo..........ooooooo",
+ "ooooooo..........ooooooo",
+ "ooooooo..........ooooooo",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "..........oooo..........",
+ "..........oooo..........",
+ "..........oooo..........",
+ "..........oooo..........",
+ "..........oooo..........",
+ "..........oooo..........",
+ "..........oooo..........",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -4617,15 +7254,58 @@
{
"type": "mapgen",
"method": "json",
- "om_terrain": "mall_a_60_roof",
- "weight": 200,
+ "om_terrain": "mall_b_60",
"object": {
- "fill_ter": "t_flat_roof",
+ "fill_ter": "t_carpet_green",
"rows": [
+ "I6I66|Q....A............",
+ "66666|Q...JJJJ?JJJJJ....",
+ "66666|................Q.",
+ "|----|.QQQ..QQQ..QQQ..Q.",
+ "|EEEE|................Q.",
+ "|EEEE|.333..333..333....",
+ "|H++H|-HHH--HHH--HHH-+++",
"........................",
"........................",
+ "########...#############",
+ " #...# ",
+ " #...# ",
+ "########...#############",
"........................",
"........................",
+ "HHH-++-++-HHH-HHH-HHH-|.",
+ "MMM7777777MMM7MMM7MMM7|.",
+ "7777777777777777777777|.",
+ "KKK7777MMMM777KKK77K7V||",
+ "7777777777777777777K7V|^",
+ "KKK77444444477KKK77K77|^",
+ "7777747%7774777777777V|^",
+ "VVV7777VVV7777VVV77VVV|^",
+ "----------------------|^"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "I": "t_carpet_red", "3": "t_linoleum_gray", "J": "t_linoleum_gray", "Q": "t_linoleum_gray", "A": "t_linoleum_gray" },
+ "furniture": { "3": "f_table", "4": "f_counter", "%": "f_stool" },
+ "items": {
+ "I": { "item": "office", "chance": 30 },
+ "Q": { "item": "farming_tools", "chance": 30 },
+ "3": { "item": "farming_seeds", "chance": 20, "repeat": [ 2, 4 ] },
+ "V": { "item": "consumer_electronics", "chance": 30 },
+ "M": { "item": "consumer_electronics", "chance": 30 },
+ "K": { "item": "elecsto_diy", "chance": 30 },
+ "4": { "item": "office", "chance": 30 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_a_60_roof",
+ "weight": 200,
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
"........................",
"........................",
"........................",
@@ -4635,19 +7315,23 @@
"........................",
"........................",
"........................",
+ "oooooooo...ooooooooooooo",
+ "oooooooo...ooooooooooooo",
+ "oooooooo...ooooooooooooo",
+ "oooooooo...ooooooooooooo",
"........................",
"........................",
"........................",
"........................",
"........................",
- "........................",
+ ".......................-",
"........................",
"........................",
"........................",
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -4710,6 +7394,54 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.3 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_61",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ ".3|........H^^9999999999",
+ ".3|........|^^9R9RR9RR9R",
+ "..H........H4^9R9RR9RR9R",
+ "..+........H4^9R9RR9RR9R",
+ "..H........H4^9999999999",
+ "..|........|^^^^^^^^^^^^",
+ "--|........|--|---------",
+ "..............|.QQQ.QQQ.",
+ "..............|.........",
+ "##............H.QQQ.QQQ.",
+ " #............+.........",
+ " #............H.QQQ.QQQ.",
+ "##............|.........",
+ "..............H.QQQ.QQQ.",
+ "..............+.........",
+ "..............H.QQQ.QQQ.",
+ "..............|.........",
+ "..............|.QQQ.QQQ.",
+ "HHH--H+H--HHH-|---------",
+ "@@@^^^^^^J^^^^^^^^^@@@@^",
+ "^^^^^^^^^J^A^^^^J^^^^^^^",
+ "C^C^^^^^^JJ?JJJJJ^^C^^C^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^"
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "3": "t_linoleum_gray", "R": "t_carpet_yellow", "Q": "t_linoleum_gray" },
+ "furniture": { "3": "f_table", "4": "f_table" },
+ "items": {
+ "4": { "item": "book_school", "chance": 30 },
+ "3": { "item": "flower_pots", "chance": 30 },
+ "R": { "item": "book_school", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": [
+ { "item": "mil_surplus", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "mil_armor", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "mil_food_nodrugs", "chance": 20, "repeat": [ 1, 2 ] }
+ ]
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -4727,10 +7459,10 @@
"........................",
"........................",
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ "oo......................",
+ "oo......................",
+ "oo......................",
+ "oo......................",
"........................",
"........................",
"........................",
@@ -4743,7 +7475,7 @@
"........................",
"........................"
],
- "terrain": { ".": "t_flat_roof" },
+ "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -4760,7 +7492,7 @@
"B nn BB B|...#T#.ss____",
"B hh BB B|...###.ss____",
" B|##.....ss____",
- "BBBBBBB B|##.....ss____",
+ "BBBBBBB <|##.....ss____",
"----|--+--|##.....ss,,,,",
" P|z zz|##.....ss____",
"c6 |zz zz|...###.ss____",
@@ -4781,7 +7513,7 @@
"33333gJ33u|##.....ss____"
],
"palettes": [ "mall_palette" ],
- "terrain": { ")": "t_carpet_red" },
+ "terrain": { ")": "t_carpet_red", "<": "t_stairs_up" },
"furniture": { ")": "f_table" },
"place_items": [
{ "item": "homebooks", "x": [ 8, 9 ], "y": [ 7, 8 ], "chance": 60 },
@@ -4820,6 +7552,57 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_62",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "99999^^=^^| ",
+ "R9RR9^^|^^| ",
+ "R9RR9^R|^^| ",
+ "R9RR9^R|^^| ",
+ "99999^R|^^| ",
+ "^^^^^^>|^^| ",
+ "-------|^^| ",
+ "QQQ|III|^^| ",
+ "...|.B.|^^| ",
+ "...|..S|^^| ",
+ "JJ.|-=-|^^| ",
+ "J..|U.z|^^| ",
+ "?A.|U.z|^^| ",
+ "J..=...=^^| ",
+ "J..|U.z|^^| ",
+ "JJ.|Uzz|^^| ",
+ "...|-=-|^^| ",
+ "QQQ|t.j|^^| ",
+ "-------|==| ",
+ "|l.3nn3|^^| ",
+ "|l..A.j|^^| ",
+ "|I....j|^^| ",
+ "|IA.3.3|^^| ",
+ "|Y..3.i|^^| "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "R": "t_carpet_yellow", ">": "t_stairs_down" },
+ "furniture": { "4": "f_table", "3": "f_counter" },
+ "items": {
+ "R": { "item": "textbooks", "chance": 30 },
+ "I": { "item": "office", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ "z": { "item": "mil_surplus", "chance": 30 },
+ "U": { "item": "mil_food_nodrugs", "chance": 30 },
+ "Q": { "item": "book_military", "chance": 30 },
+ "J": { "item": "office", "chance": 30 },
+ "3": { "item": "restaur_sink", "chance": 30 },
+ "i": { "item": "oven", "chance": 30 },
+ "n": { "item": "restaur_sink", "chance": 30 },
+ "j": { "item": "restaur_sink", "chance": 30 },
+ "l": { "item": "restaur_fridge", "chance": 30 }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5003,6 +7786,54 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_65",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ " |----^^33^^RR^^",
+ " |tYj|T^33^^RR^^",
+ " |^^^=^^^^^^FF^^",
+ " |---|^^@^^^^^^^",
+ " |^^^=^^@^^^RR^^",
+ " |tYj|^^^^^^RR^^",
+ " |---|T^33^^RR^^",
+ " |t^j|T^33^^^^^^",
+ " |^^^|^^^^^^QQ^^",
+ " |-=-|--=-------",
+ " |^^^^FF^FF|yC^^",
+ " |^^^^^^^^^|^^^B",
+ " |PPP^PPP^y|S^II",
+ " |--------------",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "K": "t_carpet_green" },
+ "furniture": { "3": "f_table" },
+ "items": {
+ "I": { "item": "office", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ "R": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "K": { "item": "pants", "chance": 30, "repeat": [ 1, 2 ] },
+ "T": { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ],
+ "3": { "item": "underwear", "chance": 20, "repeat": [ 2, 4 ] }
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5102,6 +7933,57 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_66",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "RR^^RR^^^^^^^^^^^^^^^T|j",
+ "RR^^RR^^^333^^^CyCyC^T|.",
+ "FF^^FF^^^333^^^^^^^^^^|.",
+ "^^^^^^^^^^^^^^^^^^^^^^|Y",
+ "RR^^RR^^^333^T|%|%|%|%|-",
+ "RR^^RR^^^333^T|^|^|^|^|.",
+ "RR^^RR^b^^^^^T|b|b|b|b|t",
+ "^^^^^^^---=---|---------",
+ "QQ^^QQy|U^^^zz|EEEE|^^^^",
+ "-------|U^z^zz|EEEE|^^^^",
+ "^S|PPzzzz^^^^z|-==-|^^^^",
+ "^^=^^^z^^^^^^^=^^^^^^^|-",
+ "IS|^^^^^^zzz^^=^^^^^^^| ",
+ "----------------------| ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "Y": "t_linoleum_gray", "t": "t_linoleum_gray", "j": "t_linoleum_gray", "K": "t_carpet_green" },
+ "furniture": { "%": "f_beaded_door", "3": "f_table" },
+ "items": {
+ "I": { "item": "office", "chance": 30 },
+ "S": { "item": "office_paper", "chance": 30 },
+ "U": { "item": "allclothes", "chance": 30 },
+ "z": { "item": "allclothes", "chance": 30, "repeat": [ 1, 2 ] },
+ "R": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "Q": { "item": "shoes", "chance": 30, "repeat": [ 1, 2 ] },
+ "K": { "item": "pants", "chance": 30, "repeat": [ 1, 2 ] },
+ "T": { "item": "shirts", "chance": 30, "repeat": [ 1, 2 ] },
+ "Y": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "P": { "item": "cleaning", "chance": 20, "repeat": [ 2, 4 ] },
+ "3": { "item": "underwear", "chance": 20, "repeat": [ 2, 4 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5195,6 +8077,48 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_67",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "JJjJJ|....|V^^^^^KKKK^^^",
+ ".....|....|V^^^^^^^^^^^^",
+ ".....=....|y^^^^^KKKK^^^",
+ ".....|....|V^^^^^KKKK^^^",
+ "=|=|=|....|V^^^^^^^^^^^^",
+ ".|.|.|....|V^^^JJJJJ?JJ^",
+ ".|t|t|....|^^^^^^^^A^^^^",
+ "-----|-==-|^V^^^VV^^^^VV",
+ "^^^^^^^^^^|---|----=----",
+ "^^^^^^^^^^^^^^|^z^^^^^^I",
+ "^^^^^^^^^^^^^^|zzz^^^^BI",
+ "----------|^^^|----=----",
+ " |^^^^^^^^^^^^^",
+ " |---------|FTF",
+ " HF^F",
+ " HFFF",
+ " |-HH",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": {
+ "I": { "item": "office", "chance": 5 },
+ "S": { "item": "office_paper", "chance": 50 },
+ "V": { "item": "glass_shop", "chance": 10, "repeat": [ 2, 4 ] },
+ "K": { "item": "glass_shop", "chance": 10, "repeat": [ 2, 4 ] }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5272,6 +8196,50 @@
"place_monsters": [ { "monster": "GROUP_MALL", "x": [ 4, 19 ], "y": [ 0, 23 ], "density": 0.7 } ]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_68",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "^^^|................|^^^",
+ "^^y|.....######.....|^^^",
+ "^^MH.....# #.....HK^^",
+ "^^MH.....# #.....HK^^",
+ "^^^+.....# #.....+^^^",
+ "^^^+.....# #.....+^^^",
+ "^^MH.....# #.....HK^^",
+ "^^MH.....######.....HK^^",
+ "|^y|................|^^^",
+ "|M^|........A.......|^^^",
+ "---|................|---",
+ "^^^=................=^^^",
+ "^^^|....YFFFFFFY....|^^^",
+ "|----HH--HHHHHH--HH----|",
+ "H H",
+ "H H",
+ "| |",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "A": "t_linoleum_gray", "Y": "t_linoleum_gray", "F": "t_linoleum_gray" },
+ "items": {
+ "K": [
+ { "item": "dollar_clothes", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "dollar_books", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "M": { "item": "glass_shop", "chance": 20, "repeat": [ 1, 2 ] }
+ },
+ "place_vehicles": [ { "vehicle": "food_cart", "x": 10, "y": 10, "chance": 100, "rotation": 90 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5281,13 +8249,13 @@
"fill_ter": "t_flat_roof",
"rows": [
"........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
- "........................",
+ ".........oooooo.........",
+ ".........oooooo.........",
+ ".........oooooo.........",
+ ".........oooooo.........",
+ ".........oooooo.........",
+ ".........oooooo.........",
+ ".........oooooo.........",
"........................",
"........................",
"........................",
@@ -5305,7 +8273,14 @@
" ",
" "
],
- "terrain": { ".": "t_flat_roof", " ": "t_open_air", "-": "t_gutter_south", "3": "t_gutter_east", "|": "t_gutter_west" },
+ "terrain": {
+ ".": "t_flat_roof",
+ " ": "t_open_air",
+ "-": "t_gutter_south",
+ "3": "t_gutter_east",
+ "|": "t_gutter_west",
+ "o": "t_glass_roof"
+ },
"place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 10 ], "chance": 50, "repeat": [ 1, 3 ] } ]
}
},
@@ -5369,6 +8344,61 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_69",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "^^KKKK^^^QQQ^QQQ^QQQ^Q|B",
+ "^^^^^^^^^^^^^^^^^^^^^Q|B",
+ "^^KKKK^^^QQQ^QQQ^QQQ^Q|^",
+ "^^^^^^^^^^^^^^^^^^^^^Q|^",
+ "^^KKKK^^^QQQ^QQQ^QQQ^Q|B",
+ "^^KKKK^^--------------|B",
+ "^^^^^^^^|zz^^z^^^z^^^^|^",
+ "JJJJ?JJJ|^^^^zz^z^^^^P|^",
+ "J^A^^^^^=^^^^^z^zzz^^P|B",
+ "^^^^^^^^|^^^^^^^z^^^^P|B",
+ "-----------=------=---|^",
+ "^^^^^^^^^^^^^^^|I^^|jt|^",
+ "^^^^^^^^^^^^^^^|IB^=^^|B",
+ "F^F|-------------------H",
+ "F^FH ",
+ "FFFH ",
+ "HHH| ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": {
+ "Q": [
+ { "item": "dollar_food", "chance": 30, "repeat": [ 1, 2 ] },
+ { "item": "dollar_kitchen", "chance": 30, "repeat": [ 1, 2 ] },
+ { "item": "dollar_tools", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "K": [
+ { "item": "dollar_clothes", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "dollar_books", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "z": [
+ { "item": "dollar_food", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "dollar_kitchen", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "dollar_tools", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "dollar_books", "chance": 20, "repeat": [ 1, 2 ] },
+ { "item": "dollar_clothes", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "I": { "item": "office", "chance": 30 }
+ },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.15 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5465,6 +8495,43 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_70",
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "^^^^^^^^^^^^^^^^^^^^^^^^",
+ "KB^^BKB^^BKB^^BKB^^BKB^^",
+ "HH--HHH--HHH--HHH--HHH--",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "items": { "K": [ { "item": "restaur_table", "chance": 20 }, { "item": "table_wine", "chance": 10 } ] },
+ "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.3 } ]
+ }
+ },
{
"type": "mapgen",
"method": "json",
@@ -5557,6 +8624,55 @@
]
}
},
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "mall_b_71",
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+ "=...J.l|^^| ",
+ "|J..J.J|^^| ",
+ "|J..J.i|^^| ",
+ "|J..J.J|^^| ",
+ "=.....i|^^| ",
+ "|ll...l|^^|--| ",
+ "---=---|^^^^FH ",
+ "|UU.UU.=^^^^FH ",
+ "|.....z|^^|--| ",
+ "|UUUUUz|^^| ",
+ "-------|^^| ",
+ "|^^^^^^^^^| ",
+ "=^^^^^^^^^| ",
+ "----------| ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "mall_palette_2" ],
+ "terrain": { "F": "t_floor" },
+ "items": {
+ "U": [
+ { "item": "groce_bread", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "groce_ingredient", "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "groce_condiment", "chance": 20, "repeat": [ 1, 2 ] }
+ ],
+ "J": { "item": "diner_food", "chance": 20 },
+ "i": { "item": "oven", "chance": 10, "repeat": [ 1, 2 ] },
+ "l": [
+ { "item": "groce_meat", "chance": 10, "repeat": [ 2, 4 ] },
+ { "item": "restaur_fridge", "chance": 10, "repeat": [ 2, 4 ] }
+ ]
+ }
+ }
+ },
{
"type": "mapgen",
"method": "json",
diff --git a/data/json/mapgen/nested/nested_chunks_roof.json b/data/json/mapgen/nested/nested_chunks_roof.json
index dcf0f05598e25..cfea01cf939b4 100644
--- a/data/json/mapgen/nested/nested_chunks_roof.json
+++ b/data/json/mapgen/nested/nested_chunks_roof.json
@@ -308,24 +308,21 @@
"rotation": [ 0, 3 ],
"rows": [
"%#++#%",
- "%p__p%",
- "#p__p#",
- "#p__p#",
- "%p__p%",
+ "%1__1%",
+ "#1__1#",
+ "#1__1#",
+ "%1__1%",
"%#++#%"
],
"terrain": {
"_": "t_null",
- "p": "t_grass_long",
"#": "t_reinforced_glass_shutter_open",
"+": "t_reinforced_door_glass_c",
"%": "t_reinforced_glass_shutter",
"$": "t_wall_glass"
},
- "furniture": {
- "p": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ],
- "S": "f_statue"
- }
+ "furniture": { "S": "f_statue" },
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_mature" } }
}
},
{
@@ -337,10 +334,10 @@
"rotation": [ 0, 3 ],
"rows": [
"%#++#%",
- "%p__p%",
+ "%1__1%",
"#S__b#",
"#S__b#",
- "%p__p%",
+ "%1__1%",
"%#++#%"
],
"terrain": {
@@ -351,7 +348,8 @@
"%": "t_reinforced_glass_shutter",
"$": "t_wall_glass"
},
- "furniture": { "p": [ "f_indoor_plant_y", "f_indoor_plant" ], "S": "f_statue", "b": "f_bench" }
+ "sealed_item": { "1": { "item": { "item": "seed_sugar_beet" }, "furniture": "f_planter_mature" } },
+ "furniture": { "S": "f_statue", "b": "f_bench" }
}
},
{
@@ -364,17 +362,14 @@
"rows": [
"______",
"______",
- "bpppb_",
- "bpBpb_",
- "bpppb_",
+ "b111b_",
+ "b1B1b_",
+ "b111b_",
"______"
],
- "terrain": { "_": "t_null", "p": "t_grass_long", "B": "t_grass_long" },
- "furniture": {
- "p": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ],
- "b": "f_bench",
- "B": [ "f_birdbath", "f_statue" ]
- }
+ "terrain": { "_": "t_null", "B": "t_railroad_rubble" },
+ "furniture": { "b": "f_bench", "B": [ "f_birdbath", "f_statue" ] },
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_seedling" } }
}
},
{
@@ -385,19 +380,16 @@
"mapgensize": [ 6, 6 ],
"rotation": [ 0, 3 ],
"rows": [
- "p____p",
- "p_bb_p",
- "pp__Bp",
- "pB__pp",
- "p_bb_p",
- "p____p"
+ "1____1",
+ "1_bb_1",
+ "11__B1",
+ "1B__11",
+ "1_bb_1",
+ "1____1"
],
- "terrain": { "_": "t_railroad_rubble", "b": "t_railroad_rubble", "p": "t_grass_long", "B": "t_grass_long" },
- "furniture": {
- "p": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ],
- "B": [ "f_birdbath", "f_statue" ],
- "b": "f_bench"
- }
+ "terrain": { "_": "t_railroad_rubble", "b": "t_railroad_rubble", "B": "t_railroad_rubble" },
+ "furniture": { "B": [ "f_birdbath", "f_statue" ], "b": "f_bench" },
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_seedling" } }
}
}
]
diff --git a/data/json/mapgen/park.json b/data/json/mapgen/park.json
index a1e3ddaf2f7e4..a9412181a785b 100644
--- a/data/json/mapgen/park.json
+++ b/data/json/mapgen/park.json
@@ -272,7 +272,7 @@
"s": "t_sidewalk",
"t": "t_tree",
"z": "t_shrub",
- "~": "t_water_sh"
+ "~": "t_water_pool_shallow"
},
"furniture": { "A": "f_statue", "H": "f_bench", "R": "f_trashcan", "T": "f_table", "f": "f_dahlia" },
"place_items": [ { "item": "trash", "x": 4, "y": 5, "chance": 50 } ],
@@ -839,7 +839,7 @@
"S": "t_grass",
"_": "t_grass",
"b": "t_grass",
- "w": "t_water_sh",
+ "w": "t_water_pool_shallow",
"|": "t_fence_h"
}
},
diff --git a/data/json/mapgen/prison_1.json b/data/json/mapgen/prison_1.json
index 444f7cf09d8f3..ee9c2685c6317 100644
--- a/data/json/mapgen/prison_1.json
+++ b/data/json/mapgen/prison_1.json
@@ -1,86 +1,4 @@
[
- {
- "type": "palette",
- "id": "prison_palette",
- "terrain": {
- " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
- "#": [ "t_rock" ],
- "%": [ "t_fence_barbed" ],
- "+": [ "t_door_locked_interior" ],
- ",": [ "t_floor" ],
- "-": [ "t_concrete_wall" ],
- ".": [ "t_grass" ],
- "<": [ "t_stairs_down" ],
- "=": [ "t_door_c" ],
- ">": [ "t_stairs_up" ],
- "B": [ "t_bars" ],
- "D": [ "t_floor" ],
- "E": [ "t_floor" ],
- "F": [ "t_chainfence_v" ],
- "G": [ "t_door_bar_locked" ],
- "H": [ "t_chaingate_l" ],
- "O": [ "t_column" ],
- "S": [ "t_floor" ],
- "T": [ "t_floor" ],
- "W": [ "t_floor" ],
- "_": [ "t_pavement" ],
- "b": [ "t_floor" ],
- "c": [ "t_floor" ],
- "d": [ "t_floor" ],
- "e": [ "t_floor" ],
- "f": [ "t_chainfence_h" ],
- "g": [ "t_reinforced_glass" ],
- "h": [ "t_floor" ],
- "i": [ "t_floor" ],
- "l": [ "t_floor" ],
- "m": [ "t_floor" ],
- "n": [ "t_floor" ],
- "o": [ "t_floor" ],
- "r": [ "t_floor" ],
- "s": [ "t_sidewalk" ],
- "t": [ "t_floor" ],
- "w": [ "t_window" ],
- "x": [ "t_console_broken" ],
- "y": [ "t_floor" ],
- "z": [ "t_floor" ],
- "|": [ "t_concrete_wall" ]
- },
- "furniture": {
- "3": [ "f_bench" ],
- "D": [ "f_dryer" ],
- "E": [ "f_exercise" ],
- "S": [ "f_sink" ],
- "T": [ "f_toilet" ],
- "W": [ "f_washer" ],
- "b": [ "f_bed" ],
- "c": [ "f_counter" ],
- "d": [ "f_desk" ],
- "e": [ "f_fridge" ],
- "h": [ "f_chair" ],
- "i": [ "f_locker" ],
- "l": [ "f_locker" ],
- "m": [ "f_locker" ],
- "n": [ "f_oven" ],
- "o": [ "f_bookcase" ],
- "r": [ "f_rack" ],
- "t": [ "f_table" ],
- "z": [ "f_rack" ]
- },
- "toilets": { "T": { } },
- "items": {
- "D": [ { "item": "prison_textile", "chance": 100 } ],
- "W": [ { "item": "prison_textile", "chance": 100 } ],
- "b": [ { "item": "novels", "chance": 30 }, { "item": "contraband", "chance": 10 }, { "item": "bed", "chance": 50 } ],
- "d": [ { "item": "magazines", "chance": 30 }, { "item": "office", "chance": 30 } ],
- "e": { "item": "fridge", "chance": 60 },
- "i": [ { "item": "science", "chance": 30 }, { "item": "cleaning", "chance": 30 } ],
- "m": [ { "item": "softdrugs", "chance": 40 }, { "item": "harddrugs", "chance": 40 } ],
- "o": { "item": "novels", "chance": 70 },
- "r": [ { "item": "science", "chance": 30 }, { "item": "cleaning", "chance": 30 } ],
- "y": { "item": "cleaning", "chance": 60 },
- "z": [ { "item": "cannedfood", "chance": 40 }, { "item": "pasta", "chance": 40 } ]
- }
- },
{
"type": "mapgen",
"method": "json",
@@ -334,7 +252,344 @@
]
},
"place_monsters": [ { "monster": "GROUP_ZOMBIE_COP", "x": [ 35, 38 ], "y": [ 2, 7 ], "density": 0.2 } ],
- "monster": { "7": { "monster": "mon_turret" }, "Z": { "monster": "mon_zombie_tough" }, "C": { "monster": "mon_broken_cyborg" } }
+ "monster": { "7": { "monster": "mon_turret" }, "Z": { "monster": "mon_zombie_prisoner" }, "C": { "monster": "mon_broken_cyborg" } }
}
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [
+ [ "prison_alcatraz_5", "prison_alcatraz_4", "prison_alcatraz_3", "prison_alcatraz_2", "prison_alcatraz_1" ],
+ [ "prison_alcatraz_10", "prison_alcatraz_9", "prison_alcatraz_8", "prison_alcatraz_7", "prison_alcatraz_6" ],
+ [ "prison_alcatraz_15", "prison_alcatraz_14", "prison_alcatraz_13", "prison_alcatraz_12", "prison_alcatraz_11" ]
+ ],
+ "weight": 250,
+ "object": {
+ "fill_ter": "t_dirt",
+ "rows": [
+ "````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````",
+ "```````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````````",
+ "```````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````````````````````",
+ "```````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````````````````````",
+ "```````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````````",
+ "`````````````````~~~~~~~~~~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!** ~~~~~~~~~~~~~~``````````````````````````````````",
+ "```````````~~~~~~~~~~~~~~~~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**************~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`````````````````",
+ "`````````~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*** ** ** ~~~~~~~~~~````````",
+ "`````~~~~~~~~~~~~~~****** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ** *** * ********* ~~~~~~``````",
+ "````~~~~~~~~~~~~~~ **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *** * *** *** *** ** ~~~~~~~~~~``",
+ "``````~~~~~~~~~~~ ** ^^^ ********************************** ^^^^ *********************** ***** ~~~~~~`",
+ "````~~~~~~~~~ ***** ^^^ ******* ****** ****** ** ^^^^^^^^^^^^^^^^^^^^^*****************************~~~~~`",
+ "```~~~~~~ **** ^^^ ******************* ** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`",
+ "`````~~~~ ** ^^^ FffffffffffffffffffffF ***** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`",
+ "````~~~~~ ** ^^^ F______((((((((______F ******************************^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`",
+ "```~~~~~~~ ** ^^^ F_____(________(_____F $$$$$$$$$$$$$$$$$$$$**$$$$$$$$$$$w$$$$$w$$$$$$$$$$$*****^^^)~~~~`",
+ "```~~~~~~~~ *** ^^^ F____(_(______(_(____F $o,,,,h$11111$o,,dh$ *$I,,,+,,,+,,,C$C,,,+,,,+,,,I$ ***^^^)~~~``",
+ "```~~~~~~~~~ ** ^^^ F___(__(______(__(___F $1,,,dd$,,,,,$o,,d,$ wC,hd$,,,$dh,I$I,hd$,,,$dh,Cw **^^^)~~~``",
+ "```~~~~~~~~~~ * ^^^ F___(__(______(__(___F g1,,,,,$$$?$$$Y,,,,g $$$$$$,,,$$$$$$$$$$$,,,$$$$$$ **^^^)~~~```",
+ "````~~~~~~~~~ ** ^^^ F___(__((((((((__(___F $Y,,,,,?,,,,,?,,111$ $I,,,+,,,$A,,t,,,,o$,,,$0000$ **^^^)~~~````",
+ "```~~~~~~~~~~ ***** ^^^^ F___(__(______(__(___F $$$$$$$$,,,,,$$$$$$$ wC,hd$,,,$A,,t,,,,o$,,,$,,,0$**^^^)~~~~````",
+ "``~~~~~~~~~~ ********^^^ F___(__(______(__(___F $o,,,,1$,,,,,$S,=,T$ $$$$$$,,,$A,,,,,,,J$,,,+,,,0$*^^^)~~~~~````",
+ "```~~~~~~~~~ **********^^^F____(_(______(_(____F gdd,,,,?,,,,,$,,$$$$ $I,,,+,,,$$$$$+$$$$$,,,$,,,0$*^^^)~~~~~````",
+ "````~~~~~~~~~ ** ****^^^F_____(________(_____F $h,,,,Y$,,,,,=,,=,T$ wC,hd$,,,,,,,,,,,,,,,,,$0000$*^^^)~~~~~````",
+ "```~~~~~~~~~~ * ****** ^^^F______((((((((______F $$$$$$$$$$+$$$$$$$$$ $$$$$$$$$$$$$$+$$$$$$$$$$$$$$**^^)~~~~~~```",
+ "```~~~~~~~~ *** ^^^FffffffffffHfffffffffF^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*^^)~~~~~~```",
+ "```~~~~~~~~ **|-----|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|-----|^*^^)~~~~~~~``",
+ "````~~~~~~~~ **'|>,,,,|%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%^^^%%V%%%%|,,,,>|^*^^)))))~~```",
+ "``~~~~~~~~~~ **''|,,,,,+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%^^^H''''''+,,,,,|^**^^^^^)~~~``",
+ "```~~~~~~~~ *''|,,,,,|ffffffffffVffffffffffVffffffffffVffffffffffVffffffffffVffffffffHHHffVffff|,,,,,|^^**^^^^) ~~``",
+ "```~~~~~~~~ ***|--+--| ^^^ |--+--|^^****^^) ~~~`",
+ "``~~~~~~~~ * %'F ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F'% *^^****^^) ~~`",
+ "```~~~~~~~ ** %'F |--------------------|--|------------|^^|-------------|--gg--|-g+g-|-gg-| F'% *^^****^^) ~~`",
+ "```~~~~~~ ***%'F |,,,,,,,,,,,,,,,,,,,,|,,|222zzzzeeeee|^^|b,,,=,,111,7q|qd,,,o|,...,|d,,A| F'% *^^****^^) ~~`",
+ "`````~~~~ **%'F |,,33333,,,,,,33333,,|,,+,,,,,,,,,,,,+^^|b,,c|o,,,,,dd|hd,,h,?,...,gdh,A| F'% *^^****^^) ~`",
+ "````~~~~~ ***** %'F |,,ttttt,,,,,,ttttt,,|,,+,,,,,,,,,,,,+^^|----|o,,,,,,h|,d,,,,|,...,|1,,Y| F'% *^^****^^) ~~`",
+ "```~~~~~ *** V'V |,,33333,,,,,,33333,,|,,|222zzzzeeeee|99|b,,,=,,,,,,,Y|,,,11Y|3...,|--?-| V'V *^^****^^) ~~`",
+ "``~~~~~~ ** %'F |,,,,,,,,,,,,,,,,,,,,|,,|----|-----|----|b,,c|o,,,S|?-|------|3...,,,,,,| F'% *^^****^^) ~~`",
+ "``~~~~~~~ * %'F |,,33333,,|--cccccc--|,,|T,,,G,,,,,G,,,T|----|o,,,4|,,+,hgh,,|3...3|--=-| F'% *^^****^^) ~~`",
+ "```~~~~~~~ * %'F |,,ttttt,,|22,,,,,,qq|,,|bb,,B,,,,,B,,bb|b,,,=,,,,4|,,|--|--=|,...3|T,,,| F'% *^^^^^^^^)~~~``",
+ "```~~~~~~~~ *** %'F |,,33333,,|,,,,,,,,,,+,,|----|,,,,,|----|b,,c|--?--|,,+,hgh=,=,...3|q,,S| F'% *^^^^^^^^)~~~``",
+ "``~~~~~~~~~ ** %'F |,,,,,,,,,|,,,,,,,,,,|,,|T,,,G,,,,,G,,,T|----|m,,,m|,,|--|--=|,...,|----| F'% *******)))~~~``",
+ "```~~~~~~~~ ** %'F |,,,,,,,,,|SScceeccnn|,,|bb,,B,,,,,B,,bb|5,,,?,,mmm|,,+,hgh,,|,...,=,,,y| F'% ~~~~~~``",
+ "`````~~~~~ ******** V'V |--BBGBB--|----------|BG|----|BBGBB|----|----------|BG|------|--+--|----| V'V ~~~~```",
+ "````~~~~~ *** **** %'F g,,,,,,,,,,,,,,,,,,,,B,,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g F'% ~~~~````",
+ "`````~~~~ ** %'F g,,,,,,,,,,,,,,,,,,,,G,,G,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g F'% ~~~~`````",
+ "`````~~~~~ ** %'F |--BBGBB--|BG|-BBGBB-|BG|----|BBGBB|----|----|BBGBB|----|----|BBGBB|----| F'% ~~~~`````",
+ "````~~~~~~~ ** %'F |Y,,,,,,,3|,,|Y,,,,,l|,,|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| F'% ~~~~`````",
+ "```~~~~~~~~~ ** %'F |Y,,333,,3|,,|Y,,,,,l|,,|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| F'% ~~~~~~````",
+ "``~~~~~~~~~~ ** %'F |Y,,,,,,,3|,,|Y,,,,,l|,,|----|,,,,,|----|----|,,,,,|----|----|,,,,,|----| F'% ~~~~~`````",
+ "`~~~~~~~~~~~~ *** V'V |----+----|,,|---+---|,,|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| V'V ~~~~~```",
+ "````~~~~~~~~~~ ** %'F |6,,,,,,,6|,,|L,,,,,P|,,|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| F'% ~~~````",
+ "`````~~~~~~~~~ * %'F |6,,,6,,,6|,,|,,,,,,P|,,|----|-----|----|----|,,,,,|----|----|,,,,,|----| F'% ~~~~```",
+ "````~~~~~~~~~~ ** %'F |6,,,6,,,6|,,|M,,,,,N|,,|^^^^^^^^^^^^^^^|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| F'% ~~~~````",
+ "````~~~~~~~~~ * %'F |---------|,,|,,,,,,N|,,+^^^^^^^^^^^^^^^|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| F'% ~~~~````",
+ "```~~~~~~~~~~ ** %'F |DDDDD,rr,B,,|-------|+-|^^^^E^^888^^K^^|----|,,,,,|----|----|,,,,,|----| F'% ~~~~````",
+ "``````~~~~~~ *** %'F |,,,,,,,,,G,,|U|U|U|U|,,|^^^^^^^^^^^^^^^|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| F'% ~~~`````",
+ "```~~~~~~~~ ** V'V |WWWWW,rr,B,,|H|H|H|H|,,|^^^^E^^888^^E^^|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| V'V ~~~~````",
+ "`````~~~~~ ** %'F |---------|--|,,,,,,,,,,|^^^^^^^^^^^^^^^|----|,,,,,|----|----|,,,,,|----| F'% ~~~~`````",
+ "```~~~~~~ ** %'F F::;;;:::::::H,,,,,,,,,h|^^^^E^^888^^E^^|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| F'% ~~~~~`````",
+ "```~~~~~~ ***** %'F F::::::::::::|ScRRRQQQdd|^^^^^^^^^^^^^^^|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| F'% ~~~~~`````",
+ "`~~~~~~~ * %'F FffffHfffffff|----------|fffffffffffffff|----|-----|----|----|-----|----| F'% ~~~~~~``````",
+ "````~~~~*** %'F F'% ~~~~~~````````",
+ "```~~~~~~ * |--+--| |--+--|~~~~~~````````",
+ "```~~~~~~** |,,,,,|ffffffffffVffffffffffVffffffffffVffffffffffVffffffffffVffffffffffVfffffff|,,,,,|~~~~~`````````",
+ "````~~~~*** |,,,,,+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+,,,,,|~~~```````````",
+ "```~~~~***~~~~~ |>,,,,|%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%|,,,,>|~~~```````````",
+ "```~~~~~**~~~~~~~~ |-----|#########################################################################|-----|~~~```````````",
+ "`````````*~~~~~~~~~~~~~~~~########################################################~~~~###########~~~~~~~~~~`````````````",
+ "```````***``~~~~~~~~~~~~~~~~~################~~~~~~~~~~~~~~~~###################~~~~~~~~####~~~~~~``````````````````````",
+ "```````**```````````````~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```````````````````````````",
+ "````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````"
+ ],
+ "palettes": [ "prison_palette" ],
+ "terrain": {
+ " ": [
+ [ "t_grass", 20 ],
+ [ "t_grass_dead", 3 ],
+ [ "t_grass_tall", 5 ],
+ [ "t_grass_long", 3 ],
+ [ "t_dirt", 5 ],
+ [ "t_shrub", 2 ],
+ [ "t_tree", 1 ]
+ ],
+ ".": [ "t_floor" ],
+ ":": [ "t_dirt" ],
+ "'": [ "t_dirt" ],
+ ";": [ "t_trunk" ],
+ "#": [ "t_sand" ],
+ "~": [ "t_water_sh" ],
+ "*": [ "t_dirt" ],
+ "!": [ "t_dock" ],
+ "^": [ "t_concrete" ],
+ "$": [ "t_brick_wall" ],
+ "?": [ "t_door_locked" ],
+ "(": [ "t_pavement_y" ],
+ ")": [ "t_guardrail" ],
+ "1": [ "t_floor" ],
+ "3": [ "t_floor" ],
+ "2": [ "t_floor" ],
+ "4": [ "t_floor" ],
+ "5": [ "t_floor" ],
+ "6": [ "t_floor" ],
+ "7": [ "t_floor" ],
+ "8": [ "t_concrete" ],
+ "9": [ "t_concrete" ],
+ "0": [ "t_floor" ],
+ "q": [ "t_floor" ],
+ "A": [ "t_floor" ],
+ "C": [ "t_floor" ],
+ "E": [ "t_concrete" ],
+ "I": [ "t_floor" ],
+ "J": [ "t_floor" ],
+ "K": [ "t_concrete" ],
+ "L": [ "t_floor" ],
+ "M": [ "t_floor" ],
+ "N": [ "t_floor" ],
+ "O": [ "t_floor" ],
+ "P": [ "t_floor" ],
+ "Q": [ "t_floor" ],
+ "R": [ "t_floor" ],
+ "U": [ "t_concrete" ],
+ "V": [ "t_column" ],
+ "Y": [ "t_floor" ],
+ "`": [ [ "t_water_dp", 20 ], "t_water_sh" ]
+ },
+ "furniture": {
+ "q": [ "f_trashcan" ],
+ "y": [ "f_locker" ],
+ "A": [ "f_sofa" ],
+ "C": [ "f_bed" ],
+ "I": [ "f_dresser" ],
+ "J": [ "f_pinball_machine" ],
+ "K": [ "f_floor_canvas" ],
+ "L": [ "f_drill_press" ],
+ "M": [ "f_heavy_lathe" ],
+ "N": [ "f_utility_shelf" ],
+ "O": [ "f_shredder" ],
+ "P": [ "f_workbench" ],
+ "Q": [ "f_cupboard" ],
+ "R": [ "f_locker" ],
+ "U": [ "f_fiber_mat" ],
+ "#": [ [ "f_null", 30 ], "f_boulder_small" ],
+ "*": [ [ "f_boulder_large", 20 ], "f_boulder_medium" ],
+ "1": [ "f_filing_cabinet" ],
+ "Y": [ "f_rack_coat" ],
+ "2": [ "f_cupboard" ],
+ "4": [ "f_glass_fridge" ],
+ "5": [ "f_safe_l" ],
+ "6": [ "f_shower" ],
+ "7": [ "f_armchair" ],
+ "8": [ "f_bench" ],
+ "9": [ "f_dumpster" ],
+ "0": [ "f_locker" ]
+ },
+ "items": {
+ "0": [ { "item": "prison_weapons", "chance": 50 }, { "item": "prison_armor", "chance": 50 } ],
+ "I": [ { "item": "cop_torso", "chance": 33 }, { "item": "cop_pants", "chance": 33 }, { "item": "cop_shoes", "chance": 33 } ],
+ "N": [ { "item": "hand_tools", "chance": 50 }, { "item": "tools_carpentry", "chance": 50 } ],
+ "C": { "item": "bed", "chance": 70 },
+ "Q": { "item": "prison_canine_food", "chance": 70, "repeat": [ 3, 5 ] },
+ "R": [
+ { "item": "animalshelter_softdrug", "chance": 70, "repeat": [ 2, 3 ] },
+ { "item": "animalshelter_hardrug", "chance": 30, "repeat": [ 1, 2 ] }
+ ],
+ "U": { "item": "prison_canine_bowl", "chance": 70 },
+ "q": { "item": "trash_cart", "chance": 50, "repeat": [ 2, 3 ] },
+ "n": { "item": "oven", "chance": 70 },
+ ":": { "item": "animalshelter_toys", "chance": 5 },
+ "1": { "item": "office_paper", "chance": 70, "repeat": [ 2, 3 ] },
+ "5": { "item": "alcohol_bottled_canned", "chance": 95, "repeat": [ 1, 3 ] },
+ "2": [ { "item": "cannedfood", "chance": 70, "repeat": [ 1, 3 ] }, { "item": "pasta", "chance": 70, "repeat": [ 1, 3 ] } ]
+ },
+ "monster": {
+ ",": [ { "monster": "mon_zombie_cop", "chance": 1 }, { "monster": "mon_zombie_prisoner", "chance": 2 } ],
+ "^": { "monster": "mon_zombie_brute", "chance": 1 },
+ " ": { "monster": "mon_dog_zombie_cop", "chance": 1 },
+ ".": { "monster": "mon_secubot", "chance": 1 },
+ "U": { "monster": "mon_dog_gshepherd", "chance": 10 },
+ ":": { "monster": "mon_dog_gshepherd", "chance": 1 }
+ },
+ "place_graffiti": [ { "text": "Dufresne was here", "x": 18, "y": 28 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [
+ [
+ "prison_alcatraz_5_2f",
+ "prison_alcatraz_4_2f",
+ "prison_alcatraz_3_2f",
+ "prison_alcatraz_2_2f",
+ "prison_alcatraz_1_2f"
+ ],
+ [
+ "prison_alcatraz_10_2f",
+ "prison_alcatraz_9_2f",
+ "prison_alcatraz_8_2f",
+ "prison_alcatraz_7_2f",
+ "prison_alcatraz_6_2f"
+ ],
+ [
+ "prison_alcatraz_15_2f",
+ "prison_alcatraz_14_2f",
+ "prison_alcatraz_13_2f",
+ "prison_alcatraz_12_2f",
+ "prison_alcatraz_11_2f"
+ ]
+ ],
+ "weight": 250,
+ "object": {
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " 14444444444444444444 14444444444444444444444444444 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 1..................1 1...........................1 ",
+ " 14444444444444444441 14444444444444444444444444441 ",
+ " ",
+ " |-w-w-| |-w-w-| ",
+ " w<,,,,w(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((w,,,,#< ",
+ " 2222 ............ ",
+ " 222 222............ ",
+ "22 22........... ",
+ "2 2........... ",
+ "22 22........... ",
+ " 222 222............ ",
+ " 2222 ............ ",
+ " ............ ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof", "2": "t_wall_metal", "<": "t_ladder_up", ">": "t_ladder_down", "#": "t_grate" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "ranch_camp_57_silo",
+ "object": {
+ "fill_ter": "t_open_air",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " <#> ",
+ " 2222 ",
+ " 222 222 ",
+ "22 22 ",
+ "2 2 ",
+ "22 22 ",
+ " 222 222 ",
+ " 2222 ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { "2": "t_wall_metal", "<": "t_ladder_up", ">": "t_ladder_down", "#": "t_grate" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "ranch_camp_57_silocap",
+ "object": {
+ "fill_ter": "t_open_air",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " >## ",
+ " .... ",
+ " ........ ",
+ ".......... ",
+ ".......... ",
+ ".......... ",
+ " ........ ",
+ " .... ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { "#": "t_grate", ">": "t_ladder_down", ".": "t_metal_flat_roof" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [ [ "ranch_camp_67_roof", "ranch_camp_68_roof" ] ],
+ "object": {
+ "fill_ter": "t_shingle_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " |2222225",
+ " |______3",
+ " |______3",
+ " ............... |222222222222222|______3",
+ " ............... |______________________3",
+ " ............... |______________________3",
+ " ............... |______________________3",
+ " ............... |______________________3",
+ " ............... |______________________3",
+ " ............... |_______3--------------3",
+ " ............... |_______3 ",
+ " ............... |-------3 ",
+ " ............... ",
+ " ............... ",
+ " ............... ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof", "_": "t_tar_flat_roof" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [ [ "ranch_camp_65_roof", "ranch_camp_66_roof" ], [ "ranch_camp_74_roof", "ranch_camp_75_roof" ] ],
+ "object": {
+ "fill_ter": "t_shingle_flat_roof",
+ "rows": [
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ............................... ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": { ".": "t_shingle_flat_roof" }
+ }
}
]
diff --git a/data/json/mapgen/refugee_center.json b/data/json/mapgen/refugee_center.json
index c58c9d973b99d..ca2f7ce4ad7b8 100644
--- a/data/json/mapgen/refugee_center.json
+++ b/data/json/mapgen/refugee_center.json
@@ -5,6 +5,13 @@
"om_terrain": [ [ "evac_center_1", "evac_center_2", "evac_center_3", "evac_center_4", "evac_center_5" ] ],
"weight": 100,
"object": {
+ "faction_owner": [
+ { "id": "free_merchants", "x": [ 0, 23 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 96, 119 ], "y": [ 0, 23 ] }
+ ],
"fill_ter": "t_floor",
"rows": [
"........................................................................................................................",
@@ -51,6 +58,13 @@
"om_terrain": [ [ "evac_center_6", "evac_center_7", "evac_center_8", "evac_center_9", "evac_center_10" ] ],
"weight": 100,
"object": {
+ "faction_owner": [
+ { "id": "free_merchants", "x": [ 0, 23 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 96, 119 ], "y": [ 0, 23 ] }
+ ],
"fill_ter": "t_floor",
"rows": [
"......_______,,_______ssss.......................sss________________sss.......................ssss_______,,_______......",
@@ -143,6 +157,13 @@
"om_terrain": [ [ "evac_center_11", "evac_center_12", "evac_center_13", "evac_center_14", "evac_center_15" ] ],
"weight": 100,
"object": {
+ "faction_owner": [
+ { "id": "free_merchants", "x": [ 0, 23 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 96, 119 ], "y": [ 0, 23 ] }
+ ],
"fill_ter": "t_floor",
"rows": [
"......_______,,________sss.........##### c# ###########+#+###########LL#c #####..........sss________,,_______......",
@@ -215,6 +236,13 @@
"om_terrain": [ [ "evac_center_16", "evac_center_17", "evac_center_18", "evac_center_19", "evac_center_20" ] ],
"weight": 100,
"object": {
+ "faction_owner": [
+ { "id": "free_merchants", "x": [ 0, 23 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 96, 119 ], "y": [ 0, 23 ] }
+ ],
"fill_ter": "t_floor",
"rows": [
"......_______,,_______sss....#########t+ c# #2hcV bbbb bbbb Vch2# #c +t#########....sss________,,_______......",
@@ -303,6 +331,13 @@
"om_terrain": [ [ "evac_center_21", "evac_center_22", "evac_center_23", "evac_center_24", "evac_center_25" ] ],
"weight": 100,
"object": {
+ "faction_owner": [
+ { "id": "free_merchants", "x": [ 0, 23 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 24, 47 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 48, 71 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 72, 95 ], "y": [ 0, 23 ] },
+ { "id": "free_merchants", "x": [ 96, 119 ], "y": [ 0, 23 ] }
+ ],
"fill_ter": "t_floor",
"rows": [
"......_______,,_______ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss_______,,_______......",
diff --git a/data/json/mapgen/robofaq_locs/robofac_mission_chunks.json b/data/json/mapgen/robofaq_locs/robofac_mission_chunks.json
new file mode 100644
index 0000000000000..1fdb8538b94cb
--- /dev/null
+++ b/data/json/mapgen/robofaq_locs/robofac_mission_chunks.json
@@ -0,0 +1,46 @@
+{
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "robofac_mi2_convoy_ambush_chunk",
+ "object": {
+ "mapgensize": [ 24, 24 ],
+ "rows": [
+ " ",
+ " ",
+ " ######### ## ",
+ " A #### ",
+ " # # # # ",
+ " # ## # #### ",
+ " ####### ### ",
+ " ### # ",
+ " # ",
+ " # ",
+ " ## # ",
+ " # ",
+ " ### ## ",
+ " ## # # ",
+ " ## ## ",
+ " # ### ## # ",
+ " M ######## ",
+ " @ #### ",
+ " #### ",
+ " ## ##########",
+ " #### ",
+ " A ## ",
+ " ##### ",
+ " "
+ ],
+ "terrain": { "@": "t_pavement", "A": "t_pavement", "M": "t_pavement", "#": "t_pavement" },
+ "furniture": { "#": "f_wreckage" },
+ "place_vehicles": [
+ { "vehicle": "humvee", "x": 18, "y": 15, "fuel": 0, "status": 1, "chance": 100 },
+ { "vehicle": "humvee", "x": 16, "y": 4, "fuel": 0, "status": 1, "chance": 100 },
+ { "vehicle": "aapc-mg", "x": 10, "y": 10, "fuel": 0, "status": 1, "chance": 100 }
+ ],
+ "items": { "@": { "item": "lab_torso", "chance": 100 } },
+ "item": { "@": [ { "item": "rmi2_corpse" } ] },
+ "place_loot": [ { "item": "223_casing", "charges": [ 1, 1 ], "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 100, "repeat": [ 20, 60 ] } ],
+ "monster": { "M": { "monster": "mon_zombie_armored" }, "A": { "monster": "mon_zombie_soldier_acid_1" } },
+ "place_monsters": [ { "monster": "GROUP_MIL_STRONG", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 1.6 } ]
+ }
+}
diff --git a/data/json/mapgen/s_clothing.json b/data/json/mapgen/s_clothing.json
index b4a462a8ccd00..363fd41ee1eac 100644
--- a/data/json/mapgen/s_clothing.json
+++ b/data/json/mapgen/s_clothing.json
@@ -6,31 +6,32 @@
"//": "All clothing",
"weight": 1000,
"object": {
+ "fill_ter": "t_floor",
"rows": [
- " ",
- " ",
+ " ** ",
+ " ** ",
" --:::::::++:::::::-- ",
- " |..................| ",
- " |..........--------| ",
- " |{............#.s..| ",
- " |{............#....| ",
- " |{............#....| ",
- " |{............###..| ",
- " |{.................| ",
+ " |.y.........&y&y&y.| ",
+ " |b.........--------| ",
+ " |{....&y&.....#.s..| ",
+ " |{............#...D| ",
+ " |{............#...y| ",
+ " |{....CyC.....###..| ",
+ " |{................b| ",
" |{...{{{{{{.......{| ",
" |{...{{{{{{..{{...{| ",
" |{...........{{...{| ",
- " |............{{...{| ",
+ " |b...........{{...{| ",
" |..{{{{{{{{..{{...{| ",
" |..{{{{{{{{..{{...{| ",
- " |............{{...{| ",
+ " |y...........{{...{| ",
" |---------...{{...{| ",
- " |########|........{| ",
- " |.................{| ",
- " |---------.........| ",
- " |..|..|..|{{{{{{...| ",
+ " |########|b.....|--| ",
+ " |............-+-|dd| ",
+ " |----------+-|..+.s| ",
+ " |.b|.b|b.|t.S|LL|D$| ",
" -------------------- ",
- " "
+ " 4 "
],
"place_terrain": [
{ "ter": "t_door_c", "x": [ 3, 4 ], "y": 20 },
@@ -38,17 +39,30 @@
{ "ter": "t_door_c", "x": [ 9, 10 ], "y": 20 }
],
"terrain": {
- " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
- "#": "t_floor",
- "+": "t_door_glass_c",
- "-": "t_wall",
- "s": "t_floor",
+ " ": [ "t_grass_long", "t_grass", "t_grass", "t_dirt" ],
".": "t_floor",
+ "+": "t_door_glass_c",
+ "-": "t_wall_y",
":": "t_wall_glass",
- "{": "t_floor",
- "|": "t_wall"
+ "4": "t_gutter_downspout",
+ "|": "t_wall_y",
+ "*": "t_sidewalk"
+ },
+ "toilets": { "t": { } },
+ "furniture": {
+ "#": "f_counter",
+ "C": "f_armchair",
+ "s": "f_stool",
+ "{": "f_rack",
+ "S": "f_sink",
+ "d": "f_desk",
+ "$": "f_filing_cabinet",
+ "L": "f_locker",
+ "b": "f_bigmirror",
+ "y": [ "f_indoor_plant_y", "f_indoor_plant" ],
+ "D": "f_trashcan",
+ "&": "f_mannequin"
},
- "furniture": { "#": "f_counter", "s": "f_stool", "{": "f_rack" },
"place_items": [
{ "item": "shoes", "x": [ 7, 12 ], "y": 10, "chance": 70 },
{ "item": "pants", "x": [ 5, 12 ], "y": 14, "chance": 88 },
@@ -56,35 +70,95 @@
{ "item": "jackets", "x": 3, "y": [ 5, 12 ], "chance": 80 },
{ "item": "winter", "x": [ 5, 12 ], "y": 15, "chance": 60 },
{ "item": "bags", "x": 15, "y": [ 11, 17 ], "chance": 70 },
- { "item": "dresser", "x": [ 12, 17 ], "y": 21, "chance": 50 },
- { "item": "allclothes", "x": [ 3, 10 ], "y": 21, "chance": 20 },
{ "item": "allclothes", "x": [ 3, 10 ], "y": 18, "chance": 20 },
{ "item": "pants", "x": 16, "y": [ 11, 17 ], "chance": 70 },
{ "item": "shirts", "x": 16, "y": [ 11, 17 ], "chance": 70 },
{ "item": "bags", "x": 16, "y": [ 11, 17 ], "chance": 70 },
- { "item": "pants", "x": 20, "y": [ 10, 19 ], "chance": 75 },
- { "item": "shirts", "x": 20, "y": [ 10, 19 ], "chance": 75 },
- { "item": "jackets", "x": 20, "y": [ 10, 19 ], "chance": 75 }
+ { "item": "pants", "x": 20, "y": [ 10, 18 ], "chance": 75 },
+ { "item": "shirts", "x": 20, "y": [ 10, 18 ], "chance": 75 },
+ { "item": "jackets", "x": 20, "y": [ 10, 18 ], "chance": 75 }
],
+ "items": {
+ "d": { "item": "office", "chance": 30 },
+ "$": { "item": "office_paper", "chance": 30 },
+ "D": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "y": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] },
+ "L": { "item": "cleaning", "chance": 20, "repeat": [ 2, 4 ] },
+ "&": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "pants", "chance": 100 },
+ { "item": "shirts", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 10 },
+ { "item": "shoestore_shoes", "chance": 20 }
+ ]
+ },
"place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 0, 0 ], "y": [ 23, 23 ], "chance": 2, "repeat": [ 2, 3 ] } ],
"vehicles": { ".": { "vehicle": "shopping_cart", "chance": 1, "status": 1 } }
}
},
{
- "id": "tailorbooks",
- "type": "item_group",
- "items": [ [ "tailor_portfolio", 30 ], [ "mag_tailor", 50 ], [ "manual_tailor", 30 ], [ "textbook_tailor", 30 ] ]
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " |2222222222222222223 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |............&.....3 ",
+ " |..................3 ",
+ " ------------------5- ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { "&": "f_roof_turbine_vent" },
+ "place_items": [ { "item": "roof_trash", "x": [ 3, 19 ], "y": [ 3, 19 ], "chance": 50, "repeat": [ 1, 3 ] } ],
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 30 ],
+ [ "roof_2x2_utilities", 30 ],
+ [ "roof_4x4_utility", 30 ],
+ [ "roof_6x6_utility", 20 ]
+ ],
+ "x": [ 5, 15 ],
+ "y": [ 5, 15 ]
+ }
+ ]
+ }
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "s_clothes" ],
+ "om_terrain": [ "s_clothes_1" ],
"//": "Suit Tailor",
"weight": 300,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"~~~~~~~~~~~~~~~~~~~~~~~~",
- "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "~~~~~*ppp*~~~~~*ppp*~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
"***|=======:::=======|**",
"***|#.@.@#|...|#@#.@.|**",
@@ -104,35 +178,26 @@
"***O...|s.|dd]u.f|dh.0**",
"***|..u|t.|dh....+...;**",
"***|---|-0|---0--|---|**",
- "************************",
+ "****4**ppp***ppp********",
"************************",
"************************"
],
"terrain": {
"#": "t_floor",
"%": "t_console_broken",
- "*": "t_grass",
+ "*": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
+ "p": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
"+": "t_door_c",
- "-": "t_wall",
+ "-": "t_wall_g",
".": "t_floor",
"0": "t_window_alarm",
":": "t_door_glass_c",
";": "t_door_locked",
"=": "t_wall_glass",
- "@": "t_floor",
- "S": "t_floor",
"O": "t_window",
- "U": "t_floor",
- "]": "t_floor",
- "d": "t_floor",
- "f": "t_floor",
- "h": "t_floor",
- "s": "t_floor",
- "t": "t_floor",
- "u": "t_floor",
- "y": "t_floor",
- "|": "t_wall",
- "~": "t_sidewalk"
+ "|": "t_wall_g",
+ "~": "t_sidewalk",
+ "4": "t_gutter_downspout"
},
"furniture": {
"#": "f_counter",
@@ -145,7 +210,8 @@
"h": "f_chair",
"s": "f_sink",
"u": "f_trashcan",
- "y": "f_indoor_plant_y"
+ "y": "f_indoor_plant_y",
+ "p": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ]
},
"toilets": { "t": { } },
"place_items": [
@@ -167,34 +233,73 @@
{ "item": "suits", "x": 18, "y": [ 12, 13 ], "chance": 30 },
{ "item": "suits", "x": 18, "y": [ 17, 18 ], "chance": 30 },
{ "item": "suits", "x": 20, "y": [ 14, 15 ], "chance": 30 },
- { "item": "tools_tailor", "x": 18, "y": [ 12, 13 ], "chance": 50, "repeat": [ 1, 2 ] },
- { "item": "tools_tailor", "x": 18, "y": [ 17, 18 ], "chance": 50, "repeat": [ 1, 2 ] },
- { "item": "tools_tailor", "x": 20, "y": [ 14, 15 ], "chance": 50, "repeat": [ 1, 3 ] },
- { "item": "tools_tailor", "x": [ 4, 6 ], "y": [ 6, 19 ], "chance": 40, "repeat": [ 1, 6 ] },
+ { "item": "tools_commercial_tailor", "x": 18, "y": [ 12, 13 ], "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "tools_commercial_tailor", "x": 18, "y": [ 17, 18 ], "chance": 50, "repeat": [ 1, 2 ] },
+ { "item": "tools_commercial_tailor", "x": 20, "y": [ 14, 15 ], "chance": 50, "repeat": [ 1, 3 ] },
+ { "item": "tools_commercial_tailor", "x": [ 4, 6 ], "y": [ 6, 19 ], "chance": 40, "repeat": [ 1, 6 ] },
{ "item": "trash", "x": 14, "y": 18, "chance": 75 },
{ "item": "trash", "x": 20, "y": 16, "chance": 75 }
]
}
},
{
- "id": "jewelry_furshop",
- "type": "item_group",
- "items": [
- [ "gold_watch", 50 ],
- [ "sf_watch", 50 ],
- [ "brooch", 80 ],
- [ "pearl_collar", 50 ],
- [ "silver_bracelet", 30 ],
- [ "gold_bracelet", 20 ]
- ]
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof_1",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " |222222222222222223 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |.................3 ",
+ " |............&....3 ",
+ " |.................3 ",
+ " |5----------------3 ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { "&": "f_roof_turbine_vent" },
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 20 ],
+ [ "roof_4x4_utility", 20 ],
+ [ "roof_2x2_utilities", 30 ]
+ ],
+ "x": [ 5, 15 ],
+ "y": [ 5, 13 ]
+ }
+ ]
+ }
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "s_clothes" ],
+ "om_terrain": [ "s_clothes_2" ],
"//": "Fancy Furs",
"weight": 100,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"~~~~~~~~~~~~~~~~~~~~~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
@@ -209,47 +314,34 @@
"**q~~|..#.......U|******",
"**q~~|..#........|******",
"**q~~|+-|-i|#####|******",
- "**q~~|.....|...S%|******",
- "**q~~|.hh..|.....|******",
- "**q~~;.[[..|+|---|******",
- "*****0.......+...|******",
+ "**q~~|.[[[.|...S%|******",
+ "**q~~|..h..|.....|******",
+ "**q~~;...h.|+|---|******",
+ "*****0..[[...+...|******",
"****z|-+|-i--|ust|******",
"****z|d.|....|---|******",
- "****z|dh|}}}}|zzzz******",
+ "****z|dh|}}}}|4zzz******",
"****z|-0|----|z*********",
"************************",
"************************",
"************************"
],
"terrain": {
- "#": "t_floor",
- "$": "t_floor",
"%": "t_console_broken",
- "*": "t_grass",
+ "*": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
"+": "t_door_c",
- "-": "t_wall",
+ "-": "t_wall_r",
".": "t_floor",
"0": "t_window_alarm",
";": "t_door_locked",
"=": "t_wall_glass",
- "@": "t_floor",
- "A": "t_floor",
- "U": "t_floor",
- "S": "t_floor",
- "[": "t_floor",
- "d": "t_floor",
- "f": "t_floor",
- "h": "t_floor",
"i": "t_door_locked_interior",
"q": "t_grass",
- "s": "t_floor",
- "t": "t_floor",
- "u": "t_floor",
- "y": "t_floor",
"z": "t_shrub",
- "|": "t_wall",
+ "|": "t_wall_r",
"}": "t_floor",
- "~": "t_sidewalk"
+ "~": "t_sidewalk",
+ "4": "t_gutter_downspout"
},
"furniture": {
"#": "f_displaycase",
@@ -279,76 +371,118 @@
{ "item": "office", "x": 6, "y": [ 18, 19 ], "chance": 60, "repeat": [ 1, 2 ] },
{ "item": "jewelry_furshop", "x": 8, "y": [ 7, 11 ], "chance": 50, "repeat": [ 1, 4 ] },
{ "item": "trash", "x": 14, "y": 17, "chance": 75 }
+ ],
+ "items": { "[": { "item": "leather_shop_repair", "chance": 20, "repeat": [ 1, 4 ] } }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof_2",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " |222222222223 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |...........3 ",
+ " |.......5---3 ",
+ " |...&...3 ",
+ " |-------| ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { "&": "f_roof_turbine_vent" },
+ "place_items": [ { "item": "roof_trash", "x": [ 7, 13 ], "y": [ 5, 15 ], "chance": 50, "repeat": [ 1, 3 ] } ],
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 20 ],
+ [ "roof_4x4_utility", 20 ],
+ [ "roof_2x2_utilities", 30 ]
+ ],
+ "x": [ 7, 12 ],
+ "y": [ 5, 13 ]
+ }
]
}
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "s_clothes" ],
+ "om_terrain": [ "s_clothes_3" ],
"//": "Shoes & Hats",
"weight": 200,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"~~~~~~~~~~~~~~~~~~~~~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
- "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "~~~~11~~~~1111~~~11~~~~~",
"***|===::----==::==|****",
"***|]....%.|##...#@|****",
"***|]....#.|.......|****",
"***|]......|%#.....|****",
- "***|[..[..[|.#....U|****",
- "***|[..[..[|.#....U|****",
- "***|[..[..[|.......|****",
- "***|[..[..[|].....#|****",
- "***|[..[..[|]..@..#|****",
- "***|[..[..[|]..T..#|****",
- "***|[.....[|].....#|****",
+ "***|]..]..]|.#....U|****",
+ "***|]..]..]|....U|****",
+ "***|]..]..]|.......|****",
+ "***|]..]..]|].....#|****",
+ "***|]..]..]|]..@..#|****",
+ "***|]..]..]|]..T..#|****",
+ "***|].....]|].....#|****",
"***|--|--i-|-i-|---|****",
"***|dd|o.......+..]|****",
"***|.h|o..TTh.F|---|****",
"***O..|o..hh..}|ust|****",
"***|..+........+...O****",
"***|--|--O-+---|---|****",
- "**********~~~***********",
+ "******4***~~~***********",
"**********~~~***********",
"**********~~~***********",
"**********~~~***********"
],
"terrain": {
- "#": "t_floor",
"%": "t_console_broken",
- "*": "t_grass",
+ "*": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
"+": "t_door_c",
- "-": "t_wall",
+ "-": "t_wall_w",
".": "t_floor",
":": "t_door_glass_c",
"=": "t_wall_glass",
- "@": "t_floor",
- "F": "t_floor",
"O": "t_window",
- "T": "t_floor",
- "U": "t_floor",
- "[": "t_floor",
- "]": "t_floor",
- "d": "t_floor",
- "h": "t_floor",
"i": "t_door_locked_interior",
- "o": "t_floor",
- "s": "t_floor",
- "t": "t_floor",
- "u": "t_floor",
- "|": "t_wall",
- "}": "t_floor",
- "~": "t_sidewalk"
+ "|": "t_wall_w",
+ "~": "t_sidewalk",
+ "1": "t_sidewalk",
+ "4": "t_gutter_downspout"
},
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_harvest" } },
"furniture": {
"#": "f_counter",
+ "&": "f_counter_gate_c",
"@": "f_mannequin",
"F": "f_fridge",
"T": "f_table",
"U": "f_bigmirror",
- "[": "f_bookcase",
"]": "f_rack",
"d": "f_desk",
"h": "f_chair",
@@ -377,40 +511,71 @@
}
},
{
- "id": "dress_shop",
- "type": "item_group",
- "items": [
- [ "skirt", 40 ],
- [ "skirt_leather", 5 ],
- [ "dress", 120 ],
- [ "sundress", 50 ],
- [ "nanoskirt", 30 ],
- [ "camisole", 60 ],
- [ "corset", 20 ],
- [ "stockings", 50 ],
- [ "leggings", 20 ],
- [ "tights", 50 ]
- ]
- },
- {
- "id": "dress_shoes",
- "type": "item_group",
- "items": [ [ "dress_shoes", 50 ], [ "heels", 50 ], [ "leathersandals", 20 ] ]
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof_3",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " |2222222222222223 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...............3 ",
+ " |...........&...3 ",
+ " |...............3 ",
+ " |--5------------3 ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { "&": "f_roof_turbine_vent" },
+ "place_items": [ { "item": "roof_trash", "x": [ 7, 15 ], "y": [ 4, 15 ], "chance": 50, "repeat": [ 1, 3 ] } ],
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 20 ],
+ [ "roof_4x4_utility", 20 ],
+ [ "roof_2x2_utilities", 30 ]
+ ],
+ "x": [ 7, 12 ],
+ "y": [ 4, 12 ]
+ }
+ ]
+ }
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "s_clothes" ],
+ "om_terrain": [ "s_clothes_4" ],
"//": "Dress Tailor",
"weight": 300,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"~~~~~~~~~~~~~~~~~~~~~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
"*|=====::======::=====|*",
"*|#f@#...#@y@.#...#@f@|*",
- "*|...........S#.......|*",
+ "*|.......&...S#.......|*",
"*|---|...#....#....@#.|*",
"*|U..|...####%#.......|*",
"*|...+...........D@..[|*",
@@ -420,8 +585,8 @@
"*|.h.+...........D@..[|*",
"*|U..|[[[[[[[[.......[|*",
"*|---|-----|----+--|+-|*",
- "*zzzzzzzzzz|dddd..}|.s|*",
- "**********z|h.h...}|.t|*",
+ "*zzzz4zzzzz|<|dd..}|.s|*",
+ "**********z|+|h...}|.t|*",
"**********z|......}|--|*",
"~~~~~~~~~~~+.......+.[|*",
"**********z|----O--|--|*",
@@ -433,34 +598,24 @@
"terrain": {
"#": "t_floor",
"%": "t_console_broken",
- "*": "t_grass",
+ "*": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
"+": "t_door_c",
- "-": "t_wall",
+ "-": "t_wall_b",
".": "t_floor",
"0": "t_window_domestic",
":": "t_door_glass_c",
"=": "t_wall_glass",
- "@": "t_floor",
- "D": "t_floor",
"O": "t_window",
- "U": "t_floor",
- "S": "t_floor",
- "[": "t_floor",
- "d": "t_floor",
- "f": "t_floor",
- "h": "t_floor",
- "s": "t_floor",
- "t": "t_floor",
- "u": "t_floor",
- "y": "t_floor",
"z": "t_shrub",
- "|": "t_wall",
- "}": "t_floor",
- "~": "t_sidewalk"
+ "|": "t_wall_b",
+ "~": "t_sidewalk",
+ "4": "t_gutter_downspout",
+ "<": "t_stairs_up"
},
"furniture": {
"#": "f_counter",
"@": "f_mannequin",
+ "&": "f_counter_gate_c",
"D": "f_displaycase",
"U": "f_bigmirror",
"S": "f_stool",
@@ -489,7 +644,7 @@
{ "item": "dress_shop", "x": [ 6, 13 ], "y": 13, "chance": 40, "repeat": [ 3, 8 ] },
{ "item": "dress_shoes", "x": 21, "y": [ 8, 13 ], "chance": 40, "repeat": [ 2, 5 ] },
{ "item": "tailorbooks", "x": 18, "y": [ 15, 17 ], "chance": 50, "repeat": 2 },
- { "item": "tools_tailor", "x": [ 12, 15 ], "y": 15, "chance": 50, "repeat": [ 2, 3 ] },
+ { "item": "tools_commercial_tailor", "x": [ 14, 15 ], "y": 15, "chance": 50, "repeat": [ 2, 3 ] },
{ "item": "cleaning", "x": 21, "y": 18, "chance": 50, "repeat": 2 },
{ "item": "trash", "x": 4, "y": 9, "chance": 50 },
{ "item": "trash", "x": 4, "y": 11, "chance": 50 }
@@ -497,22 +652,118 @@
}
},
{
- "id": "wedding_dresses",
- "type": "item_group",
- "items": [ [ "dress", 50 ], [ "veil_wedding", 150 ], [ "dress_wedding", 150 ] ]
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof_4",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " |222222222222222222223 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |.....^..............4 ",
+ " |---5-----%%%%%%+%%%%% ",
+ " %>%LL__z___% ",
+ " %_%__z___z_% ",
+ " %___z____zz% ",
+ " %zz_ddddzzz% ",
+ " %%%%HHHH%%%% ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "terrain": {
+ "%": "t_wall_b",
+ ">": "t_stairs_down",
+ "H": "t_wall_glass",
+ "z": "t_floor",
+ "L": "t_floor",
+ "d": "t_floor",
+ "+": "t_door_c"
+ },
+ "furniture": { "^": "f_roof_turbine_vent", "z": "f_cardboard_box", "d": "f_mannequin" },
+ "items": {
+ "z": { "item": "dress_shop", "chance": 30, "repeat": [ 2, 5 ] },
+ "L": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] },
+ "&": [
+ { "item": "jackets", "chance": 40 },
+ { "item": "dress_shop", "chance": 100 },
+ { "item": "dress_shoes", "chance": 100 },
+ { "item": "hatstore_accessories", "chance": 10 }
+ ]
+ },
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 20 ],
+ [ "roof_4x4_utility", 20 ],
+ [ "roof_2x2_utilities", 30 ]
+ ],
+ "x": [ 5, 12 ],
+ "y": [ 5, 7 ]
+ }
+ ]
+ }
},
{
- "id": "wedding_suits",
- "type": "item_group",
- "items": [ [ "tux", 100 ], [ "suit", 80 ], [ "waistcoat", 50 ], [ "dress_shirt", 100 ], [ "undershirt", 50 ] ]
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_upper_roof_4",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " |22222222253 ",
+ " |..........3 ",
+ " |.......:..3 ",
+ " |..........3 ",
+ " |...X......3 ",
+ " |----------3 ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { ":": "f_cellphone_booster", "X": "f_small_satelitte_dish" }
+ }
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "s_clothes" ],
+ "om_terrain": [ "s_clothes_5" ],
"//": "Wedding Tailor",
"weight": 100,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"~~~~~~~~~~~~~~~~~~~~~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
@@ -529,59 +780,51 @@
"*|U..|t.|........y|]..|*",
"*|-O-|--|::-|.----|--.|*",
"*zrzrzrzr~~r|.[[[[[[[.|*",
- "*********~~z|.........|*",
- "*********~~r|.........|*",
- "**~HH~***~~z|-+--|--+-|*",
- "**~TT~~~~~~r|....|...h|*",
- "**~TT~~~~~~z|h..U|U...|*",
- "**~HH~*****r|-O--|--O-|*",
+ "*********~~z|.........|4",
+ "*******&*~~r|.........|*",
+ "R********~~z|-+--|--+-|*",
+ "******~~~~~r|....|...h|*",
+ "******~~~~~z|h..U|U...|*",
+ "***********r|-O--|--O-|*",
"************************",
"*******^****************",
"************************"
],
"terrain": {
- "#": "t_floor",
"%": "t_console_broken",
- "*": "t_grass",
+ "*": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
+ "&": "t_grass",
"+": "t_door_c",
- "-": "t_wall",
+ "-": "t_brick_wall",
".": "t_floor",
"0": "t_window_alarm",
":": "t_door_glass_c",
";": "t_door_locked",
"=": "t_wall_glass",
- "@": "t_floor",
"H": "t_sidewalk",
"O": "t_window",
"T": "t_sidewalk",
- "U": "t_floor",
- "[": "t_floor",
- "]": "t_floor",
"^": "t_tree",
- "d": "t_floor",
- "f": "t_floor",
- "h": "t_floor",
"r": "t_grass",
- "s": "t_floor",
- "t": "t_floor",
- "u": "t_floor",
- "y": "t_floor",
"z": "t_shrub",
- "|": "t_wall",
- "~": "t_sidewalk"
+ "|": "t_brick_wall",
+ "~": "t_sidewalk",
+ "R": "t_grass",
+ "4": "t_gutter_downspout"
},
"furniture": {
"#": "f_counter",
"@": "f_mannequin",
"H": "f_chair",
"T": "f_table",
+ "&": "f_birdbath",
"U": "f_bigmirror",
"[": "f_rack",
"]": "f_bookcase",
"d": "f_desk",
"f": "f_indoor_plant",
"h": "f_chair",
- "r": "f_dahlia",
+ "r": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ],
"s": "f_sink",
"u": "f_trashcan",
"y": "f_indoor_plant_y"
@@ -600,46 +843,98 @@
{ "item": "dress_shoes", "x": [ 14, 20 ], "y": 14, "chance": 50, "repeat": [ 2, 5 ] },
{ "item": "wedding_suits", "x": [ 19, 21 ], "y": 6, "chance": 35 },
{ "item": "wedding_dresses", "x": [ 19, 21 ], "y": 6, "chance": 35 },
- { "item": "tools_tailor", "x": [ 19, 21 ], "y": 6, "chance": 80 },
+ { "item": "tools_commercial_tailor", "x": [ 19, 21 ], "y": 6, "chance": 80 },
{ "item": "wedding_suits", "x": 19, "y": [ 9, 10 ], "chance": 25 },
{ "item": "wedding_dresses", "x": 19, "y": [ 9, 10 ], "chance": 25 },
- { "item": "tools_tailor", "x": 19, "y": [ 9, 10 ], "chance": 80 },
+ { "item": "tools_commercial_tailor", "x": 19, "y": [ 9, 10 ], "chance": 80 },
{ "item": "tailorbooks", "x": 19, "y": [ 11, 12 ], "chance": 30, "repeat": [ 2, 3 ] }
],
"place_monsters": [
{ "monster": "GROUP_MAYBE_ZOMBIE", "x": [ 13, 16 ], "y": [ 18, 19 ], "density": 1 },
{ "monster": "GROUP_MAYBE_ZOMBIE", "x": [ 18, 21 ], "y": [ 18, 19 ], "density": 1 }
+ ],
+ "nested": { "R": { "chunks": [ [ "roof_6x6_garden_1", 95 ], [ "roof_6x6_garden_2", 5 ] ] } }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof_5",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " |222222222222222222223 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |....................3 ",
+ " |----------|.........3 ",
+ " |.........3 ",
+ " |.........5 ",
+ " |..X......3 ",
+ " |.........3 ",
+ " |......&..3 ",
+ " |..:......3 ",
+ " |---------3 ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { "&": "f_roof_turbine_vent", ":": "f_cellphone_booster", "X": "f_small_satelitte_dish" },
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 20 ],
+ [ "roof_4x4_utility", 20 ],
+ [ "roof_2x2_utilities", 30 ]
+ ],
+ "x": [ 5, 12 ],
+ "y": [ 7, 8 ]
+ }
]
}
},
{
"type": "mapgen",
"method": "json",
- "om_terrain": [ "s_clothes" ],
+ "om_terrain": [ "s_clothes_6" ],
"//": "All clothing",
"weight": 500,
"object": {
+ "fill_ter": "t_floor",
"rows": [
"~~~~~~~~~~~~~~~~~~~~~~~~",
+ "~~~~11111~~~~~~11111~~~~",
"~~~~~~~~~~~~~~~~~~~~~~~~",
- "~~~~~~~~~~~~~~~~~~~~~~~~",
- "**|========::========|**",
- "**|@.#.@.......#@..@.|**",
+ "**|=======|::|=======|**",
+ "**|@y#y@.......#@yy@.|**",
"**|..................|**",
"**|[..[..........[..[|**",
"**|[..[...####...[..[|**",
"**|[..[...#..%...[..[|**",
"**O#......#.S#......[|**",
- "**|[..@...#.##...[..[|**",
+ "**|[..@...##...[..[|**",
"**|[..[..........[..[|**",
"**|[..[.....T@...[..[|**",
"**|[..[.....@T...[..[|**",
- "**|..................|**",
- "**|.....TT@..........|**",
- "**|+--------|+-|+-|+-|**",
- "**|.........|.h|.h|.u|**",
- "**|...hTTh..|..|..|.s|**",
- "**|B........|..|..|.t|**",
+ "**|y................b|**",
+ "**|...b.TT@.........y|**",
+ "**|+--------|!-|!-|+-|**",
+ "**|........P|.h|.h|.u|**",
+ "*4|...hTTh.P|..|..|..|**",
+ "**|B........|b.|b.|st|**",
"**|----O---+|--|--|O-|**",
"***********~************",
"***********~************",
@@ -648,30 +943,24 @@
"terrain": {
"#": "t_floor",
"%": "t_console_broken",
- "*": "t_grass",
+ "*": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt" ],
"+": "t_door_c",
- "-": "t_wall",
+ "-": "t_wall_p",
".": "t_floor",
"0": "t_window_alarm",
":": "t_door_glass_c",
";": "t_door_locked",
"=": "t_wall_glass",
- "@": "t_floor",
- "B": "t_floor",
"O": "t_window",
- "S": "t_floor",
- "T": "t_floor",
- "[": "t_floor",
- "d": "t_floor",
- "h": "t_floor",
- "s": "t_floor",
- "t": "t_floor",
- "u": "t_floor",
- "|": "t_wall",
- "~": "t_sidewalk"
+ "|": "t_wall_p",
+ "~": "t_sidewalk",
+ "1": "t_sidewalk",
+ "4": "t_gutter_downspout"
},
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_mature" } },
"furniture": {
"#": "f_counter",
+ "&": "f_counter_gate_c",
"@": "f_mannequin",
"B": "f_bulletin",
"S": "f_stool",
@@ -680,7 +969,11 @@
"d": "f_desk",
"h": "f_chair",
"s": "f_sink",
- "u": "f_trashcan"
+ "u": "f_trashcan",
+ "y": [ "f_indoor_plant_y", "f_indoor_plant" ],
+ "P": "f_locker",
+ "!": "f_beaded_door",
+ "b": "f_bigmirror"
},
"toilets": { "t": { } },
"place_items": [
@@ -701,5 +994,55 @@
{ "item": "trash", "x": 20, "y": 17, "chance": 75 }
]
}
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": "s_clothes_roof_6",
+ "object": {
+ "fill_ter": "t_flat_roof",
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " |2222222222222222223 ",
+ " |..................3 ",
+ " |.........:........3 ",
+ " |...ooo......ooo...3 ",
+ " |...ooo......ooo...3 ",
+ " |..................3 ",
+ " |.......&..........3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " |..................3 ",
+ " 5..................3 ",
+ " |..................3 ",
+ " |------------------3 ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "roof_palette" ],
+ "furniture": { "&": "f_roof_turbine_vent", ":": "f_cellphone_booster" },
+ "place_nested": [
+ {
+ "chunks": [
+ [ "null", 20 ],
+ [ "roof_2x2_utilities_b", 15 ],
+ [ "roof_2x2_utilities_c", 5 ],
+ [ "roof_2x2_utilities_d", 20 ],
+ [ "roof_4x4_utility", 20 ],
+ [ "roof_2x2_utilities", 30 ]
+ ],
+ "x": [ 5, 12 ],
+ "y": [ 11, 14 ]
+ }
+ ]
+ }
}
]
diff --git a/data/json/mapgen/school_1.json b/data/json/mapgen/school_1.json
index ebfb308620f6b..1db692e90a8c4 100644
--- a/data/json/mapgen/school_1.json
+++ b/data/json/mapgen/school_1.json
@@ -9,156 +9,531 @@
],
"weight": 250,
"object": {
- "fill_ter": "t_dirt",
+ "fill_ter": "t_floor",
"rows": [
"ssssssss_______sssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
- "s$$ $$_______$$ $$ssssssssssssssssssssssssssssssssssssssssssssssssss",
- "sLLLLLLL_______LLLLLLLss sss ss",
- "s_____________________ss $sss$ |--------------------|ss",
- "s_____________________ss $$$$$$$$$$$$ sss |....................|ss",
- "s_____________________ss $|-www--www-| $sss$ |....................+ss",
- "sLLLLLLL_______LLLLLLLss $|^........d| sss |..----------------..|ss",
- "s_____________________ss $wdh..tt..hd| $sss$ |....................|ss",
- "s_____________________ss $wddd.tt..dd| sss |---..............---|ss",
- "s_____________________ss $w..........|-w-+++-w-|....................|ss",
- "sLLLLLLL_______LLLLLLLss $|...ccccccc|.........|..hhhhhhh..hhhhhhh..|ss",
- "s_____________________sssss+..........+.........+....................+ss",
- "s_____________________sssss+..........+.........+..hhhhhhh..hhhhhhh..+ss",
- "s_____________________ss $|.#####....|.........|....................| ",
- "sLLLLLLL_______LLLLLLLss ||------|...|l.......l|..hhhhhhh..hhhhhhh..| ",
- "s_____________________ss |..d....|...|l.......l|....................| ",
- "s_____________________ss w.hd..h.|..h|l.......l|..hhhhhhh..hhhhhhh..| ",
- "s_____________________ss w..d....+..h|l.......l|....................| ",
- "sLLLLLLL_______LLLLLLLss |.......|..h|l.......l|..hhhhhhh..hhhhhhh..| ",
- "s_____________________ss $|-------|..h|l.......l|....................| ",
- "s_____________________ss |.......|...|l.......l|..hhhhhhh..hhhhhhh..| ",
- "s_____________________ss w..c....+...|l.......l|....................| ",
- "sLLLLLLL_______LLLLLLLss w.hd..h.|-+-|l.......l|....................| ",
- "ssssssssssssssssssssssss w..x..h.|...|l........|--++----++--|-------|| ",
- "ssssssssssssssssssssssss $|lcc...^|l.l|l.....................|..ttt..l| ",
- "|--------|-++-------------|-------|---|......................+........w ",
- "|l...hd..|......................................^ccc^ccc^....|.h.h.h.hw ",
- "w...ddd..+...................................................|.d.d.d.dw ",
- "w........|...................................................|.h.h.h.hw ",
- "w........|....|--------|-------++-----|........|--------|....|.d.d.d.d| ",
- "wd.d.d.d.|....|..ttt..l|ddd..c........|........|l...hd..|....|.h.h.h.h| ",
- "|h.h.h.h.|....+........|dh...c........|........|...ddd..+....|.d.d.d.dw ",
- "|d.d.d.d.|....|.h.h.h.h|....hc...htth.|ww-++-ww|........|....|........w ",
- "wh.h.h.h.|....|.d.d.d.d|t....c...htth.|........|........|....|........w ",
- "wd.d.d.d.|....|.h.h.h.h|cc.ccc........|hhh..hhh|d.d.d.d.|....+...ddd..w ",
- "wh.h.h.h.|....|.d.d.d.d|.........htth.|xxx..xxx|h.h.h.h.|....|...dh..l| ",
- "w........+....|.h.h.h.h|.........htth.|........|d.d.d.d.|....|--------| ",
- "|l..ttt..|....|.d.d.d.d|ooooo.........|hhh..hhh|h.h.h.h.|....|..ttt..l| ",
- "|--------|....|........|--|..........o|xxx..xxx|d.d.d.d.|....+........w ",
- "|l...hd..|....|........|T.|.o.o.o....o|.....cxc|h.h.h.h.|....|.h.h.h.hw ",
- "w...ddd..+....+...ddd..|S.|.o.o.o....o|......hc|........+....|.d.d.d.dw ",
- "w........|....|...dh..l|-+|.o.o.o....o|--------|l..ttt..|....|.h.h.h.hw ",
- "w........|....|--------|.......................|--------|....|.d.d.d.d| ",
- "wd.d.d.d.|....|...dh..l|..............oooooooo.|k...hd..|....|.h.h.h.h| ",
- "|h.h.h.h.|....+...ddd..|-+|.o.o.o.o............|...ddd..+....|.d.d.d.dw ",
- "|d.d.d.d.|....|........|S.|.o.o.o.o...oooooooo.|........|....|........w ",
- "wh.h.h.h.|....|........|T.|.o.o.o.o............|........|....|........w ",
- "wd.d.d.d.|....|.d.d.d.d|--|.o.o.o.o...oooooooo.|d.d.d.d.|....+...ddd..w ",
- "wh.h.h.h.|....|.h.h.h.h|g.+....................|h.h.h.h.|....|...dh..l| ",
- "w........+....|.d.d.d.d|----www-wwww--wwww-www-|d.d.d.d.|....|----|-|-| ",
- "|l..ttt..|....|.h.h.h.h| |h.h.h.h.|....|SSS.|T|T| ",
- "|-|-|----|....|.d.d.d.dw wd.d.d.d.|....|....|+|+| ",
- "|T|T|.SSS|....|.h.h.h.hw wh.h.h.h.|....+........| ",
- "|+|+|....|....+........w $$ $$ w........+....|--------| ",
- "|........+....|..ttt.ll| $$ sssss $$ |k..ttt..|....|kk.ttt.k| ",
- "|------|-|....|----|-|-| $$ sssssss $$ |-|-|----|....+........w ",
- "+....+r|g+....|SSS.|T|T| $$ sssOsss $$ |T|T|.SSS|....|........w ",
- "|e...--|-|....|....|+|+| $$ sssssss $$ |+|+|....|....|Scc..ccSw ",
- "wc......O|....+........| $$ sssssss $$ |........+....|........w ",
- "wc..aa..O|-++-|--------|-| $$ sssss $$ |--------|....|Scc..ccS| ",
- "wc..aa..O|...............| $$ sss $$ |kk..hd..|....|........| ",
- "we......c|..cccc..hhhhh..w $$ sss $$ w...ddd..+....|Scc..ccSw ",
- "|----..--|..chx...ttttt..w $$ sss $$ w........|....|........w ",
- "|eee.....c..c.....ttttt..w $$ sss $$ w........|....|........w ",
- "|........c........hhhhh..| sss wScc..ccS|....+...ddd..w ",
- "|..ccccccc...............+ssssssssssss |........|....|oo.dh...| ",
- "w.................hhhhh..| sss wScc..ccS|....|------+-| ",
- "w...........htth..ttttt..w $$ sss $$ w........|....|k......k| ",
- "w.htth.htth.htth..ttttt..w $$ sss $$ wScc..ccS|....+...kk..k| ",
- "w.htth.htth.htth..hhhhh..w sss w........+....|k..kk..k| ",
- "|.htth.htth.htth.........|ffffffffffGffffffffff|kkcccccc|-++-|k..kk..k| ",
- "|-wwww--wwww--wwww--wwww-| |--wwww--| |--------| "
+ "s$;$ $;$_______$;$ $;$ssssssssssssssssssssssssssssssssssssssssssssssssss",
+ "sLLLLLLL_______LLLLLLLss ss ",
+ "s_____________________ss ss $;$$$$$;$$$$$$$$;$$$$$;$ ",
+ "s_____________________ss $$;$$$$$$$$;$ $ ss $ ||wwww||||wwww||||wwww|| ",
+ "s_____________________ss $||www||www|| ss |......a..cccc........^| ",
+ "sLLLLLLL_______LLLLLLLss $|hddha^hddh| $ ss $ |......................w ",
+ "s_____________________ss $whddh..hddh| ss |B.....dh.dh.dh.dh.dh..w ",
+ "s_____________________ss $whddh..hddh|$$$ss$$$|......dh.dh.dh.dh.dh..w ",
+ "s_____________________ss $w..........||w|++|w||..d..................nw ",
+ "sLLLLLLL_______LLLLLLLss $|cccc..cccc|^....|6D|.hd...dh.dh.dh.dh.dh.n| ",
+ "s_____________________sssss+................whD|..d...dh.dh.dh.dh.dh.n| ",
+ "s_____________________sssss+................w.D|.dd..................nw ",
+ "s_____________________ss $|.#####...Y|.....|.F|......dh.dh.dh.dh.dh..w ",
+ "sLLLLLLL_______LLLLLLLss ||||||||||+|||w|++|+||x.....dh.dh.dh.dh.dh..w ",
+ "s_____________________ss |^.D..oo|...|.......n|x.....................w ",
+ "s_____________________ss $w.MD....|..#|l......n|.......Y####...ll....^| ",
+ "s_____________________ss $w..D.M..+..#|l......n||||+++||||||||||||||||| ",
+ "sLLLLLLL_______LLLLLLLss |F.....^|..#|l.......>........^|ooo.####.ooo| ",
+ "s_____________________ss |||||||||A.c|l.................|............w ",
+ "s_____________________ss |DDFF.%#|A.c|l.................|...........lw ",
+ "s_____________________ss $wxh...%.|..#|l..|HHHH..HHHH|...+...........lw ",
+ "sLLLLLLL_______LLLLLLLss $w....h%.y..#|l..H......hhhhH...+.hh..hh..hh.w ",
+ "ssssssssssssssssssssssss $w..@....|..#|l..H......ddddH...|.dd..dd..dd.| ",
+ "ssssssssssssssssssssssss |^.@.Y..|^..|l..H......ddddH...|.dd..dd..dd.| ",
+ "|||||||||||++||||wwww|||||||||||||||+||^..H......hhhhH..?w.hh..hh..hh.w ",
+ "|######cY|^..a...........^llllllll^.....................?w............w ",
+ "|......c.|..................................M...........?w.hh..hh..hh.w ",
+ "w####Y...|.....BBB..........####..........H?..M......H..?w.dd..dd..dd.w ",
+ "|......|.+....|||||||||||----||----|+||...H?.n.......H...|.dd..dd..dd.| ",
+ "|######|.|....|SS|T|T|T|^.a..89....Y..|...H?...M.....H...|.hh..hh..hh.| ",
+ "||||||||||....|ii|+|+|+|..............-...H???.......H...+............w ",
+ "|######|.|....|iiiiiiii|.#tt#.#tt#....-...|HHHH..HHHH|...+............w ",
+ "|......|.+....+iiiiiiii|.#tt#.#tt#....-..................|..BB..dddd..w ",
+ "w####Y...|....|ii|+|+|+|.#tt#.#tt#....-..................|.......h.x..w ",
+ "|......c.|l..>|SS|T|T|T|.#tt#.#tt#....|^llllllllll^...ccc|^oooo......^| ",
+ "|######cY|l...||||||||||..............|||||||||||||+++||||||||||||||||| ",
+ "||||||||||l...|SS|T|T|T|..............+ii+T|rir|.a......Y####........^| ",
+ "|p.p|.x.^|....|ii|+|+|+|.#tt#.#tt#...^|Si|||rie|......................w ",
+ "|p.p|hD..+....+iiiiiiii|.#tt#.#tt#...a|Si+T|rie|B.....dh.dh.dh.dh.dh..w ",
+ "wp.p|.D.F|....|iiiiiiii|.#tt#.#tt#....|||||||+||......dh.dh.dh.dh.dh..w ",
+ "wp.p|a..F|...^|ii|+|+|+|.#tt#.#tt#....+iiOOOiii|..d..................nw ",
+ "|p..+...#||++||SS|T|T|T|..............|iiiiiiiU|..d...dh.dh.dh.dh.dh.n| ",
+ "||+|||||||^...||||||||||..............CiiiCiiiU|.hd...dh.dh.dh.dh.dh.n| ",
+ "|,,,,,,,,,,,,,,,,,,,,,,|.#tt#.#tt#....CiiiWiiiU|..d..................nw ",
+ "w,::::::::::::::::::::,|.#tt#.#tt#....CiiiSiiiU|......dh.dh.dh.dh.dh..w ",
+ "w,:,,,,,,,,,,,,,,,,,,:,|.#tt#.#tt#....CiiiCiiiU|x.....dh.dh.dh.dh.dh..w ",
+ "w,:,,,,,,,,,,,,,,,,,,:,|.#tt#.#tt#....CiiiiiiiU|x.....................w ",
+ "|,:,,,,,,,,,,,,,,,,,,:,|^.............|eeeiiiii|^.............ll......| ",
+ "|,::::,,,,,,,,,,,,::::,||wwww||||||w+w||||wwww|||wwww||||wwww||||wwww|| ",
+ "|,:,,:,,,,,,,,,,,,:,,:,|$$$ sss f ",
+ "|,:7,:,,,,,,,,,,,,:,7:,|$;$ sss ; ; f ",
+ "|,:,,:,,,,,,,,,,,,:,,:,|$$$ $$ sss $$ $$ bbbb / / $$ f ",
+ "w,::::,,,,,,,,,,,,::::,w $$ sss $$ $ / / $ f ",
+ "w,:,,,,,,,,,,,,,,,,,,:,w $$ sssss $$ $$ / / ;f ",
+ "w,:,,,,,,,,::,,,,,,,,:,w $$ sssssss $$ ; / / f ",
+ "|,:,,,,,,,:,,:,,,,,,,:,|$$$ $$ sssIsss $$ mmm / f ",
+ "|,::::::::::::::::::::,|$;$ $$ sssssss $$ mmm f ",
+ "|,:,,,,,,,:,,:,,,,,,,:,|$$$ $$ sssssss $$ mmm ==== f ",
+ "|,:,,,,,,,,::,,,,,,,,:,||| $$ sssss $$ ==== b f ",
+ "|,:,,,,,,,,,,,,,,,,,,:,.^| $$ sss $$ ;$ b ==== b f ",
+ "w,:,,,,,,,,,,,,,,,,,,:,.#w $$ sss $$ $$ b ==== b f ",
+ "w,::::,,,,,,,,,,,,::::,.#w $$ sss $$ ; b f ",
+ "w,:,,:,,,,,,,,,,,,:,,:,.#w sss ; f ",
+ "|,:7,:,,,,,,,,,,,,:,7:,..|ssssssssssssssssssssssssssssssssssssssss f ",
+ "|,:,,:,,,,,,,,,,,,:,,:,..+sssssssssssssssssssssssssssssssssssssssss f ",
+ "|,::::,,,,,,,,,,,,::::,..|ssssssssssssssssssssssssssssssssssssssss f ",
+ "w,:,,,,,,,,,,,,,,,,,,:,.#w s f ",
+ "w,:,,,,,,,,,,,,,,,,,,:,.#w $$ $$ s $$ $$ $$ $$ $$ $$ $$ f ",
+ "w,::::::::::::::::::::,.#w s f ",
+ "|,,,,,,,,,,,,,,,,,,,,,,.^|ffffffffffGfffffffffffffffffffffffffffffffff ",
+ "||wwww|||||wwww|||||wwww|| "
],
- "terrain": {
- " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
- "#": [ "t_floor" ],
- "$": [ "t_shrub" ],
- "+": [ "t_door_c" ],
- "-": [ "t_wall" ],
- ".": [ "t_floor" ],
- "=": [ "t_door_locked_alarm" ],
- "D": [ "t_door_locked" ],
- "G": [ "t_chaingate_c" ],
- "L": [ "t_pavement_y" ],
- "O": [ "t_column" ],
- "S": [ "t_floor" ],
- "T": [ "t_floor" ],
- "^": [ "t_floor" ],
- "_": [ "t_pavement" ],
- "a": [ "t_floor" ],
- "c": [ "t_floor" ],
- "d": [ "t_floor" ],
- "e": [ "t_floor" ],
- "f": [ "t_chainfence_h" ],
- "g": [ "t_floor" ],
- "h": [ "t_floor" ],
- "k": [ "t_floor" ],
- "l": [ "t_floor" ],
- "o": [ "t_floor" ],
- "r": [ "t_floor" ],
- "s": [ "t_sidewalk" ],
- "t": [ "t_floor" ],
- "w": [ "t_window" ],
- "x": [ "t_console_broken" ],
- "|": [ "t_wall" ]
- },
- "furniture": {
- "#": [ "f_bench" ],
- "S": [ "f_sink" ],
- "T": [ "f_toilet" ],
- "^": [ "f_indoor_plant" ],
- "a": [ "f_table" ],
- "c": [ "f_counter" ],
- "d": [ "f_desk" ],
- "e": [ "f_fridge" ],
- "g": [ "f_locker" ],
- "h": [ "f_chair" ],
- "k": [ "f_locker" ],
- "l": [ "f_locker" ],
- "o": [ "f_bookcase" ],
- "r": [ "f_rack" ],
- "t": [ "f_table" ]
- },
- "toilets": { "T": { } },
- "items": {
- "a": { "item": "fast_food", "chance": 95 },
- "d": { "item": "school", "chance": 50 },
- "e": { "item": "fridge", "chance": 90 },
- "g": { "item": "cleaning", "chance": 80 },
- "k": { "item": "chem_school", "chance": 60 },
- "l": { "item": "school", "chance": 60 },
- "o": { "item": "book_school", "chance": 100 },
- "r": { "item": "cannedfood", "chance": 95 }
- },
+ "palettes": [ "school_palette" ],
"place_items": [ ],
"place_item": [ { "item": "american_flag", "x": 36, "y": 58, "amount": 1 } ],
"place_monsters": [
- { "monster": "GROUP_SCHOOL", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 1, 1 ], "density": 2 },
- { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 1 },
- { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 1 }
+ { "monster": "GROUP_SCHOOL", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 1, 1 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 0.1 }
],
+ "place_monster": [ { "monster": [ "mon_nursebot", "mon_nursebot_defective" ], "x": [ 27, 33 ], "y": [ 20, 23 ], "chance": 50 } ],
"place_vehicles": [ { "vehicle": "school_vehicles", "x": 9, "y": 7, "chance": 25, "fuel": 0, "status": 0, "rotation": 0 } ]
}
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [
+ [ "school_2_3", "school_2_2", "school_2_1" ],
+ [ "school_2_6", "school_2_5", "school_2_4" ],
+ [ "school_2_9", "school_2_8", "school_2_7" ]
+ ],
+ "weight": 250,
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "***********************************************||wwww||||wwww||||wwww||*",
+ "***************************||www||www||********|^.....ll.cccc........^|*",
+ "***************************|h.....h.D.|********|x.....................w*",
+ "***************************wDDx.DDx.Dh|********|x.....dh.dh.dh.dh.dh..w*",
+ "***************************w.h...h..x.|********|......dh.dh.dh.dh.dh..w*",
+ "***************************wDDx.DDx...||w||||w||..d...dh.dh.dh.dh.dh.nw*",
+ "***************************|h....h...a|^.....ie|.hd..................n|*",
+ "***************************|DDx.DDx.....htth.iU|..d..................n|*",
+ "***************************|............htth.iU|.dd...dh.dh.dh.dh.dh.nw*",
+ "***************************|FFFcFFF..^|.htth.iS|......dh.dh.dh.dh.dh..w*",
+ "**************************|||||||||||||.htth.iC|B.....dh.dh.dh.dh.dh..w*",
+ "**************************|o....FFF|^..........|......................w*",
+ "**************************wo.DD....+........Y..|.a.....Y####..oooo...^|*",
+ "**************************w..MD..||||+|||+++|||||||+++|||||||||||||||||*",
+ "**************************|x..D..|FcD.|........<>.......n|....nnnn...^|*",
+ "**************************|||||..|.hD.|l................n|............w*",
+ "**************************|x.....|..x.|l................n|..hh.hh.hh..w*",
+ "**************************w..Dh..|a...|l..|HHHHHHHHHH|...+..dd.dd.dd..w*",
+ "**************************w.MDh.^|.xDD|l..H~~~~~~~~~~H...+............w*",
+ "**************************w..D..A|..hc|l..H~~~~~~~~~~H...|a.hh.hh.hh.l|*",
+ "**************************|ooo..A|FF.^|l..H~~~~~~~~~~H...|..dd.dd.dd.l|*",
+ "|||wwww||||||||||wwww||||||||||+|||||||...H~~~~~~~~~~H..?w#...........w*",
+ "|^......B|.......####...^lllll...lllll^...H~~~~~~~~~~H..?w#.hh.hh.hh..w*",
+ "|..M.M...|l...............................H~~~~~~~~~~H..?w#.dd.dd.dd..w*",
+ "w..DDDDM.|l...................###.........H~~~~~~~~~~H..?w#...........w*",
+ "w.MD..D..|l...|||||||||||||+||||cc...cc...H~~~~~~~~~~H...|..hh.hh.hh..|*",
+ "w..D..DM.|l...|SS|T|T|T|a.....^|......c...H~~~~~~~~~~H...|Y.dd.dd.dd..|*",
+ "w.MDDDD..|....|ii|+|+|+|..M.M..|.hddh.....H~~~~~~~~~~H...+............w*",
+ "|...M.M..y....+iiiiiiii|..DDDM.|.hddh.....|HHHHHHHHHH|...+...........xw*",
+ "|a.......|....|iiiiiiii|.MDDD..|.hddh....................|....dddd...xw*",
+ "||||||||||l...|ii|+|+|+|...M...|.hddh.c..................|....d..d....w*",
+ "|FFFccFFF|l..<|SS|T|T|T|FF...B.|......c......lllll......^|..B...h....^|*",
+ "|........|l...|||||||||||||||||||wwwww|||+++|||||||+++|||||||||||||||||*",
+ "wFFF..FFF|l..>|SS|T|T|T|^..ll....####Y.........|^......B.......B.oooo.|*",
+ "w........|l...|ii|+|+|+|o.....................x|#.........h.x.........w*",
+ "wFFF..FFF|....|iiiiiiii|o..hd.hd.hd.hd.hd.....x|#........dddd........aw*",
+ "w........y....+iiiiiiii|o..hd.hd.hd.hd.hd.....^|#.....................w*",
+ "|......h.|a...|ii|+|+|+|o...................d..|#...dd.dd.dd.dd.dd...nw*",
+ "|FFF.xDDD||++||SS|T|T|T|...hd.hd.hd.hd.hd...dh.|Y...hh.hh.hh.hh.hh...n|*",
+ "||||||||||^..^||||||||||...hd.hd.hd.hd.hd...d..|.....................n|*",
+ "|.#######......#######a|o...................d..|....dd.dd.dd.dd.dd...nw*",
+ "w......................|o..hd.hd.hd.hd.hd......|l...hh.hh.hh.hh.hh....w*",
+ "wHHHHHHHHHHHHHHHHHHHH..|o..hd.hd.hd.hd.hd.....B|l.....................w*",
+ "w~~~~~~~~~~~~~~~~~~~H..|o......................|....dd.dd.dd.dd.dd....w*",
+ "|~~~~~~~~~~~~~~~~~~~H..|^....nnnn.......a......|^...hh.hh.hh.hh.hh...^|*",
+ "|~~~~~~~~~~~~~~~~~~~H..||wwww||||wwwww||||wwww|||wwww||||wwww||||wwww||*",
+ "|~~~~~~~~~~~~~~~~~~~H..|************************************************",
+ "|~~~~~~~~~~~~~~~~~~~H..|************************************************",
+ "|~~~~~~~~~~~~~~~~~~~H..|************************************************",
+ "w~~~~~~~~~~~~~~~~~~~H..w************************************************",
+ "w~~~~~~~~~~~~~~~~~~~H..w************************************************",
+ "w~~~~~~~~~~~~~~~~~~~H..w************************************************",
+ "|~~~~~~~~~~~~~~~~~~~H..|************************************************",
+ "|~~~~~~~~~~~~~~~~~~~H..|************************************************",
+ "|~~~~~~~~~~~~~~~~~~~H..|************************************************",
+ "|~~~~~~~~~~~~~~~~~~~H..|||**********************************************",
+ "|~~~~~~~~~~~~~~~~~~~H...^|**********************************************",
+ "w~~~~~~~~~~~~~~~~~~~H.#.#w**********************************************",
+ "w~~~~~~~~~~~~~~~~~~~H.#.#w**********************************************",
+ "w~~~~~~~~~~~~~~~~~~~H.#.#w**********************************************",
+ "|~~~~~~~~~~~~~~~~~~~H.#.#|**********************************************",
+ "|~~~~~~~~~~~~~~~~~~~H...#|**********************************************",
+ "|~~~~~~~~~~~~~~~~~~~H.#.#|**********************************************",
+ "w~~~~~~~~~~~~~~~~~~~H.#.#w**********************************************",
+ "w~~~~~~~~~~~~~~~~~~~H.#.#w**********************************************",
+ "w~~~~~~~~~~~~~~~~~~~H.#.#w**********************************************",
+ "|~~~~~~~~~~~~~~~~~~~H...^|**********************************************",
+ "||wwww|||||wwww|||||wwww||**********************************************"
+ ],
+ "palettes": [ "school_palette" ],
+ "place_items": [ ],
+ "place_monsters": [
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 0.1 }
+ ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [
+ [ "school_3_3", "school_3_2", "school_3_1" ],
+ [ "school_3_6", "school_3_5", "school_3_4" ],
+ [ "school_3_9", "school_3_8", "school_3_7" ]
+ ],
+ "weight": 250,
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "***********************************************||wwww||||wwww||||wwww||*",
+ "***************************||www||www||********|.......a.cccc.ll.....^|*",
+ "***************************|xxxx.o...o|********|......................w*",
+ "***************************whhhh.o.o.o|********|B.....dh.dh.dh.dh.dh..w*",
+ "***************************w.....o.o.o|********|......dh.dh.dh.dh.dh..w*",
+ "***************************woooo.o.o.o||w||||w||..d..................nw*",
+ "***************************|oooo.o...o|M.oooo.^|.hd...dh.dh.dh.dh.dh.n|*",
+ "***************************|^.................o|..d...dh.dh.dh.dh.dh.n|*",
+ "***************************|d...oo...hn..oooo.o|.dd..................nw*",
+ "***************************|dh..oo...hn.......o|......dh.dh.dh.dh.dh..w*",
+ "**************************||x...oo...hn..oooo.o|......dh.dh.dh.dh.dh..w*",
+ "**************************|oooo...............o|......................w*",
+ "**************************w.......oooo|.M.....^|xx.....Y####.........^|*",
+ "**************************wM..........|||+++|||||||+++|||||||||||||||||*",
+ "**************************|oooo...oooo|a........<.......^|..ooo..ooo.^|*",
+ "**************************|oooo...oooo|l.................|............w*",
+ "**************************|...........|l.................|a..........lw*",
+ "**************************w.hnnh.hnnh.|l..|HHHHHHHHHH|...+...........lw*",
+ "**************************w.hnnh.hnnh.|l..H~~~~~~~~~~H...+..hhh..hhh..w*",
+ "**************************w...........|l..H~~~~~~~~~~H...|..ddd..ddd..|*",
+ "**************************|oooo..aoooo|l..H~~~~~~~~~~H...|..ddd..ddd..|*",
+ "|||wwww||||||||||wwww||||||||||w+w|||||...H~~~~~~~~~~H...w#.hhh..hhh.cw*",
+ "|MMM..hhh|.lllll.........a|llll...llll|...H~~~~~~~~~~H...w#..........cw*",
+ "|MM.hhh.h|................................H~~~~~~~~~~H...w#.hhh..hhh.cw*",
+ "w.M..h.h?|......^####.....................H~~~~~~~~~~H...w#.ddd..ddd.cw*",
+ "wx.M..h#?|....|||||||||||||||||w+w|||||...H~~~~~~~~~~H...|..ddd..ddd..|*",
+ "w.B....#?|....|SS|T|T|T|DD|xxxx..^|x!!|?..H~~~~~~~~~~H...|..hhh..hhh..|*",
+ "wB..nn.#?|....|ii|+|+|+|D..hhhh...y...|?..H~~~~~~~~~~H...+............w*",
+ "|B..nn...y....+iiiiiiii|xh........|||||?..|HHHHHHHHHH|...+...........xw*",
+ "|nnn.####|....|iiiiiiii|B.........|CCS|.................c|Y...dddd...xw*",
+ "||||||||||..|||ii|+|+|+|.hhhhhhhhh|iiiy.................c|.....h.d....w*",
+ "|jjjjjjjj|..y>|SS|T|T|T|.xxxxxxxxx|ggg|^.....lllll......c|^........B..|*",
+ "|']]j'[['|..|||||||||||||||||||||||||||||+++|||||||+++|||||||||||||||||*",
+ "w']]''[['|...<|SS|T|T|T|...ll.................^|.......Y####........ii|*",
+ "w''''''''|....|ii|+|+|+|.......................|x...................iSw*",
+ "wR'''''ff|....|iiiiiiii|...hd.hd.hd.hd.hd.....B|x.....dh.dh.dh.dh...iSw*",
+ "wR''0''G'y....+iiiiiiii|...hd.hd.hd.hd.hd......|......dh.dh.dh.dh...iSw*",
+ "|R'''''ff|....|ii|+|+|+|n..hd.hd.hd.hd.hd...dd.|..dd..dh.dh.dh.dh...iSw*",
+ "|''''''''|....|SS|T|T|T|n...................d..|...d..dh.dh.dh.dh...ii|*",
+ "|||||||||||yy|||||||||||n...................d.h|.h.d...........||||||||*",
+ "1zfuuuuuuuuuuuuuuuuuuuu|n..hd.hd.hd.hd.hd...d..|..dd..dh.dh.dh.|SCCCikw*",
+ "1zfuuuuuuuuuuuuuuuuuuuuw...hd.hd.hd.hd.hd......|......dh.dh.dh.+iiiiikw*",
+ "1zfuuuuuuuuuuuuuuuuuuuuw...hd.hd.hd.hd.hd.....x|.B....dh.dh.dh.|kiCCikw*",
+ "1zfuuuuuuuuuuuuuuuuuuuuw......................x|......dh.dh.dh.|kiCCikw*",
+ "1zfuZZZZuuZZZZuuZZZZuuu|^........####Y..a......|^nnnn..........|kiiiik|*",
+ "1zfuZZZZuuZZZZuuZZZZuff||wwww||||wwwww||||wwww|||wwww||||wwww||||wwww||*",
+ "1zfuZZZZuuZZZZuuZZZZufz2************************************************",
+ "1zfuuuuuuuuuuuuuuuuuufz2************************************************",
+ "1zfuZZZZuuZZZZuuZZZZufz2************************************************",
+ "1zfuZZZZuuZZZZuuZZZZufz2************************************************",
+ "1zfuZZZZuuZZZZuuZZZZufz2************************************************",
+ "1zfuuuuuuuuuuuuuuuuuufz2************************************************",
+ "1zfuuuuuuuuuuuuuuuuuufz2************************************************",
+ "1zffffffffffffffffffffz2************************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzz2************************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzz235**********************************************",
+ "1zzzZZZZzzZZZZzzZZZZzzzzz2**********************************************",
+ "1zzzZZZZzzZZZZzzZZZZzzzzz2**********************************************",
+ "1zzzZZZZzzZZZZzzZZZZzzzzz2**********************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzzzz2**********************************************",
+ "1zzzZZZZzzZZZZzzZZZZzzzzz2**********************************************",
+ "1zzzZZZZzzZZZZzzZZZZzzzzz2**********************************************",
+ "1zzzZZZZzzZZZZzzZZZZzzzzz2**********************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzzzz2**********************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzzzz2**********************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzzzz2**********************************************",
+ "1zzzzzzzzzzzzzzzzzzzzzzzz2**********************************************",
+ "54444444444444444444444445**********************************************"
+ ],
+ "palettes": [ "school_palette" ],
+ "place_items": [ ],
+ "place_monsters": [
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 49, 70 ], "y": [ 25, 46 ], "repeat": [ 1, 2 ], "density": 0.1 },
+ { "monster": "GROUP_SCHOOL", "x": [ 1, 22 ], "y": [ 49, 70 ], "repeat": [ 1, 2 ], "density": 0.1 }
+ ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [
+ [ "school_4_3", "school_4_2", "school_4_1" ],
+ [ "school_4_6", "school_4_5", "school_4_4" ],
+ [ "school_4_9", "school_4_8", "school_4_7" ]
+ ],
+ "weight": 250,
+ "object": {
+ "fill_ter": "t_tar_flat_roof",
+ "rows": [
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "***********************************************133333333333333333333335*",
+ "***************************533333333331********1zzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzz1********1zzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzz1********1zzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzz1********1zzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzz5333333335zzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzEEzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzEEzzuzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***************************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************15zzzzzzzzzEEzzuzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzEEzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzuzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzuzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzuzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzuzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzzzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "**************************1zzzzzzzzzzzzzzuzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "533333333333333333333333335zzzzzzzzzzzzzzzzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzuzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zzzzzzzzuzuzuzuzuzuzuzuzuzuzuzuzuzuzuzuzuzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zfffffffGfffffffffzzzzzzzzzzzzzzzzzz{zzzuzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuuuuuuuufzzzzzzZZZZZZZZzzzz{zzzzzZZZZZZZZZZzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuuuuuuuufzzzzzzZZZZZZZZzzzz{zzzuzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuuuuuuuufzzzzzzZZZZZZZZzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuu|||uuufzzzzzzzzzzzzzzzzzzKzzzuzuzuzuzuzuzuzuzuzuzuzuzuzuzz2*",
+ "1zfuuuuuuuuu+<|uuufzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuu|||uuufzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuuuuuuuufzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuuuuuuuufzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfuuuuuuuuuuuuuuufzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zfffffffffffffffffzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "444444444444444444444445zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***********************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***********************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***********************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***********************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***********************1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2*",
+ "***********************544444444444444444444444444444444444444444444445*",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************",
+ "************************************************************************"
+ ],
+ "palettes": [ "school_palette" ],
+ "place_items": [ ],
+ "place_nested": [
+ { "chunks": [ [ "roof_16x16_help", 5 ], [ "null", 25 ] ], "x": [ 48, 54 ], "y": [ 6, 8 ] },
+ {
+ "chunks": [ [ "roof_4x4_utility", 5 ], [ "roof_4x4_utility", 5 ], [ "roof_6x6_utility", 5 ] ],
+ "x": [ 50, 58 ],
+ "y": [ 36, 42 ]
+ },
+ {
+ "chunks": [ [ "roof_4x4_utility", 5 ], [ "roof_4x4_utility", 5 ], [ "roof_2x2_utilities_d", 5 ] ],
+ "x": [ 25, 40 ],
+ "y": [ 36, 42 ]
+ }
+ ]
+ }
+ },
+ {
+ "type": "palette",
+ "id": "school_palette",
+ "terrain": {
+ "*": "t_open_air",
+ "~": "t_open_air_rooved",
+ "H": "t_glass_railing",
+ " ": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ] ],
+ "b": "t_dirt",
+ "$": [
+ [ "t_underbrush", 10 ],
+ [ "t_shrub", 32 ],
+ [ "t_grass_tall", 10 ],
+ [ "t_shrub_lilac", 2 ],
+ [ "t_shrub_hydrangea", 2 ],
+ [ "t_shrub_rose", 1 ]
+ ],
+ ";": [ [ "t_tree", 10 ], [ "t_tree_willow", 3 ], [ "t_tree_birch", 3 ], [ "t_tree_maple", 3 ], [ "t_tree_pine", 5 ] ],
+ "+": "t_door_c",
+ "i": "t_linoleum_gray",
+ "e": "t_linoleum_gray",
+ "O": "t_linoleum_gray",
+ "W": "t_linoleum_gray",
+ "S": "t_linoleum_gray",
+ "T": "t_linoleum_gray",
+ "U": "t_linoleum_gray",
+ "C": "t_linoleum_gray",
+ "g": "t_linoleum_gray",
+ "k": "t_linoleum_gray",
+ "-": "t_wall_glass",
+ "G": "t_chaingate_c",
+ "L": "t_pavement_y",
+ "_": "t_pavement",
+ "f": "t_chainfence_h",
+ "s": "t_sidewalk",
+ "w": "t_window",
+ "x": "t_console_broken",
+ "|": "t_wall_y",
+ "I": "t_column",
+ ",": "t_floor_waxed",
+ ":": "t_floor_waxed_y",
+ "7": "t_backboard_in",
+ "m": "t_monkey_bars",
+ "/": "t_slide",
+ "=": "t_sandbox",
+ "<": "t_stairs_down",
+ ">": "t_stairs_up",
+ "z": "t_tar_flat_roof",
+ "u": "t_tile_flat_roof",
+ "Z": "t_glass_roof",
+ "1": "t_gutter_west",
+ "2": "t_gutter_east",
+ "3": "t_gutter_north",
+ "4": "t_gutter_south",
+ "5": "t_gutter_drop",
+ "[": "t_thconc_floor",
+ "]": "t_thconc_floor",
+ "0": "t_thconc_floor",
+ "'": "t_thconc_floor",
+ "y": "t_door_locked_interior",
+ "j": "t_sewage_pipe"
+ },
+ "furniture": {
+ "%": "f_curtain",
+ "@": "f_bed",
+ "#": "f_bench",
+ "b": "f_bench",
+ "?": "f_sofa",
+ "S": "f_sink",
+ "T": "f_toilet",
+ "n": "f_table",
+ "c": "f_counter",
+ "C": "f_counter",
+ "d": "f_desk",
+ "D": "f_desk",
+ "e": "f_fridge",
+ "g": "f_locker",
+ "h": "f_chair",
+ "M": "f_armchair",
+ "k": "f_locker",
+ "l": "f_locker",
+ "o": "f_bookcase",
+ "O": "f_oven",
+ "U": "f_cupboard",
+ "W": "f_dishwasher",
+ "r": "f_rack",
+ "p": "f_rack",
+ "R": "f_utility_shelf",
+ "t": "f_table",
+ "Y": "f_rack_coat",
+ "B": "f_bulletin",
+ "F": "f_filing_cabinet",
+ "a": "f_trashcan",
+ "A": "f_glass_cabinet",
+ "^": [ "f_indoor_plant", "f_indoor_plant_y" ],
+ "[": "f_home_furnace",
+ "]": "f_water_heater",
+ "0": "f_standing_tank",
+ "!": "f_server",
+ "{": "f_small_satelitte_dish",
+ "K": "f_TV_antenna",
+ "E": "f_air_conditioner"
+ },
+ "toilets": { "T": { } },
+ "items": {
+ "a": { "item": "fast_food", "chance": 95 },
+ ".": { "item": "school", "chance": 1 },
+ "d": { "item": "school", "chance": 50 },
+ "D": { "item": "office", "chance": 40, "repeat": [ 1, 2 ] },
+ "e": [ { "item": "fridge", "chance": 65, "repeat": [ 1, 3 ] }, { "item": "fridgesnacks", "chance": 15 } ],
+ "g": { "item": "cleaning", "chance": 80, "repeat": [ 1, 3 ] },
+ "k": { "item": "chem_school", "chance": 80, "repeat": [ 1, 4 ] },
+ "l": { "item": "school", "chance": 60 },
+ "o": { "item": "book_school", "chance": 100 },
+ "r": [ { "item": "snacks", "chance": 10, "repeat": [ 1, 2 ] }, { "item": "cannedfood", "chance": 60, "repeat": [ 1, 3 ] } ],
+ "p": { "item": "gym_school", "chance": 70, "repeat": [ 1, 5 ] },
+ "R": { "item": "tools_plumbing", "chance": 55, "repeat": [ 1, 2 ] },
+ "t": { "item": "dining", "chance": 33, "repeat": [ 1, 2 ] },
+ "u": { "item": "child_items", "chance": 1 },
+ "F": { "item": "file_room", "chance": 85, "repeat": [ 1, 4 ] },
+ "U": [
+ { "item": "snacks", "chance": 10, "repeat": [ 1, 2 ] },
+ { "item": "cannedfood", "chance": 70, "repeat": [ 1, 3 ] },
+ { "item": "dining", "chance": 5, "repeat": [ 1, 3 ] }
+ ]
+ },
+ "vendingmachines": { "8": { "item_group": "vending_drink" }, "9": { "item_group": "vending_food" } },
+ "computers": {
+ "6": {
+ "name": "School Bell Software 1.1",
+ "options": [
+ { "name": "Beginning Toll", "action": "toll" },
+ { "name": "Ending Toll", "action": "toll" },
+ { "name": "Emergency Toll", "action": "toll" }
+ ]
+ }
+ }
}
]
diff --git a/data/mods/Boats/whaleys_boat_rental.json b/data/json/mapgen/whaleys_boat_rental.json
similarity index 99%
rename from data/mods/Boats/whaleys_boat_rental.json
rename to data/json/mapgen/whaleys_boat_rental.json
index bad042f06fa12..e9b60644954df 100644
--- a/data/mods/Boats/whaleys_boat_rental.json
+++ b/data/json/mapgen/whaleys_boat_rental.json
@@ -1,6 +1,5 @@
[
{
- "//": "Place this file in /data/json/mapgen/",
"method": "json",
"object": {
"furniture": {
diff --git a/data/json/mapgen_palettes/farm_horse.json b/data/json/mapgen_palettes/farm_horse.json
new file mode 100644
index 0000000000000..bfe1902a144d7
--- /dev/null
+++ b/data/json/mapgen_palettes/farm_horse.json
@@ -0,0 +1,94 @@
+[
+ {
+ "type": "palette",
+ "id": "farm_horse",
+ "terrain": {
+ " ": "t_floor",
+ "%": "t_splitrail_fence",
+ "3": "t_splitrail_fencegate_o",
+ "H": "t_splitrail_fencegate_c",
+ "K": "t_chickenwire_gate_o",
+ "+": "t_door_c",
+ ",": [ [ "t_railroad_rubble", 20 ], [ "t_grass", 2 ], [ "t_dirt", 5 ] ],
+ "-": "t_wall_w",
+ ".": [ [ "t_dirt", 17 ], [ "t_grass_long", 10 ], [ "t_underbrush", 2 ], [ "t_grass", 28 ] ],
+ "/": "t_dirt",
+ "5": "t_barndoor",
+ ";": "t_dirtfloor",
+ "A": "t_chickenwire_fence",
+ "T": "t_chickenwire_gate_c",
+ "*": "t_reinforced_door_glass_c",
+ "O": "t_reinforced_glass_shutter",
+ "$": "t_wall_glass",
+ "C": "t_grass",
+ "G": "t_door_metal_locked",
+ "W": "t_wall_wood",
+ "X": "t_grass",
+ "`": "t_water_dp",
+ "b": "t_dirt",
+ "7": "t_dirtfloor",
+ "v": [ "t_window_domestic", "t_curtains" ],
+ "|": "t_wall_w",
+ "~": "t_water_sh",
+ "4": "t_gutter_downspout",
+ "<": "t_stairs_up",
+ ">": "t_stairs_down",
+ "#": "t_ladder_up",
+ "9": [
+ "t_tree_blackjack",
+ "t_tree_walnut",
+ "t_tree_chestnut",
+ "t_tree_beech",
+ "t_tree_hazelnut",
+ "t_tree_cottonwood",
+ "t_tree",
+ "t_tree_elm",
+ "t_tree_dead",
+ "t_tree_apple",
+ "t_tree_pear",
+ "t_tree_cherry",
+ "t_tree_peach",
+ "t_tree_apricot",
+ "t_tree_plum",
+ "t_tree_mulberry",
+ "t_tree_elderberry",
+ "t_tree_pine",
+ "t_tree_birch",
+ "t_tree_willow",
+ "t_tree_maple",
+ "t_tree_hickory",
+ "t_tree_almond",
+ "t_tree_pecan"
+ ]
+ },
+ "furniture": {
+ "@": "f_bed",
+ "B": "f_bathtub",
+ "D": "f_trashcan",
+ "L": "f_locker",
+ "6": "f_hay",
+ "o": "f_oven",
+ "S": "f_sink",
+ "Y": "f_sofa",
+ "c": "f_counter",
+ "^": "f_counter",
+ "d": "f_dresser",
+ "f": "f_fridge",
+ "h": "f_chair",
+ "k": "f_desk",
+ "n": "f_table",
+ "r": "f_rack",
+ "t": "f_toilet",
+ "1": "f_armchair",
+ "8": "f_bookcase",
+ "7": "f_bench",
+ "0": "f_birdbath",
+ "a": "f_rack_coat",
+ "g": "f_floor_lamp",
+ "i": "f_beaded_door",
+ "y": [ "f_indoor_plant_y", "f_indoor_plant" ],
+ "b": "f_rotary_clothesline",
+ "p": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ]
+ }
+ }
+]
diff --git a/data/json/mapgen_palettes/mall_palette.json b/data/json/mapgen_palettes/mall_palette.json
index 4f616a3944efc..a4f7c35d22db6 100644
--- a/data/json/mapgen_palettes/mall_palette.json
+++ b/data/json/mapgen_palettes/mall_palette.json
@@ -56,7 +56,7 @@
"v": "f_pinball_machine",
"x": "f_pinball_machine",
"y": "f_indoor_plant",
- "z": "f_crate_c"
+ "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ]
},
"terrain": {
"#": "t_shrub",
@@ -147,5 +147,83 @@
"|": "t_wall"
},
"toilets": { "t": { } }
+ },
+ {
+ "type": "palette",
+ "id": "mall_palette_2",
+ "furniture": {
+ "A": "f_stool",
+ "B": "f_chair",
+ "C": "f_armchair",
+ "D": "f_camp_chair",
+ "@": "f_sofa",
+ "F": "f_bench",
+ "G": "f_lab_bench",
+ "I": "f_desk",
+ "J": "f_counter",
+ "~": "f_cupboard",
+ "K": "f_table",
+ "L": "f_tourist_table",
+ "M": "f_displaycase",
+ "N": "f_workbench",
+ "O": "f_dresser",
+ "P": "f_locker",
+ "Q": "f_rack",
+ "R": "f_bookcase",
+ "S": "f_filing_cabinet",
+ "T": "f_wardrobe",
+ "U": "f_utility_shelf",
+ "V": "f_glass_cabinet",
+ "W": "f_rack_coat",
+ "X": "f_sign",
+ "Y": "f_trashcan",
+ "Z": "f_shredder",
+ "a": "f_floor_lamp",
+ "b": "f_bigmirror",
+ "c": "f_statue",
+ "d": "f_mannequin",
+ "e": "f_pool_table",
+ "g": "f_arcade_machine",
+ "h": "f_pinball_machine",
+ "i": "f_oven",
+ "j": "f_sink",
+ "k": "f_woodstove",
+ "l": "f_fridge",
+ "m": "f_glass_fridge",
+ "n": "f_dishwasher",
+ "r": "f_wood_keg",
+ "s": "f_metal_butcher_rack",
+ "u": [ "f_vending_c", "f_vending_reinforced" ],
+ "v": "f_gun_safe_el",
+ "w": "f_safe_l",
+ "y": [ "f_indoor_plant", "f_indoor_plant_y" ],
+ "z": [ [ "f_cardboard_box", 5 ], "f_crate_c" ]
+ },
+ "terrain": {
+ " ": "t_open_air",
+ ".": "t_linoleum_gray",
+ ",": "t_linoleum_white",
+ "_": "t_concrete",
+ "^": "t_floor",
+ "E": "t_elevator",
+ "<": "t_stairs_up",
+ ">": "t_stairs_down",
+ "-": "t_wall_w",
+ "|": "t_wall_w",
+ "H": "t_wall_glass",
+ "#": "t_glass_railing",
+ "+": "t_door_glass_c",
+ "=": [ "t_door_c", "t_door_locked" ],
+ "p": "t_column",
+ "x": [ "t_machinery_light", "t_machinery_heavy", "t_machinery_old", "t_machinery_electronic" ],
+ "2": "t_wall_g",
+ "5": "t_wall_wood",
+ "6": "t_carpet_red",
+ "7": "t_carpet_green",
+ "8": "t_carpet_purple",
+ "9": "t_carpet_yellow",
+ "?": "t_console_broken"
+ },
+ "toilets": { "t": { } }
}
]
diff --git a/data/json/mapgen_palettes/mansion.json b/data/json/mapgen_palettes/mansion.json
index b1c40d0c06945..c995feedc5183 100644
--- a/data/json/mapgen_palettes/mansion.json
+++ b/data/json/mapgen_palettes/mansion.json
@@ -27,8 +27,8 @@
"H": "f_treadmill",
"I": "f_ergometer",
"J": "f_bathtub",
- "K": [ "f_crate_c", "f_crate_o" ],
- "L": [ "f_crate_c", "f_crate_o" ],
+ "K": [ [ "f_cardboard_box", 5 ], "f_crate_c", "f_crate_o" ],
+ "L": [ [ "f_cardboard_box", 5 ], "f_crate_c", "f_crate_o" ],
"M": "f_locker",
"Q": "f_oven",
"R": "f_rack",
@@ -130,10 +130,10 @@
"type": "palette",
"id": "mansion_palette_outdoors",
"terrain": {
- "'": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_shrub", "t_grass", "t_grass", "t_grass", "t_grass", "t_grass" ],
- "*": [ "t_shrub", "t_shrub", "t_shrub", "t_shrub", "t_shrub", "t_grass" ],
- "0": [ "t_tree", "t_tree", "t_tree", "t_grass", "t_dirt" ],
- ":": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ]
+ "'": [ [ "t_dirt", 4 ], "t_shrub", [ "t_grass", 5 ] ],
+ "*": [ [ "t_shrub", 4 ], "t_grass" ],
+ "0": [ [ "t_tree", 3 ], "t_grass", "t_dirt" ],
+ ":": [ [ "t_grass", 7 ], "t_dirt" ]
}
},
{
diff --git a/data/json/mapgen_palettes/office.json b/data/json/mapgen_palettes/office.json
index 1ea4226b1a0b3..be21636cce0f6 100644
--- a/data/json/mapgen_palettes/office.json
+++ b/data/json/mapgen_palettes/office.json
@@ -68,7 +68,7 @@
"r": "f_rack",
"S": "f_sink",
"T": "f_toilet",
- "O": "f_crate_c",
+ "O": [ [ "f_cardboard_box", 6 ], "f_crate_c" ],
"a": "f_trashcan",
"F": "f_filing_cabinet",
"Q": "f_safe_l",
diff --git a/data/json/mapgen_palettes/prison.json b/data/json/mapgen_palettes/prison.json
new file mode 100644
index 0000000000000..7e0099421b1d8
--- /dev/null
+++ b/data/json/mapgen_palettes/prison.json
@@ -0,0 +1,84 @@
+[
+ {
+ "type": "palette",
+ "id": "prison_palette",
+ "terrain": {
+ " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
+ "#": [ "t_rock" ],
+ "%": [ "t_fence_barbed" ],
+ "+": [ "t_door_locked_interior" ],
+ ",": [ "t_floor" ],
+ "-": [ "t_concrete_wall" ],
+ ".": [ "t_grass" ],
+ "<": [ "t_stairs_down" ],
+ "=": [ "t_door_c" ],
+ ">": [ "t_stairs_up" ],
+ "B": [ "t_bars" ],
+ "D": [ "t_floor" ],
+ "E": [ "t_floor" ],
+ "F": [ "t_chainfence_v" ],
+ "G": [ "t_door_bar_locked" ],
+ "H": [ "t_chaingate_l" ],
+ "O": [ "t_column" ],
+ "S": [ "t_floor" ],
+ "T": [ "t_floor" ],
+ "W": [ "t_floor" ],
+ "_": [ "t_pavement" ],
+ "b": [ "t_floor" ],
+ "c": [ "t_floor" ],
+ "d": [ "t_floor" ],
+ "e": [ "t_floor" ],
+ "f": [ "t_chainfence_h" ],
+ "g": [ "t_reinforced_glass" ],
+ "h": [ "t_floor" ],
+ "i": [ "t_floor" ],
+ "l": [ "t_floor" ],
+ "m": [ "t_floor" ],
+ "n": [ "t_floor" ],
+ "o": [ "t_floor" ],
+ "r": [ "t_floor" ],
+ "s": [ "t_sidewalk" ],
+ "t": [ "t_floor" ],
+ "w": [ "t_window" ],
+ "x": [ "t_console_broken" ],
+ "y": [ "t_floor" ],
+ "z": [ "t_floor" ],
+ "|": [ "t_concrete_wall" ]
+ },
+ "furniture": {
+ "3": [ "f_bench" ],
+ "D": [ "f_dryer" ],
+ "E": [ "f_exercise" ],
+ "S": [ "f_sink" ],
+ "T": [ "f_toilet" ],
+ "W": [ "f_washer" ],
+ "b": [ "f_bed" ],
+ "c": [ "f_counter" ],
+ "d": [ "f_desk" ],
+ "e": [ "f_fridge" ],
+ "h": [ "f_chair" ],
+ "i": [ "f_locker" ],
+ "l": [ "f_locker" ],
+ "m": [ "f_locker" ],
+ "n": [ "f_oven" ],
+ "o": [ "f_bookcase" ],
+ "r": [ "f_rack" ],
+ "t": [ "f_table" ],
+ "z": [ "f_rack" ]
+ },
+ "toilets": { "T": { } },
+ "items": {
+ "D": [ { "item": "prison_textile", "chance": 100 } ],
+ "W": [ { "item": "prison_textile", "chance": 100 } ],
+ "b": [ { "item": "novels", "chance": 30 }, { "item": "contraband", "chance": 10 }, { "item": "bed", "chance": 50 } ],
+ "d": [ { "item": "magazines", "chance": 30 }, { "item": "office", "chance": 30 } ],
+ "e": { "item": "fridge", "chance": 60 },
+ "i": [ { "item": "science", "chance": 30 }, { "item": "cleaning", "chance": 30 } ],
+ "m": [ { "item": "softdrugs", "chance": 40 }, { "item": "harddrugs", "chance": 40 } ],
+ "o": { "item": "novels", "chance": 70 },
+ "r": [ { "item": "science", "chance": 30 }, { "item": "cleaning", "chance": 30 } ],
+ "y": { "item": "cleaning", "chance": 60 },
+ "z": [ { "item": "cannedfood", "chance": 40 }, { "item": "pasta", "chance": 40 } ]
+ }
+ }
+]
diff --git a/data/json/mapgen_palettes/ranch_camp.json b/data/json/mapgen_palettes/ranch_camp.json
index 14c40468b93d1..a17edfb5dd870 100644
--- a/data/json/mapgen_palettes/ranch_camp.json
+++ b/data/json/mapgen_palettes/ranch_camp.json
@@ -8,81 +8,24 @@
"%": "t_fence_barbed",
"+": "t_door_c",
",": "t_pavement_y",
- "-": "t_wall",
- ".": [
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_grass",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_dirt",
- "t_underbrush"
- ],
+ "-": "t_wall_w",
+ ".": [ [ "t_dirt", 27 ], [ "t_grass_long", 10 ], [ "t_underbrush", 1 ], [ "t_grass", 28 ] ],
"/": "t_dirt",
"5": "t_barndoor",
"6": "t_palisade_pulley",
";": "t_dirtfloor",
"=": "t_door_metal_locked",
- "A": "t_bars",
+ "A": "t_door_bar_locked",
"B": "t_floor",
"C": "t_grass",
"D": "t_floor",
"G": "t_palisade_gate",
- "H": "t_fence_h",
+ "H": "t_splitrail_fence_h",
"L": "t_floor",
"O": "t_floor",
"S": "t_floor",
"T": "t_tree",
- "V": "t_fence_v",
+ "V": "t_splitrail_fence_v",
"W": "t_wall_wood",
"X": "t_grass",
"Y": "t_floor",
@@ -105,8 +48,13 @@
"x": "t_grass",
"y": "t_palisade",
"z": "t_floor",
- "|": "t_wall",
- "~": "t_water_sh"
+ "|": "t_wall_w",
+ "~": "t_water_sh",
+ "4": "t_gutter_downspout",
+ "3": "t_splitrail_fencegate_c",
+ "2": "t_wall_metal",
+ "<": "t_ladder_up",
+ ">": "t_ladder_down"
},
"furniture": {
"@": "f_bed",
diff --git a/data/json/mapgen_palettes/refugee_center.json b/data/json/mapgen_palettes/refugee_center.json
index cfa10e805cca7..4a4c413062c7c 100644
--- a/data/json/mapgen_palettes/refugee_center.json
+++ b/data/json/mapgen_palettes/refugee_center.json
@@ -47,7 +47,7 @@
"l": "f_vending_c",
"n": "f_slab",
"o": "f_bookcase",
- "p": "f_pillow_fort",
+ "p": "f_cardboard_fort",
"r": "f_rack",
"t": "f_toilet",
"u": "f_utility_shelf",
diff --git a/data/json/mapgen_palettes/roof_palette.json b/data/json/mapgen_palettes/roof_palette.json
index c35f880483f4f..74afa9bfa5958 100644
--- a/data/json/mapgen_palettes/roof_palette.json
+++ b/data/json/mapgen_palettes/roof_palette.json
@@ -10,8 +10,10 @@
"2": "t_gutter_north",
"-": "t_gutter_south",
"3": "t_gutter_east",
+ "4": "t_gutter_downspout",
"|": "t_gutter_west",
"5": "t_gutter_drop",
+ "#": "t_grate",
"&": "t_null",
":": "t_null",
"X": "t_null",
diff --git a/data/json/martialarts.json b/data/json/martialarts.json
index 8ab0781ef86d0..7464bacbe3798 100644
--- a/data/json/martialarts.json
+++ b/data/json/martialarts.json
@@ -24,6 +24,7 @@
"name": "Brawling",
"description": "You're used to hand-to-creature fighting. Not stylish or sporting, but it gets the job done.",
"initiate": [ "You grit your teeth and prepare for a good fight.", "%s gets ready to brawl." ],
+ "autolearn": [ [ "unarmed", "2" ] ],
"arm_block": -1,
"leg_block": 7,
"techniques": [ "tec_brawl_feint", "tec_brawl_power", "tec_brawl_trip", "tec_brawl_counter" ]
@@ -461,6 +462,7 @@
"javelin",
"javelin_iron",
"knife_combat",
+ "copper_knife",
"knife_hunting",
"knife_trench",
"kris",
@@ -493,9 +495,11 @@
"spear_knife",
"spear_rebar",
"spear_pipe",
+ "spear_forked",
"spear_steel",
"spear_survivor",
"spear_wood",
+ "spear_copper",
"spear_homemade_halfpike",
"stick",
"survivor_machete",
@@ -675,6 +679,7 @@
"knife_combat",
"knife_hunting",
"knife_trench",
+ "copper_knife",
"machete",
"survivor_machete",
"makeshift_knife",
@@ -873,6 +878,41 @@
]
}
],
+ "oncrit_buffs": [
+ {
+ "id": "debug_crit_buff",
+ "name": "Lightning Strike",
+ "description": "Lightning strikes twice. +Perception electric damage for 3 turns. Stacks 2 times.",
+ "unarmed_allowed": true,
+ "min_unarmed": 0,
+ "buff_duration": 3,
+ "max_stacks": 2,
+ "flat_bonuses": [ [ "damage", "electric", "per", 1.0 ] ]
+ }
+ ],
+ "onmiss_buffs": [
+ {
+ "id": "debug_miss_buff",
+ "name": "Getting Angry",
+ "description": "When I get my hands on you... +2 bash damage for 2 turns. Stacks 5 times.",
+ "unarmed_allowed": true,
+ "min_unarmed": 0,
+ "buff_duration": 2,
+ "max_stacks": 5,
+ "flat_bonuses": [ [ "damage", "bash", 2.0 ] ]
+ }
+ ],
+ "onkill_buffs": [
+ {
+ "id": "debug_kill_buff",
+ "name": "On Fire",
+ "description": "YOU ARE ON FIRE! +5 fire damage for 5 turns.",
+ "unarmed_allowed": true,
+ "min_unarmed": 0,
+ "buff_duration": 5,
+ "flat_bonuses": [ [ "damage", "heat", 5.0 ] ]
+ }
+ ],
"techniques": [ "tec_debug_slow", "tec_debug_arpen" ]
},
{
@@ -923,6 +963,7 @@
"spear_forked",
"spear_homemade_halfpike",
"spear_pipe",
+ "spear_knife",
"spear_rebar",
"spear_steel",
"spear_survivor",
diff --git a/data/json/martialarts_fictional.json b/data/json/martialarts_fictional.json
index 30a0c304d8f5e..bb960da5b2d60 100644
--- a/data/json/martialarts_fictional.json
+++ b/data/json/martialarts_fictional.json
@@ -228,44 +228,5 @@
"unarmed_allowed": true,
"mult_bonuses": [ [ "movecost", 0.5 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.66 ], [ "damage", "stab", 0.66 ] ],
"messages": [ "You swiftly hit %s", " swiftly hits %s" ]
- },
- {
- "type": "technique",
- "id": "tec_snake_rapid",
- "name": "Snake Snap",
- "min_unarmed": 2,
- "unarmed_allowed": true,
- "mult_bonuses": [ [ "movecost", 0.5 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.66 ], [ "damage", "stab", 0.66 ] ],
- "messages": [ "You swiftly jab %s", " swiftly jabs %s" ]
- },
- {
- "type": "technique",
- "id": "tec_snake_feint",
- "name": "Snake Slide",
- "min_unarmed": 3,
- "unarmed_allowed": true,
- "defensive": true,
- "miss_recovery": true,
- "messages": [ "You make serpentine hand motions at %s", " makes serpentine hand motions at %s" ]
- },
- {
- "type": "technique",
- "id": "tec_snake_break",
- "name": "Snake Slither",
- "min_unarmed": 4,
- "unarmed_allowed": true,
- "defensive": true,
- "grab_break": true,
- "messages": [ "You slither free", " slithers free" ]
- },
- {
- "type": "technique",
- "id": "tec_snake_precise",
- "name": "Snake Strike",
- "min_unarmed": 4,
- "unarmed_allowed": true,
- "crit_tec": true,
- "messages": [ "You strike out at %s", " strikes out at %s" ],
- "stun_dur": 2
}
]
diff --git a/data/json/monsterdrops/mutant_experimental.json b/data/json/monsterdrops/mutant_experimental.json
new file mode 100644
index 0000000000000..f02950488b255
--- /dev/null
+++ b/data/json/monsterdrops/mutant_experimental.json
@@ -0,0 +1,14 @@
+[
+ {
+ "type": "item_group",
+ "subtype": "collection",
+ "id": "mon_mutant_experimental_death_drops",
+ "entries": [ { "item": "subsuit_xl", "damage": [ 2, 3 ] } ]
+ },
+ {
+ "type": "item_group",
+ "subtype": "collection",
+ "id": "mon_mutant_evolved_death_drops",
+ "entries": [ { "item": "rag", "damage": [ 1, 4 ], "count": [ 1, 4 ] }, { "item": "pants", "damage": [ 2, 3 ] } ]
+ }
+]
diff --git a/data/json/monsterdrops/zombie_lab.json b/data/json/monsterdrops/zombie_lab.json
index 2b5cf77f446c9..a6106b371f9e0 100644
--- a/data/json/monsterdrops/zombie_lab.json
+++ b/data/json/monsterdrops/zombie_lab.json
@@ -39,7 +39,6 @@
[ "bio_ups", 10 ],
[ "bio_torsionratchet", 30 ],
[ "bio_tools", 10 ],
- [ "bio_storage", 15 ],
[ "bio_flashlight", 30 ],
[ "bio_lighter", 25 ],
[ "bio_magnet", 20 ],
diff --git a/data/json/monsterdrops/zombie_prisoner.json b/data/json/monsterdrops/zombie_prisoner.json
new file mode 100644
index 0000000000000..4b955d88f0ec0
--- /dev/null
+++ b/data/json/monsterdrops/zombie_prisoner.json
@@ -0,0 +1,16 @@
+[
+ {
+ "type": "item_group",
+ "subtype": "collection",
+ "id": "mon_zombie_prisoner_death_drops",
+ "entries": [
+ { "item": "striped_shirt", "damage": [ 1, 4 ] },
+ { "item": "striped_pants", "damage": [ 1, 4 ] },
+ { "item": "bandana", "damage": [ 1, 4 ], "prob": 5 },
+ { "group": "clothing_glasses", "prob": 10 },
+ { "group": "underwear", "damage": [ 1, 4 ] },
+ { "group": "clothing_prisoner_shoes", "damage": [ 1, 4 ] },
+ { "group": "contraband", "prob": 30 }
+ ]
+ }
+]
diff --git a/data/json/monstergroups.json b/data/json/monstergroups.json
index 8890072271a56..e4d9f92e68384 100644
--- a/data/json/monstergroups.json
+++ b/data/json/monstergroups.json
@@ -1723,7 +1723,8 @@
"starts": 672,
"conditions": [ "SPRING", "SUMMER", "AUTUMN" ]
},
- { "monster": "mon_nakedmolerat_giant", "freq": 1, "cost_multiplier": 3, "conditions": [ "DUSK", "NIGHT" ] }
+ { "monster": "mon_nakedmolerat_giant", "freq": 1, "cost_multiplier": 3, "conditions": [ "DUSK", "NIGHT" ] },
+ { "monster": "mon_mutant_experimental", "freq": 3, "cost_multiplier": 0, "conditions": [ "DUSK", "NIGHT" ] }
]
},
{
@@ -1908,6 +1909,198 @@
"conditions": [ "DAWN", "DUSK" ],
"pack_size": [ 1, 3 ]
},
+ { "monster": "mon_fish_brown_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_brown_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_brook_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_brook_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_lake_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_lake_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_rainbow_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_rainbow_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_steelhead_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_steelhead_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_kokanee_salmon", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_kokanee_salmon",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_chinook_salmon", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_chinook_salmon",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_coho_salmon", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_coho_salmon",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_white_bass", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_white_bass",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_walleye", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_walleye",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_pumpkinseed", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_pumpkinseed",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_redbreast", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_redbreast",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_green_sunfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_green_sunfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_longear_sunfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_longear_sunfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_redear_sunfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_redear_sunfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_rock_bass", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_rock_bass",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_calico_bass", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_calico_bass",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_warmouth", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_warmouth",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_channel_catfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_channel_catfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_white_catfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_white_catfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_muskellunge", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_muskellunge",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_white_sucker", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_white_sucker",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_grass_carp", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_grass_carp",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_fallfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_fallfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
{ "monster": "mon_fish_carp", "freq": 10, "cost_multiplier": 10, "pack_size": [ 1, 3 ] },
{
"monster": "mon_fish_carp",
@@ -2000,6 +2193,7 @@
{ "monster": "mon_bat", "freq": 600, "cost_multiplier": 5, "pack_size": [ 6, 32 ] },
{ "monster": "mon_bear", "freq": 100, "cost_multiplier": 10, "pack_size": [ 1, 3 ] },
{ "monster": "mon_cougar", "freq": 100, "cost_multiplier": 20, "pack_size": [ 1, 2 ] },
+ { "monster": "mon_mutant_experimental", "freq": 25, "cost_multiplier": 3 },
{ "monster": "mon_nakedmolerat_giant", "freq": 100, "cost_multiplier": 3 }
]
},
@@ -4002,7 +4196,8 @@
"cost_multiplier": 0,
"starts": 792,
"conditions": [ "DUSK", "NIGHT", "DAWN", "SPRING", "SUMMER", "AUTUMN" ]
- }
+ },
+ { "monster": "mon_mutant_experimental", "freq": 3, "cost_multiplier": 0, "conditions": [ "DUSK", "NIGHT" ] }
]
},
{
@@ -4495,6 +4690,198 @@
"conditions": [ "DAWN", "DUSK" ],
"pack_size": [ 4, 6 ]
},
+ { "monster": "mon_fish_brown_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_brown_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_brook_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_brook_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_lake_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_lake_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_rainbow_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_rainbow_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_steelhead_trout", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_steelhead_trout",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_kokanee_salmon", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_kokanee_salmon",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_chinook_salmon", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_chinook_salmon",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_coho_salmon", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_coho_salmon",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_white_bass", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_white_bass",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_walleye", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_walleye",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_pumpkinseed", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_pumpkinseed",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_redbreast", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_redbreast",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_green_sunfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_green_sunfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_longear_sunfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_longear_sunfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_redear_sunfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_redear_sunfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_rock_bass", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_rock_bass",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_calico_bass", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_calico_bass",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_warmouth", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_warmouth",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_channel_catfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_channel_catfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_white_catfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_white_catfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_muskellunge", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_muskellunge",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_white_sucker", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_white_sucker",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_grass_carp", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_grass_carp",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
+ { "monster": "mon_fish_fallfish", "freq": 15, "cost_multiplier": 8, "pack_size": [ 1, 3 ] },
+ {
+ "monster": "mon_fish_fallfish",
+ "freq": 20,
+ "cost_multiplier": 8,
+ "conditions": [ "DAWN", "DUSK" ],
+ "pack_size": [ 1, 3 ]
+ },
{ "monster": "mon_fish_lbass", "freq": 25, "cost_multiplier": 3, "pack_size": [ 1, 3 ] },
{
"monster": "mon_fish_lbass",
@@ -4586,11 +4973,9 @@
{
"type": "monstergroup",
"name": "GROUP_ZOMBIE_PRISON",
- "default": "mon_zombie",
+ "default": "mon_zombie_prisoner",
"monsters": [
- { "monster": "mon_zombie", "freq": 200, "cost_multiplier": 0 },
- { "monster": "mon_zombie_fat", "freq": 100, "cost_multiplier": 0 },
- { "monster": "mon_zombie_tough", "freq": 50, "cost_multiplier": 0 },
+ { "monster": "mon_zombie_prisoner", "freq": 350, "cost_multiplier": 0 },
{ "monster": "mon_zombie_electric", "freq": 10, "cost_multiplier": 0 }
]
},
@@ -4727,6 +5112,22 @@
{ "monster": "mon_zombie_crawler", "freq": 10, "cost_multiplier": 1 }
]
},
+ {
+ "type": "monstergroup",
+ "name": "GROUP_ZOMBIE_SEXSHOP_A",
+ "default": "mon_zombie",
+ "monsters": [
+ { "monster": "mon_zombie_cop", "freq": 250, "cost_multiplier": 2 },
+ { "monster": "mon_zombie", "freq": 150, "cost_multiplier": 1 },
+ { "monster": "mon_zombie_swimmer", "freq": 100, "cost_multiplier": 2 }
+ ]
+ },
+ {
+ "type": "monstergroup",
+ "name": "GROUP_ZOMBIE_SEXSHOP_B",
+ "default": "mon_zombie",
+ "monsters": [ { "monster": "mon_zombie_swimmer", "freq": 500, "cost_multiplier": 2 } ]
+ },
{
"name": "GROUP_PLAIN",
"type": "monstergroup",
diff --git a/data/json/monstergroups/lab.json b/data/json/monstergroups/lab.json
index 0dce379b0c96a..a714f1328ad9b 100644
--- a/data/json/monstergroups/lab.json
+++ b/data/json/monstergroups/lab.json
@@ -18,6 +18,7 @@
{ "monster": "mon_science_bot", "freq": 50, "cost_multiplier": 15 },
{ "monster": "mon_manhack", "freq": 200, "cost_multiplier": 0 },
{ "monster": "mon_manhack", "freq": 45, "cost_multiplier": 0, "pack_size": [ 2, 3 ] },
+ { "monster": "mon_mutant_experimental", "freq": 50, "cost_multiplier": 3 },
{ "monster": "mon_nakedmolerat_giant", "freq": 45, "cost_multiplier": 3 },
{ "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 0 },
{ "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 0, "pack_size": [ 2, 3 ] },
@@ -47,6 +48,7 @@
{ "monster": "mon_science_bot", "freq": 80, "cost_multiplier": 15 },
{ "monster": "mon_manhack", "freq": 200, "cost_multiplier": 0 },
{ "monster": "mon_manhack", "freq": 45, "cost_multiplier": 0, "pack_size": [ 2, 3 ] },
+ { "monster": "mon_mutant_experimental", "freq": 3, "cost_multiplier": 0 },
{ "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 0 },
{ "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 0, "pack_size": [ 2, 3 ] },
{ "monster": "mon_skitterbot", "freq": 10, "cost_multiplier": 0, "pack_size": [ 8, 12 ] },
diff --git a/data/json/monsters.json b/data/json/monsters.json
index 2d3fdd7c01b76..a9243a13ff521 100644
--- a/data/json/monsters.json
+++ b/data/json/monsters.json
@@ -693,7 +693,7 @@
"id": "mon_chickenbot",
"type": "MONSTER",
"name": "chicken walker",
- "description": "The Northrup ATSV, a massive, heavily-armed and armored robot walking on a pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade launcher, 5.56 anti-personnel gun, and the ability to electrify itself against attackers, it is an effective automated sentry, though production was limited due to a legal dispute.",
+ "description": "The Northrop ATSV, a massive, heavily-armed and armored robot walking on a pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade launcher, 5.56 anti-personnel gun, and the ability to electrify itself against attackers, it is an effective automated sentry, though production was limited due to a legal dispute.",
"default_faction": "military",
"species": [ "ROBOT" ],
"diff": 20,
@@ -2645,7 +2645,7 @@
"id": "mon_tankbot",
"type": "MONSTER",
"name": "Beagle Mini-Tank UGV",
- "description": "The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an anti-tank missile launcher, 40mm grenade launcher, and numerous anti-infantry weapons, it's designed for high-risk urban fighting.",
+ "description": "The Northrop Beagle is a refrigerator-sized urban warfare UGV. Sporting an anti-tank missile launcher, 40mm grenade launcher, and numerous anti-infantry weapons, it's designed for high-risk urban fighting.",
"default_faction": "military",
"species": [ "ROBOT" ],
"diff": 30,
diff --git a/data/json/monsters/defense_bot.json b/data/json/monsters/defense_bot.json
index 726bfa347a387..d920013722e8c 100644
--- a/data/json/monsters/defense_bot.json
+++ b/data/json/monsters/defense_bot.json
@@ -162,7 +162,7 @@
"id": "mon_dispatch",
"type": "MONSTER",
"name": "NR-031 Dispatch",
- "description": "The Northrop Dispatch, designed for crowd control situations, carries and deployes kamikaze drones of various types, with a small onboard EMP emitter frying them in the event of its destruction. The bright green-and-yellow paint marks a low-force variant - *comparatively* low-force, anyways - typically deployed as guards after an area has been cleared.",
+ "description": "The Northrop Dispatch, designed for crowd control situations, carries and deploys kamikaze drones of various types, with a small onboard EMP emitter frying them in the event of its destruction. The bright green-and-yellow paint marks a low-force variant - *comparatively* low-force, anyways - typically deployed as guards after an area has been cleared.",
"default_faction": "defense_bot",
"species": [ "ROBOT" ],
"diff": 20,
diff --git a/data/json/monsters/fish.json b/data/json/monsters/fish.json
index a52d582d00fb0..c7e257b63009f 100644
--- a/data/json/monsters/fish.json
+++ b/data/json/monsters/fish.json
@@ -1,80 +1,89 @@
[
{
- "id": "mon_fish_blinky",
+ "id": "mon_fish_tiny",
"type": "MONSTER",
- "name": "Blinky",
- "name_plural": "Blinkies",
- "description": "A strange three-eyed fish.",
+ "name": "tiny fish",
+ "//": "a default fish type - does not appear in-game",
+ "description": "A tiny fish.",
"default_faction": "fish",
"bodytype": "fish",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
+ "volume": "800 ml",
+ "weight": 680,
+ "hp": 2,
"speed": 150,
+ "dodge": 8,
"material": [ "flesh" ],
"symbol": "f",
"color": "white",
"aggression": -60,
"morale": 5,
"melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 5,
+ "melee_dice_sides": 1,
+ "melee_cut": 0,
+ "luminance": 0,
+ "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 17 },
+ "baby_flags": [ "SPRING", "SUMMER" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
- "harvest": "fish_small",
+ "harvest": "fish_tiny",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_eel",
+ "id": "mon_fish_small",
"type": "MONSTER",
- "name": "freshwater eel",
- "description": "An American eel. Used to be quite common in these parts until the dams were built. Guess they'll get a second chance now that they aren't running.",
+ "name": "small fish",
+ "//": "a default fish type - does not appear in-game",
+ "description": "A small fish.",
"default_faction": "fish",
- "bodytype": "snake",
+ "bodytype": "fish",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
+ "volume": "2000 ml",
+ "weight": 1500,
+ "hp": 6,
"speed": 150,
+ "dodge": 8,
"material": [ "flesh" ],
"symbol": "f",
"color": "white",
- "aggression": -50,
+ "aggression": -60,
"morale": 5,
"melee_dice": 1,
- "melee_dice_sides": 4,
+ "melee_dice_sides": 2,
"melee_cut": 1,
"luminance": 0,
+ "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 17 },
+ "baby_flags": [ "SPRING", "SUMMER" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
"harvest": "fish_small",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_bowfin",
+ "id": "mon_fish_medium",
"type": "MONSTER",
- "name": "bowfin",
- "description": "A Bowfin. These fish are related to gar but without the huge teeth, skin rending scales, and aggression.",
+ "description": "A medium fish.",
"default_faction": "fish",
+ "name": "medium fish",
+ "//": "a default fish type - does not appear in-game",
"bodytype": "fish",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
+ "volume": "7000 ml",
+ "weight": 4535,
+ "hp": 10,
"speed": 150,
+ "dodge": 8,
"material": [ "flesh" ],
"symbol": "f",
"color": "white",
- "aggression": -50,
+ "aggression": -60,
"morale": 5,
"melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
+ "melee_dice_sides": 2,
+ "melee_cut": 2,
"luminance": 0,
"reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 17 },
"baby_flags": [ "SPRING", "SUMMER" ],
@@ -84,305 +93,430 @@
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_bullhead",
+ "id": "mon_fish_large",
"type": "MONSTER",
- "name": "bullhead",
- "description": "A bullhead, a type of catfish. Delicious battered and fried.",
+ "description": "A large fish.",
"default_faction": "fish",
"bodytype": "fish",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
+ "volume": "16000 ml",
+ "name": "large fish",
+ "//": "a default fish type - does not appear in-game",
+ "weight": 12000,
"hp": 20,
"speed": 150,
+ "dodge": 8,
"material": [ "flesh" ],
- "symbol": "f",
+ "symbol": "F",
"color": "white",
- "aggression": -50,
+ "aggression": -60,
"morale": 5,
"melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
+ "melee_dice_sides": 3,
+ "melee_cut": 2,
"luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 10 },
+ "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 17 },
"baby_flags": [ "SPRING", "SUMMER" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
- "harvest": "fish_small",
+ "harvest": "fish_large",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_trout",
+ "id": "mon_fish_huge",
"type": "MONSTER",
- "name": "trout",
- "description": "A trout is a trout, without a doubt. A fish made popular by father-son fishing trips, Except for the part where you have to gut it.",
+ "description": "A huge fish.",
"default_faction": "fish",
"bodytype": "fish",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
"volume": "30000 ml",
+ "name": "huge fish",
+ "//": "a default fish type - does not appear in-game",
"weight": 40750,
- "hp": 20,
+ "hp": 30,
"speed": 150,
+ "dodge": 8,
"material": [ "flesh" ],
- "symbol": "f",
+ "symbol": "F",
"color": "white",
- "aggression": -20,
- "morale": 40,
+ "aggression": -60,
+ "morale": 5,
"melee_dice": 1,
"melee_dice_sides": 4,
- "melee_cut": 1,
+ "melee_cut": 3,
"luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 49 },
- "baby_flags": [ "SPRING" ],
+ "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 17 },
+ "baby_flags": [ "SPRING", "SUMMER" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
"harvest": "fish_large",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_carp",
+ "id": "mon_fish_trout",
"type": "MONSTER",
- "name": "carp",
- "description": "A golden-yellow common carp. Some people think they don't taste great, but you can't afford to be choosy in the cataclysm.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 40,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -20,
- "morale": 40,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 8 },
- "baby_flags": [ "SPRING" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_small",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
+ "copy-from": "mon_fish_medium",
+ "name": "trout",
+ "description": "A Trout. A fish made popular by father-son fishing trips, Except for the part where you have to gut it."
},
{
- "id": "mon_fish_pike",
+ "id": "mon_fish_brown_trout",
"type": "MONSTER",
- "name": "pike",
- "description": "A pike. Pike can be a pretty aggressive fish, careful around those teeth.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 30,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -20,
- "morale": 40,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 24 },
- "baby_flags": [ "SPRING" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_large",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
+ "copy-from": "mon_fish_medium",
+ "name": "brown trout",
+ "looks_like": "mon_fish_trout",
+ "description": "A Brown Trout. A fish made popular by father-son fishing trips, Except for the part where you have to gut it."
},
{
- "id": "mon_fish_bluegill",
+ "id": "mon_fish_brook_trout",
"type": "MONSTER",
- "name": "bluegill",
- "description": "A bluegill, an invasive species in Japan. Commonly gutted and cooked whole.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -50,
- "morale": 5,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 7 },
- "baby_flags": [ "SPRING", "SUMMER" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_small",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
+ "copy-from": "mon_fish_small",
+ "name": "brook trout",
+ "looks_like": "mon_fish_trout",
+ "description": "A Brook Trout. A fish made popular by father-son fishing trips, Except for the part where you have to gut it."
},
{
- "id": "mon_fish_sbass",
+ "id": "mon_fish_lake_trout",
"type": "MONSTER",
- "name": "smallmouth bass",
- "name_plural": "smallmouth bass",
- "description": "A Smallmouth bass. Being intolerant to pollution in the water, smallmouth bass are a good indicator of how clean it is. Just because you see them though, doesn't mean you can drink the water without boiling it first.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -50,
- "morale": 5,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 25 },
- "baby_flags": [ "SPRING", "SUMMER" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_small",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
+ "copy-from": "mon_fish_large",
+ "name": "lake trout",
+ "looks_like": "mon_fish_trout",
+ "description": "A Lake trout. A fish made popular by father-son fishing trips, Except for the part where you have to gut it."
+ },
+ {
+ "id": "mon_fish_rainbow_trout",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_medium",
+ "name": "rainbow trout",
+ "looks_like": "mon_fish_trout",
+ "description": "A Rainbow Trout. A fish made popular by father-son fishing trips, Except for the part where you have to gut it."
+ },
+ {
+ "id": "mon_fish_steelhead_trout",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_large",
+ "name": "steelhead trout",
+ "looks_like": "mon_fish_trout",
+ "description": "A Steelhead Trout. A fish made popular by father-son fishing trips, Except for the part where you have to gut it."
+ },
+ {
+ "id": "mon_fish_salmon",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_huge",
+ "name": "salmon",
+ "description": "An Atlantic Salmon. A very fatty, nutritious fish. Tastes great smoked."
+ },
+ {
+ "id": "mon_fish_kokanee_salmon",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_medium",
+ "name": "kokanee salmon",
+ "looks_like": "mon_fish_salmon",
+ "description": "A Kokanee Salmon. A very fatty, nutritious fish. Tastes great smoked."
+ },
+ {
+ "id": "mon_fish_chinook_salmon",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_huge",
+ "name": "chinook salmon",
+ "looks_like": "mon_fish_salmon",
+ "description": "A Chinook Salmon. A very fatty, nutritious fish. Tastes great smoked."
+ },
+ {
+ "id": "mon_fish_coho_salmon",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_large",
+ "name": "coho salmon",
+ "looks_like": "mon_fish_salmon",
+ "description": "A Coho Salmon. A very fatty, nutritious fish. Tastes great smoked."
+ },
+ {
+ "id": "mon_fish_whitefish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_medium",
+ "name": "whitefish",
+ "description": "A whitefish, closely related to salmon. One can assume they are just as nice when cooked with smoke."
},
{
"id": "mon_fish_lbass",
"type": "MONSTER",
+ "copy-from": "mon_fish_medium",
"name": "largemouth bass",
- "name_plural": "largemouth bass",
- "description": "A largemouth bass. Very popular with sports fishermen.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -50,
- "morale": 5,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 21 },
- "baby_flags": [ "SPRING", "SUMMER" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_small",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
+ "description": "A Largemouth Bass. Very popular with sports fishermen."
+ },
+ {
+ "id": "mon_fish_sbass",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_small",
+ "name": "smallmouth bass",
+ "description": "A Smallmouth Bass. Being intolerant to pollution in the water, smallmouth bass are a good indicator of how clean it is."
},
{
"id": "mon_fish_pbass",
"type": "MONSTER",
+ "copy-from": "mon_fish_medium",
"name": "striped bass",
- "name_plural": "striped bass",
- "description": "A striped bass. Mostly a salt water fish, they migrate to fresher water to spawn.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -50,
- "morale": 5,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 7 },
- "baby_flags": [ "SPRING", "SUMMER" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_small",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
+ "description": "A Striped Bass. Mostly a salt water fish, they migrate to fresher water to spawn."
+ },
+ {
+ "id": "mon_fish_white_bass",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "white bass",
+ "looks_like": "mon_fish_pbass",
+ "description": "A White Bass. Common to the region, a slab-sided and spiny-rayed little fish."
},
{
"id": "mon_fish_perch",
"type": "MONSTER",
+ "copy-from": "mon_fish_small",
"name": "perch",
- "name_plural": "perches",
- "description": "A small spritely perch. A very bony fish, still got some tasty meat on it though.",
+ "looks_like": "mon_fish_pickerel",
+ "description": "A small spritely Perch. A very bony fish, still got some tasty meat on it though."
+ },
+ {
+ "id": "mon_fish_walleye",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_medium",
+ "name": "walleye",
+ "looks_like": "mon_fish_pbass",
+ "description": "A Walleye, a green-brown medium-sized fish with a white belly."
+ },
+ {
+ "id": "mon_fish_sunfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "sunfish",
+ "description": "A Sunfish. A small fish related to bass or bluegill."
+ },
+ {
+ "id": "mon_fish_pumpkinseed",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "pumpkinseed sunfish",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Pumpkinseed Sunfish. A small fish related to bass or bluegill."
+ },
+ {
+ "id": "mon_fish_bluegill",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_small",
+ "name": "bluegill",
+ "description": "A Bluegill, an invasive species in Japan. Commonly gutted and cooked whole."
+ },
+ {
+ "id": "mon_fish_redbreast",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "redbreast sunfish",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Redbreast Sunfish. A small fish related to bass or bluegill."
+ },
+ {
+ "id": "mon_fish_green_sunfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "green sunfish",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Green Sunfish. A small fish related to bass or bluegill."
+ },
+ {
+ "id": "mon_fish_longear_sunfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "longear sunfish",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Longear Sunfish. A small fish related to bass or bluegill."
+ },
+ {
+ "id": "mon_fish_redear_sunfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "redear sunfish",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Redear Sunfish. A small fish related to bass or bluegill."
+ },
+ {
+ "id": "mon_fish_rock_bass",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "rock bass",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Rock Bass. Related to sunfish, this tiny fish has a camoflauge-like patterning and a red eye."
+ },
+ {
+ "id": "mon_fish_calico_bass",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_medium",
+ "name": "calico bass",
+ "looks_like": "mon_fish_pbass",
+ "description": "A Calico Bass. A medium-sized fish also known as a 'Crappie'."
+ },
+ {
+ "id": "mon_fish_warmouth",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_small",
+ "name": "warmouth",
+ "looks_like": "mon_fish_sunfish",
+ "description": "A Warmouth, similar to a rock bass, this small fish is related to the sunfish."
+ },
+ {
+ "id": "mon_fish_bullhead",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_small",
+ "name": "bullhead",
+ "description": "A Bullhead, a type of catfish. Delicious battered and fried."
+ },
+ {
+ "id": "mon_fish_channel_catfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_large",
+ "name": "channel catfish",
+ "looks_like": "mon_fish_bullhead",
+ "description": "A Channel Catfish, they have a forked tail and long whiskers."
+ },
+ {
+ "id": "mon_fish_white_catfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "white catfish",
+ "looks_like": "mon_fish_bullhead",
+ "description": "A White Catfish, a small whiskered fish with a broad head."
+ },
+ {
+ "id": "mon_fish_pike",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_large",
+ "name": "pike",
+ "aggression": 10,
+ "melee_skill": 3,
+ "melee_dice_sides": 6,
+ "melee_cut": 4,
+ "description": "A Northern Pike. Pike can be a pretty aggressive fish, careful around those teeth."
+ },
+ {
+ "id": "mon_fish_pickerel",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_tiny",
+ "name": "pickerel",
+ "description": "A Pickerel. It looks like a pike, but much smaller."
+ },
+ {
+ "id": "mon_fish_muskellunge",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_large",
+ "name": "muskellunge",
+ "aggression": 10,
+ "melee_skill": 3,
+ "melee_dice_sides": 6,
+ "melee_cut": 3,
+ "loos_like": "mon_fish_pike",
+ "description": "A Muskellunge. Closely related to pike, it shares the same aggression and sharp teeth."
+ },
+ {
+ "id": "mon_fish_white_sucker",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_small",
+ "name": "white sucker",
+ "looks_like": "mon_fish_pbass",
+ "description": "A White Sucker. It has a streamlined body with a round mouth."
+ },
+ {
+ "id": "mon_fish_carp",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_medium",
+ "name": "carp",
+ "description": "A golden-yellow Common Carp. Some people think they don't taste great, but you can't afford to be choosy in the cataclysm."
+ },
+ {
+ "id": "mon_fish_grass_carp",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_huge",
+ "name": "grass carp",
+ "looks_like": "mon_fish_carp",
+ "description": "A huge Grass Carp. A golden, herbivorous fish."
+ },
+ {
+ "id": "mon_fish_bowfin",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_large",
+ "name": "bowfin",
+ "description": "A Bowfin. These fish are related to gar but without the huge teeth, skin rending scales, and aggression."
+ },
+ {
+ "id": "mon_fish_fallfish",
+ "type": "MONSTER",
+ "copy-from": "mon_fish_small",
+ "name": "fallfish",
+ "looks_like": "mon_fish_pbass",
+ "description": "A Fallfish. These fish are related to gar but without the huge teeth, skin rending scales, and aggression."
+ },
+ {
+ "id": "mon_fish_lobster",
+ "type": "MONSTER",
+ "name": "lobster",
+ "description": "These things were once considered pests not worth eating, then some marketing genius started selling them to people as a delicacy and they took off in popularity... and price.",
"default_faction": "fish",
- "bodytype": "fish",
+ "bodytype": "crab",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 150,
+ "volume": "1000 ml",
+ "weight": 680,
+ "hp": 12,
+ "speed": 80,
"material": [ "flesh" ],
"symbol": "f",
- "color": "white",
+ "color": "red",
"aggression": -50,
"morale": 5,
"melee_dice": 1,
"melee_dice_sides": 4,
"melee_cut": 1,
"luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 3, "baby_timer": 49 },
- "baby_flags": [ "SPRING" ],
+ "harvest": "shellfish",
+ "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 180 },
+ "baby_flags": [ "SUMMER", "AUTUMN" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
- "harvest": "fish_large",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_salmon",
+ "id": "mon_fish_crayfish",
"type": "MONSTER",
- "name": "salmon",
- "description": "A salmon. A very fatty, nutritious fish. Tastes great smoked.",
- "bodytype": "fish",
+ "name": "crayfish",
+ "description": "If you could get ahold of a bunch more of these, a hefty pot of boiling water, and some spicy seasonings...",
"default_faction": "fish",
+ "bodytype": "crab",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 40,
+ "volume": "300 ml",
+ "weight": 100,
+ "hp": 3,
"speed": 150,
"material": [ "flesh" ],
"symbol": "f",
- "color": "white",
- "aggression": -20,
- "morale": 40,
+ "color": "red",
+ "aggression": -50,
+ "morale": 5,
"melee_dice": 1,
- "melee_dice_sides": 4,
+ "melee_dice_sides": 3,
"melee_cut": 1,
"luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 3, "baby_timer": 150 },
+ "harvest": "shellfish",
+ "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 21 },
"baby_flags": [ "AUTUMN" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
- "harvest": "fish_large",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_sunfish",
+ "id": "mon_fish_blinky",
"type": "MONSTER",
- "name": "sunfish",
- "name_plural": "sunfish",
- "description": "A sunfish. No, not the giant tropical thing. This one is a small fish related to bass or bluegill.",
+ "name": "Blinky",
+ "name_plural": "Blinkies",
+ "description": "A strange three-eyed fish.",
"default_faction": "fish",
"bodytype": "fish",
"categories": [ "WILDLIFE" ],
@@ -394,32 +528,29 @@
"material": [ "flesh" ],
"symbol": "f",
"color": "white",
- "aggression": -50,
+ "aggression": -60,
"morale": 5,
"melee_dice": 1,
"melee_dice_sides": 4,
"melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 7 },
- "baby_flags": [ "SPRING", "SUMMER" ],
+ "luminance": 5,
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
"harvest": "fish_small",
"flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
{
- "id": "mon_fish_whitefish",
+ "id": "mon_fish_eel",
"type": "MONSTER",
- "name": "whitefish",
- "name_plural": "whitefish",
- "description": "A whitefish, closely related to salmon. One can assume they are just as nice when cooked with smoke.",
+ "name": "freshwater eel",
+ "description": "An American eel. Used to be quite common in these parts until the dams were built. Guess they'll get a second chance now that they aren't running.",
"default_faction": "fish",
- "bodytype": "fish",
+ "bodytype": "snake",
"categories": [ "WILDLIFE" ],
"species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
+ "volume": "5000 ml",
+ "weight": 3650,
+ "hp": 10,
"speed": 150,
"material": [ "flesh" ],
"symbol": "f",
@@ -430,38 +561,6 @@
"melee_dice_sides": 4,
"melee_cut": 1,
"luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 3, "baby_timer": 150 },
- "baby_flags": [ "AUTUMN", "WINTER" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "harvest": "fish_large",
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
- },
- {
- "id": "mon_fish_pickerel",
- "type": "MONSTER",
- "name": "pickerel",
- "name_plural": "pickerel",
- "description": "A pickerel. It looks like a pike, but much smaller.",
- "default_faction": "fish",
- "bodytype": "fish",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 40,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "white",
- "aggression": -20,
- "morale": 40,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 30 },
- "baby_flags": [ "SPRING" ],
"fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
"death_function": [ "NORMAL" ],
"harvest": "fish_small",
@@ -554,64 +653,6 @@
"death_function": [ "NORMAL" ],
"flags": [ "SEES", "HEARS", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
},
- {
- "id": "mon_fish_lobster",
- "type": "MONSTER",
- "name": "lobster",
- "description": "These things were once considered pests not worth eating, then some marketing genius started selling them to people as a delicacy and they took off in popularity... and price.",
- "default_faction": "fish",
- "bodytype": "crab",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 80,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "red",
- "aggression": -50,
- "morale": 5,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "harvest": "shellfish",
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 180 },
- "baby_flags": [ "SUMMER", "AUTUMN" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
- },
- {
- "id": "mon_fish_crayfish",
- "type": "MONSTER",
- "name": "crayfish",
- "description": "If you could get ahold of a bunch more of these, a hefty pot of boiling water, and some spicy seasonings...",
- "default_faction": "fish",
- "bodytype": "crab",
- "categories": [ "WILDLIFE" ],
- "species": [ "FISH" ],
- "volume": "30000 ml",
- "weight": 40750,
- "hp": 20,
- "speed": 150,
- "material": [ "flesh" ],
- "symbol": "f",
- "color": "red",
- "aggression": -50,
- "morale": 5,
- "melee_dice": 1,
- "melee_dice_sides": 4,
- "melee_cut": 1,
- "luminance": 0,
- "harvest": "shellfish",
- "reproduction": { "baby_egg": "egg_fish", "baby_count": 2, "baby_timer": 21 },
- "baby_flags": [ "AUTUMN" ],
- "fear_triggers": [ "PLAYER_CLOSE", "SOUND" ],
- "death_function": [ "NORMAL" ],
- "flags": [ "FISHABLE", "SEES", "SMELLS", "WARM", "SWIMS", "AQUATIC" ]
- },
{
"id": "mon_sewer_fish",
"type": "MONSTER",
diff --git a/data/json/monsters/mutant.json b/data/json/monsters/mutant.json
new file mode 100644
index 0000000000000..eb224059b0555
--- /dev/null
+++ b/data/json/monsters/mutant.json
@@ -0,0 +1,105 @@
+[
+ {
+ "id": "mon_mutant_experimental",
+ "type": "MONSTER",
+ "name": "experimental mutant",
+ "description": "A deformed amalgamation of man and animal. Grotesque humanoid covered in fur and a torn jumpsuit. The sinister fangs, claws and the look of insanity in his pale yellow eyes are a testament to that he lost all of his humanity.",
+ "default_faction": "factionless",
+ "bodytype": "human",
+ "species": [ "MUTANT" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 150,
+ "speed": 100,
+ "material": [ "flesh" ],
+ "symbol": "M",
+ "color": "brown",
+ "morale": 50,
+ "melee_skill": 6,
+ "melee_dice": 3,
+ "melee_dice_sides": 6,
+ "melee_cut": 6,
+ "dodge": 4,
+ "armor_bash": 5,
+ "armor_cut": 5,
+ "vision_day": 25,
+ "vision_night": 5,
+ "harvest": "mammal_fur",
+ "special_attacks": [
+ [ "PARROT", 80 ],
+ {
+ "type": "bite",
+ "cooldown": 10,
+ "damage_max_instance": [ { "damage_type": "stab", "amount": 12, "armor_multiplier": 0.7 } ]
+ }
+ ],
+ "path_settings": { "max_dist": 50 },
+ "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE", "STALK", "SOUND" ],
+ "fear_triggers": [ "HURT" ],
+ "placate_triggers": [ "MEAT" ],
+ "death_function": [ "NORMAL" ],
+ "death_drops": "mon_mutant_experimental_death_drops",
+ "upgrades": { "half_life": 50, "into": "mon_mutant_evolved" },
+ "flags": [
+ "SEES",
+ "HEARS",
+ "SMELLS",
+ "KEENNOSE",
+ "WARM",
+ "BLEED",
+ "BASHES",
+ "PATH_AVOID_DANGER_2",
+ "REGENERATES_1",
+ "REGEN_MORALE"
+ ]
+ },
+ {
+ "id": "mon_mutant_evolved",
+ "type": "MONSTER",
+ "name": "evolved mutant",
+ "description": "A towering beast that is neither human nor animal anymore. A malformed, huge creature covered in thick fur and the torn bottom part of a jumpsuit. The sinister fangs, claws and the look of insanity in his pale yellow eyes are a testament to that he lost all of his humanity.",
+ "copy-from": "mon_mutant_experimental",
+ "volume": "875000 ml",
+ "weight": 200000,
+ "hp": 300,
+ "speed": 110,
+ "aggression": 100,
+ "morale": 60,
+ "melee_skill": 7,
+ "melee_dice": 4,
+ "melee_dice_sides": 8,
+ "melee_cut": 10,
+ "dodge": 5,
+ "armor_bash": 7,
+ "armor_cut": 7,
+ "vision_night": 15,
+ "harvest": "mammal_large_fur",
+ "special_attacks": [
+ [ "PARROT", 80 ],
+ [ "SMASH", 20 ],
+ { "type": "leap", "cooldown": 10, "max_range": 5 },
+ {
+ "type": "bite",
+ "cooldown": 10,
+ "damage_max_instance": [ { "damage_type": "stab", "amount": 18, "armor_multiplier": 0.7 } ]
+ },
+ { "id": "impale" }
+ ],
+ "death_drops": "mon_mutant_evolved_death_drops",
+ "flags": [
+ "SEES",
+ "HEARS",
+ "GOODHEARING",
+ "SMELLS",
+ "KEENNOSE",
+ "WARM",
+ "BLEED",
+ "BASHES",
+ "PATH_AVOID_DANGER_2",
+ "PUSH_MON",
+ "PUSH_VEH",
+ "REGENERATES_1",
+ "REGEN_MORALE"
+ ]
+ }
+]
diff --git a/data/json/monsters/zed_prisoner.json b/data/json/monsters/zed_prisoner.json
new file mode 100644
index 0000000000000..e314f2c80e509
--- /dev/null
+++ b/data/json/monsters/zed_prisoner.json
@@ -0,0 +1,14 @@
+[
+ {
+ "id": "mon_zombie_prisoner",
+ "type": "MONSTER",
+ "name": "prisoner zombie",
+ "description": "Apparently this zombie was doing time when the Cataclysm struck. It wears black and white striped prisoner clothes, and tattoos can be seen on his decaying skin.",
+ "copy-from": "mon_zombie",
+ "looks_like": "mon_zombie",
+ "hp": 90,
+ "color": "green",
+ "melee_dice_sides": 4,
+ "death_drops": "mon_zombie_prisoner_death_drops"
+ }
+]
diff --git a/data/json/mutations.json b/data/json/mutations.json
index 6812a1e822bb6..ab52e047d5a83 100644
--- a/data/json/mutations.json
+++ b/data/json/mutations.json
@@ -2188,14 +2188,59 @@
"type": "mutation",
"id": "LEAVES",
"name": "Leaves",
- "points": 6,
+ "points": 3,
"visibility": 8,
"ugliness": 3,
- "description": "All the hair on your body has turned to long, grass-like leaves. Apart from being physically striking, these provide you with a minor amount of nutrition while in sunlight. Slightly reduces wet effects.",
+ "description": "All the hair on your body has turned to long, grass-like leaves. Apart from being physically striking, these provide you with a minor amount of nutrition while in sunlight when your head is uncovered. Slightly reduces wet effects.",
"prereqs": [ "PLANTSKIN", "BARK" ],
+ "changes_to": [ "LEAVES2" ],
"category": [ "PLANT", "ELFA" ],
"wet_protection": [ { "part": "HEAD", "ignored": 1 } ]
},
+ {
+ "type": "mutation",
+ "id": "LEAVES2",
+ "name": "Lush Leaves",
+ "points": 6,
+ "visibility": 10,
+ "ugliness": 5,
+ "description": "Your leaves have grown in size and prominence, with additional leaves sprouting along your arms. While your arms and head are uncovered, you will photosynthesize additional nutrients while in sunlight. Reduces wet effects.",
+ "prereqs": [ "LEAVES" ],
+ "prereqs2": [ "TRANSPIRATION" ],
+ "threshreq": [ "THRESH_PLANT" ],
+ "changes_to": [ "LEAVES3" ],
+ "category": [ "PLANT" ],
+ "wet_protection": [ { "part": "HEAD", "ignored": 4 }, { "part": "ARM_L", "ignored": 5 }, { "part": "ARM_R", "ignored": 5 } ],
+ "encumbrance_covered": [ [ "ARM_L", 5 ], [ "ARM_R", 5 ] ]
+ },
+ {
+ "type": "mutation",
+ "id": "LEAVES3",
+ "name": "Verdant Leaves",
+ "points": 9,
+ "visibility": 12,
+ "ugliness": 6,
+ "description": "You leaves are vibrant, large, and green, and have become a major source of nutrition for your body. Whenever your arms and head are uncovered you will gain a large amount of nutrition by standing in the sunlight. Reduces wet effects.",
+ "prereqs": [ "LEAVES2" ],
+ "prereqs2": [ "TRANSPIRATION" ],
+ "threshreq": [ "THRESH_PLANT" ],
+ "category": [ "PLANT" ],
+ "wet_protection": [ { "part": "HEAD", "ignored": 5 }, { "part": "ARM_L", "ignored": 8 }, { "part": "ARM_R", "ignored": 8 } ],
+ "encumbrance_covered": [ [ "ARM_L", 10 ], [ "ARM_R", 10 ] ]
+ },
+ {
+ "type": "mutation",
+ "id": "TRANSPIRATION",
+ "name": "Transpiration",
+ "points": -5,
+ "visibility": 0,
+ "ugliness": 0,
+ "description": "You body has begun moving nutrients via the evaporation of water. This increases your thrist when it's hot, but reduces it when it's cold.",
+ "prereqs": [ "PLANTSKIN", "BARK" ],
+ "prereqs2": [ "LEAVES" ],
+ "threshreq": [ "THRESH_PLANT" ],
+ "category": [ "PLANT" ]
+ },
{
"type": "mutation",
"id": "FLOWERS",
@@ -5190,7 +5235,7 @@
"prereqs": [ "COLDBLOOD" ],
"changes_to": [ "COLDBLOOD3" ],
"types": [ "METABOLISM" ],
- "category": [ "RAPTOR" ],
+ "category": [ "RAPTOR", "PLANT" ],
"metabolism_modifier": -0.5
},
{
@@ -5214,10 +5259,10 @@
"mixed_effect": true,
"description": "Your body has become permanently cold-blooded. Your speed lowers--or raises--for every 2 (1.1) degrees below or above 65 F (18.3 C). You only need to eat half as much as an average human.",
"prereqs": [ "COLDBLOOD3" ],
- "threshreq": [ "THRESH_LIZARD" ],
+ "threshreq": [ "THRESH_LIZARD", "THRESH_PLANT" ],
"purifiable": false,
"types": [ "METABOLISM" ],
- "category": [ "LIZARD" ],
+ "category": [ "LIZARD", "PLANT" ],
"metabolism_modifier": -0.5
},
{
diff --git a/data/json/npcs/NC_EVAC_SHOPKEEP.json b/data/json/npcs/NC_EVAC_SHOPKEEP.json
deleted file mode 100644
index 85182c1efd3a8..0000000000000
--- a/data/json/npcs/NC_EVAC_SHOPKEEP.json
+++ /dev/null
@@ -1,153 +0,0 @@
-[
- {
- "type": "item_group",
- "id": "NC_EVAC_SHOPKEEP_storage",
- "items": [ [ "duffelbag", 100 ] ]
- },
- {
- "type": "item_group",
- "id": "NC_EVAC_SHOPKEEP_coat",
- "items": [ [ "trenchcoat", 80 ], [ "vest", 60 ] ]
- },
- {
- "type": "item_group",
- "id": "NC_EVAC_SHOPKEEP_misc",
- "items": [
- { "item": "FMCNote", "count-min": 50, "count-max": 300, "prob": 100 },
- [ "vest", 40 ],
- [ "kevlar", 15 ],
- [ "jacket_army", 30 ],
- [ "trenchcoat", 25 ],
- [ "trenchcoat_leather", 20 ],
- [ "trenchcoat_fur", 10 ],
- [ "vest_leather", 15 ],
- [ "football_armor", 30 ],
- [ "jacket_leather", 25 ],
- [ "jacket_jean", 15 ],
- [ "jacket_flannel", 15 ],
- [ "pants_cargo", 40 ],
- [ "shorts_cargo", 25 ],
- [ "pants_army", 30 ],
- [ "pants_leather", 15 ],
- [ "gloves_fingerless", 30 ],
- [ "gloves_tactical", 15 ],
- [ "gauntlets_larmor", 25 ],
- [ "gloves_fur", 5 ],
- [ "gloves_leather", 35 ],
- [ "gloves_work", 20 ],
- [ "boots", 20 ],
- [ "boots_steel", 20 ],
- [ "boots_hiking", 30 ],
- [ "knee_high_boots", 5 ],
- [ "boots_combat", 15 ],
- [ "boots_larmor", 10 ],
- [ "boots_fur", 10 ],
- [ "helmet_army", 25 ],
- [ "tac_helmet", 20 ],
- [ "helmet_riot", 20 ],
- [ "tac_fullhelmet", 10 ],
- [ "helmet_larmor", 15 ],
- [ "firehelmet", 5 ],
- [ "hood_rain", 15 ],
- [ "dive_bag", 10 ],
- [ "runner_bag", 20 ],
- [ "molle_pack", 10 ],
- [ "backpack", 40 ],
- [ "backpack_leather", 35 ],
- [ "mbag", 25 ],
- [ "slingpack", 15 ],
- [ "rucksack", 10 ],
- [ "duffelbag", 10 ],
- [ "mask_hockey", 15 ],
- [ "mask_gas", 25 ],
- [ "mask_filter", 20 ],
- [ "sunglasses", 15 ],
- [ "glasses_safety", 15 ],
- [ "goggles_ski", 5 ],
- [ "chestrig", 20 ],
- [ "legrig", 15 ],
- [ "tool_belt", 15 ],
- [ "fanny", 5 ],
- [ "dump_pouch", 5 ],
- [ "ragpouch", 15 ],
- [ "leather_pouch", 15 ],
- [ "quiver", 15 ],
- [ "quiver_large", 5 ],
- [ "wristwatch", 30 ],
- [ "diving_watch", 5 ],
- [ "pocketwatch", 10 ],
- [ "holster", 25 ],
- [ "bandana", 20 ],
- [ "scarf", 15 ],
- [ "hat_boonie", 20 ],
- [ "balclava", 10 ],
- [ "pickaxe", 20 ],
- [ "makeshift_machete", 15 ],
- [ "flamethrower_crude", 20 ],
- [ "fungicide", 20 ],
- [ "antifungal", 20 ],
- [ "antiparasitic", 20 ],
- [ "diazepam", 15 ],
- [ "small_repairkit", 20 ],
- [ "grapnel", 5 ],
- [ "misc_repairkit", 15 ],
- [ "flamethrower_simple", 15 ],
- [ "toolbox", 20 ],
- [ "crowbar", 25 ],
- [ "machete", 25 ],
- [ "ax", 25 ],
- [ "spear_knife", 30 ],
- [ "22_lr", 25 ],
- [ "22_fmj", 1 ],
- [ "223", 15 ],
- [ "308", 10 ],
- [ "3006", 10 ],
- [ "reloaded_9mm", 30 ],
- [ "9mm", 25 ],
- [ "9mmfmj", 5 ],
- [ "45_acp", 10 ],
- [ "reloaded_45_acp", 25 ],
- [ "45_jhp", 1 ],
- [ "rifle_9mm", 20 ],
- [ "rifle_22", 20 ],
- [ "uzi", 10 ],
- [ "mac_10", 10 ],
- [ "crossbow", 15 ],
- [ "sig_mosquito", 15 ],
- [ "sw_22", 15 ],
- [ "glock_19", 15 ],
- [ "usp_9mm", 10 ],
- [ "m9", 35 ],
- [ "cx4", 1 ],
- [ "usp_45", 10 ],
- [ "m1911", 10 ],
- [ "ar15", 10 ],
- [ "savage_111f", 5 ],
- [ "remington_700", 5 ],
- [ "ruger_1022", 10 ],
- [ "marlin_9a", 10 ],
- [ "remington_870", 10 ],
- [ "mossberg_500", 5 ],
- [ "shotgun_d", 5 ],
- [ "pipebomb", 10 ],
- [ "molotov", 10 ],
- [ "matchbomb", 10 ],
- [ "longbow", 5 ],
- [ "compositebow", 15 ],
- [ "shortbow", 10 ],
- [ "arrow_metal", 25 ],
- [ "bolt_steel", 10 ],
- [ "laser_sight", 15 ],
- [ "rail_laser_sight", 10 ],
- [ "rifle_scope", 20 ],
- [ "pistol_scope", 10 ],
- [ "improve_sights", 20 ],
- [ "combatsaw_off", 5 ],
- [ "firemachete_off", 5 ],
- [ "shishkebab_off", 5 ],
- [ "helsing", 5 ],
- [ "tihar", 5 ],
- [ "ashot", 5 ]
- ]
- }
-]
diff --git a/data/json/npcs/TALK_COMMON_OTHER.json b/data/json/npcs/TALK_COMMON_OTHER.json
index 4f44dbaddd292..2de46a56c0128 100644
--- a/data/json/npcs/TALK_COMMON_OTHER.json
+++ b/data/json/npcs/TALK_COMMON_OTHER.json
@@ -364,6 +364,64 @@
{ "text": "Thanks, see you later!", "topic": "TALK_DONE" }
]
},
+ {
+ "id": "TALK_STOLE_ITEM",
+ "type": "talk_topic",
+ "dynamic_line": "You picked up something that does not belong to you...",
+ "responses": [
+ {
+ "text": "Okay, okay, this is all a misunderstanding. Sorry, I'll drop it now.",
+ "topic": "TALK_DONE",
+ "effect": "drop_stolen_item",
+ "condition": "u_has_stolen_item"
+ },
+ {
+ "text": "No, I'm keeping it. Try and take it off me, I dare you.",
+ "condition": "u_has_stolen_item",
+ "trial": { "type": "INTIMIDATE", "difficulty": 30, "mod": [ [ "FEAR", 8 ], [ "VALUE", 2 ], [ "TRUST", 2 ], [ "BRAVERY", -2 ] ] },
+ "success": { "topic": "TALK_KEEPING_ITEM", "effect": { "u_faction_rep": -2 } },
+ "failure": { "topic": "TALK_DONE", "effect": [ "hostile", { "u_faction_rep": -75 } ] }
+ },
+ {
+ "text": "Look, I really need this. Please let me have it.",
+ "condition": "u_has_stolen_item",
+ "trial": { "type": "PERSUADE", "difficulty": 20, "mod": [ [ "TRUST", 3 ], [ "VALUE", 3 ], [ "ANGER", -3 ] ] },
+ "success": { "topic": "TALK_ALLOW_KEEP_ITEM", "effect": { "u_faction_rep": -1 } },
+ "failure": { "topic": "TALK_DISALLOW_KEEP_ITEM", "opinion": { "trust": -3, "anger": 2 }, "effect": { "u_faction_rep": -15 } }
+ },
+ {
+ "text": "What, this? It's not the same one, you are mistaken.",
+ "condition": "u_has_stolen_item",
+ "trial": { "type": "LIE", "difficulty": 25, "mod": [ [ "TRUST", 3 ] ] },
+ "success": { "topic": "TALK_DONE", "effect": "remove_stolen_status" },
+ "failure": { "topic": "TALK_DISALLOW_KEEP_ITEM", "opinion": { "trust": -3, "value": -1, "anger": 2 } }
+ },
+ {
+ "text": "I'm sorry. Look, I already dropped it, okay?",
+ "topic": "TALK_DONE",
+ "effect": [ "remove_stolen_status", { "u_faction_rep": -5 } ],
+ "condition": { "not": "u_has_stolen_item" }
+ }
+ ]
+ },
+ {
+ "id": "TALK_DISALLOW_KEEP_ITEM",
+ "type": "talk_topic",
+ "dynamic_line": "Don't try and talk yourself out of this, drop it now.",
+ "responses": [ { "text": "Okay, I'm dropping it...", "effect": "drop_stolen_item", "topic": "TALK_DONE" } ]
+ },
+ {
+ "id": "TALK_ALLOW_KEEP_ITEM",
+ "type": "talk_topic",
+ "dynamic_line": "Just this once, you can keep it. Don't tell anyone else.",
+ "responses": [ { "text": "Thanks.", "topic": "TALK_DONE", "effect": "remove_stolen_status" } ]
+ },
+ {
+ "id": "TALK_KEEPING_ITEM",
+ "type": "talk_topic",
+ "dynamic_line": "Right... I don't want any trouble.",
+ "responses": [ { "text": "Smart choice.", "topic": "TALK_DONE", "effect": "remove_stolen_status" } ]
+ },
{
"id": "TALK_DENY_EQUIPMENT",
"type": "talk_topic",
diff --git a/data/json/npcs/TALK_EVAC_MERCHANT.json b/data/json/npcs/TALK_EVAC_MERCHANT.json
deleted file mode 100644
index 7c94d686b25bf..0000000000000
--- a/data/json/npcs/TALK_EVAC_MERCHANT.json
+++ /dev/null
@@ -1,107 +0,0 @@
-[
- {
- "id": "TALK_EVAC_MERCHANT",
- "type": "talk_topic",
- "dynamic_line": { "u_is_wearing": "badge_marshal", "yes": "Welcome marshal...", "no": "Welcome..." },
- "responses": [
- { "text": "I'm actually new...", "topic": "TALK_EVAC_MERCHANT_NEW" },
- { "text": "What are you doing here?", "topic": "TALK_EVAC_MERCHANT_PLANS" },
- { "text": "Heard anything about the outside world?", "topic": "TALK_EVAC_MERCHANT_WORLD" },
- { "text": "Is there any way I can join your group?", "topic": "TALK_EVAC_MERCHANT_ASK_JOIN" },
- { "text": "Can I do anything for the center?", "topic": "TALK_MISSION_LIST" },
- { "text": "Let's trade then.", "effect": "start_trade", "topic": "TALK_EVAC_MERCHANT" },
- {
- "text": "I figured you might be looking for some help...",
- "topic": "TALK_NONE",
- "effect": { "companion_mission": "REFUGEE_MERCHANT" },
- "condition": { "u_has_any_trait": [ "NPC_MISSION_LEV_1" ] }
- },
- { "text": "Well, bye.", "topic": "TALK_DONE" }
- ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_NEW",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "No rest for the weary...", "topic": "TALK_EVAC_MERCHANT" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_PLANS",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "It's just as bad out here, if not worse.", "topic": "TALK_EVAC_MERCHANT_PLANS2" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_PLANS2",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "Guess shit's a mess everywhere...", "topic": "TALK_EVAC_MERCHANT" },
- {
- "text": "[INT 12] Wait, six buses and refugees... how many people do you still have crammed in here?",
- "topic": "TALK_EVAC_MERCHANT_PLANS3",
- "condition": { "u_has_intelligence": 12 }
- }
- ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_PLANS3",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Guess it works for you...", "topic": "TALK_EVAC_MERCHANT" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_HORDES",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Thanks for the tip.", "topic": "TALK_EVAC_MERCHANT" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_PRIME_LOOT",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Thanks, I'll keep an eye out.", "topic": "TALK_EVAC_MERCHANT" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_NO",
- "type": "talk_topic",
- "dynamic_line": "I'm sorry, not a risk we are willing to take right now.",
- "responses": [ { "text": "Fine...", "topic": "TALK_EVAC_MERCHANT" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_HELL_NO",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Fine... *coughupyourscough*", "topic": "TALK_EVAC_MERCHANT" } ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_ASK_JOIN",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "I'm sure I can do something to change your mind *wink*", "topic": "TALK_EVAC_MERCHANT_HELL_NO" },
- { "text": "I can pull my own weight!", "topic": "TALK_EVAC_MERCHANT_NO" },
- {
- "text": "[INT 11] I'm sure I can organize salvage operations to increase the bounty scavengers bring in!",
- "topic": "TALK_EVAC_MERCHANT_NO",
- "condition": { "u_has_intelligence": 11 }
- },
- {
- "text": "[STR 11] I punch things in face real good!",
- "topic": "TALK_EVAC_MERCHANT_NO",
- "condition": { "and": [ { "not": { "u_has_intelligence": 7 } }, { "u_has_strength": 11 } ] }
- },
- { "text": "I guess I'll look somewhere else...", "topic": "TALK_EVAC_MERCHANT" }
- ]
- },
- {
- "id": "TALK_EVAC_MERCHANT_WORLD",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "Hordes?", "topic": "TALK_EVAC_MERCHANT_HORDES" },
- { "text": "Heard of anything better than the odd gun cache?", "topic": "TALK_EVAC_MERCHANT_PRIME_LOOT" },
- { "text": "Was hoping for something more...", "topic": "TALK_EVAC_MERCHANT" }
- ]
- }
-]
diff --git a/data/json/npcs/TALK_FACTION_CAMP.json b/data/json/npcs/TALK_FACTION_CAMP.json
index 04c16dafd91c7..d7ba87691a5c2 100644
--- a/data/json/npcs/TALK_FACTION_CAMP.json
+++ b/data/json/npcs/TALK_FACTION_CAMP.json
@@ -109,7 +109,7 @@
{
"id": "TALK_CAMP_TUTORIAL_CHANGES",
"type": "talk_topic",
- "dynamic_line": "\n1. Faction camps used to require a second NPC to act as overseer and camp manager, but that's been replaced by the bulletin board and two-way radio. \n2. It used to be impossible to upgrade faction camps if there was a vehicle, even a cart, on the same map. You can now upgrade camps even if there is a vehicle on the map, as long as the upgrade doesn't change the area under the vehicle. \n3. Faction camps used to upgrade by completely redrawing the map. Damage to the camp would be replaced when the camp was upgraded. Now upgrades only change the actual area being upgraded, and you will have to repair damage to the camp yourself.",
+ "dynamic_line": "\n1. Faction camps used to require a second NPC to act as overseer and camp manager, but that's been replaced by the bulletin board and two-way radio.\n2. It used to be impossible to upgrade faction camps if there was a vehicle, even a cart, on the same map. You can now upgrade camps even if there is a vehicle on the map, as long as the upgrade doesn't change the area under the vehicle.\n3. Faction camps used to upgrade by completely redrawing the map. Damage to the camp would be replaced when the camp was upgraded. Now upgrades only change the actual area being upgraded, and you will have to repair damage to the camp yourself.\n4. There used to be a single path for upgrading the main camp. Now, after you have completed the first tent, you will have many options for your next upgrade, and you can have different companions working on different upgrades of the main camp at the same time.",
"responses": [
{ "text": "Thanks, let's go back to talking about camps.", "topic": "TALK_NONE" },
{ "text": "Never mind, let's talk about something else.", "topic": "TALK_FRIEND" },
diff --git a/data/json/npcs/TALK_OLD_GUARD_REP.json b/data/json/npcs/TALK_OLD_GUARD_REP.json
deleted file mode 100644
index 8e18d8bcbcfb0..0000000000000
--- a/data/json/npcs/TALK_OLD_GUARD_REP.json
+++ /dev/null
@@ -1,68 +0,0 @@
-[
- {
- "id": "TALK_OLD_GUARD_REP",
- "type": "talk_topic",
- "dynamic_line": { "u_has_any_trait": [ "PROF_FED" ], "yes": "Marshal...", "no": "Citizen..." },
- "responses": [
- { "text": "Who are you?", "topic": "TALK_OLD_GUARD_REP_NEW" },
- { "text": "Heard anything about the outside world?", "topic": "TALK_OLD_GUARD_REP_WORLD" },
- { "text": "Is there any way I can join the 'Old Guard'?", "topic": "TALK_OLD_GUARD_REP_ASK_JOIN" },
- { "text": "Does the Old Guard need anything?", "topic": "TALK_MISSION_LIST" },
- { "text": "Well, bye.", "topic": "TALK_DONE" }
- ],
- "//": "TODO: The rep should know whether you're actually a sworn officer: Wearing the badge without the trait => Bad idea"
- },
- {
- "id": "TALK_OLD_GUARD_REP_NEW",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "So what are you actually doing here?", "topic": "TALK_OLD_GUARD_REP_NEW_DOING" },
- { "text": "Never mind...", "topic": "TALK_OLD_GUARD_REP" }
- ]
- },
- {
- "id": "TALK_OLD_GUARD_REP_NEW_DOING",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "Is there a catch?", "topic": "TALK_OLD_GUARD_REP_NEW_DOWNSIDE" },
- { "text": "Anything more to it?", "topic": "TALK_OLD_GUARD_REP_NEW_DOWNSIDE" },
- { "text": "Never mind...", "topic": "TALK_OLD_GUARD_REP" }
- ]
- },
- {
- "id": "TALK_OLD_GUARD_REP_NEW_DOWNSIDE",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
- },
- {
- "id": "TALK_OLD_GUARD_REP_WORLD",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "The 2nd Fleet?", "topic": "TALK_OLD_GUARD_REP_WORLD_2NDFLEET" },
- { "text": "Tell me about the footholds.", "topic": "TALK_OLD_GUARD_REP_WORLD_FOOTHOLDS" },
- { "text": "Never mind...", "topic": "TALK_OLD_GUARD_REP" }
- ]
- },
- {
- "id": "TALK_OLD_GUARD_REP_WORLD_2NDFLEET",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
- },
- {
- "id": "TALK_OLD_GUARD_REP_WORLD_FOOTHOLDS",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
- },
- {
- "id": "TALK_OLD_GUARD_REP_ASK_JOIN",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
- }
-]
diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_1.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_1.json
deleted file mode 100644
index e0be2d5afc0ff..0000000000000
--- a/data/json/npcs/TALK_REFUGEE_BEGGAR_1.json
+++ /dev/null
@@ -1,57 +0,0 @@
-[
- {
- "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_3.json b/data/json/npcs/TALK_REFUGEE_BEGGAR_3.json
deleted file mode 100644
index 9984749be1e87..0000000000000
--- a/data/json/npcs/TALK_REFUGEE_BEGGAR_3.json
+++ /dev/null
@@ -1,27 +0,0 @@
-[
- {
- "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_REFUGE_RANCH.json b/data/json/npcs/TALK_REFUGE_RANCH.json
deleted file mode 100644
index 54043ff769b94..0000000000000
--- a/data/json/npcs/TALK_REFUGE_RANCH.json
+++ /dev/null
@@ -1,493 +0,0 @@
-[
- {
- "id": "TALK_RANCH_FOREMAN",
- "type": "talk_topic",
- "dynamic_line": {
- "u_is_wearing": "badge_marshal",
- "yes": "Can I help you, marshal?",
- "no": { "u_male": true, "yes": "Morning sir, how can I help you?", "no": "Morning ma'am, how can I help you?" }
- },
- "responses": [
- {
- "text": "[MISSION] The merchant at the Refugee Center sent me to get a prospectus from you.",
- "topic": "TALK_RANCH_FOREMAN_PROSPECTUS",
- "condition": { "and": [ { "u_has_mission": "MISSION_FREE_MERCHANTS_EVAC_3" }, { "not": { "u_has_effect": "has_prospectus" } } ] }
- },
- { "text": "I heard you were setting up an outpost out here.", "topic": "TALK_RANCH_FOREMAN_OUTPOST" },
- { "text": "What's your job here?", "topic": "TALK_RANCH_FOREMAN_JOB" },
- { "text": "What do you need done?", "topic": "TALK_MISSION_LIST" },
- {
- "text": "I figured you might be looking for some help...",
- "topic": "TALK_RANCH_FOREMAN",
- "effect": { "companion_mission": "FOREMAN" }
- },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "id": "TALK_RANCH_FOREMAN_PROSPECTUS",
- "type": "talk_topic",
- "dynamic_line": "I was starting to wonder if they were really interested in the project or were just trying to get rid of me.",
- "responses": [
- {
- "text": "Thanks.",
- "topic": "TALK_RANCH_FOREMAN",
- "effect": [ { "u_buy_item": "commune_prospectus" }, { "u_add_effect": "has_prospectus", "duration": "PERMANENT" } ]
- }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FOREMAN_OUTPOST",
- "dynamic_line": "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. ",
- "responses": [ { "text": "How many refugees are you expecting?", "topic": "TALK_RANCH_FOREMAN_REFUGEES" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FOREMAN_REFUGEES",
- "dynamic_line": "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.",
- "responses": [ { "text": "Hopefully moving out here was worth it...", "topic": "TALK_RANCH_FOREMAN" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FOREMAN_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "I'll keep that in mind.", "topic": "TALK_RANCH_FOREMAN" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_CONSTRUCTION_1",
- "dynamic_line": "My partner is in charge of fortifying this place, you should ask him about what needs to be done.",
- "responses": [ { "text": "I'll talk to him then...", "topic": "TALK_DONE" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_CONSTRUCTION_2",
- "dynamic_line": "Howdy.",
- "responses": [
- { "text": "What are you doing here?", "topic": "TALK_RANCH_CONSTRUCTION_2_JOB" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_CONSTRUCTION_2_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "I see.", "topic": "TALK_RANCH_CONSTRUCTION_2" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_WOODCUTTER",
- "dynamic_line": "You need something?",
- "responses": [
- { "text": "What are you doing here?", "topic": "TALK_RANCH_WOODCUTTER_JOB" },
- { "text": "I'd like to hire your services.", "topic": "TALK_RANCH_WOODCUTTER_HIRE" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_WOODCUTTER_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "Oh.", "topic": "TALK_RANCH_WOODCUTTER" } ]
- },
- {
- "id": "TALK_RANCH_WOODCUTTER_HIRE",
- "type": "talk_topic",
- "dynamic_line": {
- "npc_has_effect": "currently_busy",
- "yes": "Come back later, I need to take care of a few things first.",
- "no": "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."
- },
- "responses": [
- {
- "text": "[$2000, 1d] 10 logs",
- "topic": "TALK_DONE",
- "effect": [ "buy_10_logs", { "u_spend_cash": 200000 } ],
- "condition": { "npc_service": 200000 }
- },
- {
- "text": "[$12000, 7d] 100 logs",
- "topic": "TALK_DONE",
- "effect": [ "buy_100_logs", { "u_spend_cash": 1200000 } ],
- "condition": { "npc_service": 1200000 }
- },
- { "text": "Maybe later.", "topic": "TALK_RANCH_WOODCUTTER", "condition": "npc_available" },
- { "text": "I'll be back later.", "topic": "TALK_RANCH_WOODCUTTER" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_WOODCUTTER_2",
- "dynamic_line": "Don't have much time to talk.",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_WOODCUTTER_2_JOB" },
- { "text": "Do you need any help?", "topic": "TALK_RANCH_WOODCUTTER_2_HIRE" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_WOODCUTTER_2_JOB",
- "dynamic_line": "I turn the logs that laborers bring in into lumber to expand the outpost. Maintaining the saw is a chore but breaks the monotony.",
- "responses": [ { "text": "...", "topic": "TALK_RANCH_WOODCUTTER_2" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_WOODCUTTER_2_HIRE",
- "dynamic_line": "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.",
- "responses": [ { "text": "Oh.", "topic": "TALK_RANCH_WOODCUTTER_2" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FARMER_1",
- "dynamic_line": "...",
- "responses": [
- { "text": "What are you doing here?", "topic": "TALK_RANCH_FARMER_1_JOB" },
- { "text": "I'd like to hire your services.", "topic": "TALK_RANCH_FARMER_1_HIRE" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FARMER_1_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "...", "topic": "TALK_RANCH_FARMER_1" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FARMER_1_HIRE",
- "dynamic_line": "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.",
- "responses": [ { "text": "Oh.", "topic": "TALK_RANCH_FARMER_1" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FARMER_2",
- "dynamic_line": "You mind?",
- "responses": [
- { "text": "What are you doing here?", "topic": "TALK_RANCH_FARMER_2_JOB" },
- { "text": "I'd like to hire your services.", "topic": "TALK_RANCH_FARMER_2_HIRE" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FARMER_2_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "It could be worse...", "topic": "TALK_RANCH_FARMER_2" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_FARMER_2_HIRE",
- "dynamic_line": "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.",
- "responses": [ { "text": "I'll talk with them then...", "topic": "TALK_RANCH_FARMER_2" } ]
- },
- {
- "id": "TALK_RANCH_CROP_OVERSEER",
- "type": "talk_topic",
- "dynamic_line": "I hope you are here to do business.",
- "responses": [
- { "text": "What are you doing here?", "topic": "TALK_RANCH_CROP_OVERSEER_JOB" },
- {
- "text": "I'm interested in investing in agriculture...",
- "topic": "TALK_RANCH_CROP_OVERSEER",
- "effect": { "companion_mission": "COMMUNE CROPS" }
- },
- { "text": "What do you need done?", "topic": "TALK_MISSION_LIST" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_CROP_OVERSEER_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "I'll keep that in mind.", "topic": "TALK_RANCH_CROP_OVERSEER" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_ILL_1",
- "dynamic_line": "Please leave me alone...",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_ILL_1_JOB" },
- { "text": "Do you need any help?", "topic": "TALK_RANCH_ILL_1_HIRE" },
- { "text": "What's wrong?", "topic": "TALK_RANCH_ILL_1_SICK" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_ILL_1_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "That's sad.", "topic": "TALK_RANCH_ILL_1" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_ILL_1_HIRE",
- "dynamic_line": "I don't know what you could do. I've tried everything. Just give me time...",
- "responses": [ { "text": "OK.", "topic": "TALK_RANCH_ILL_1" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_ILL_1_SICK",
- "dynamic_line": "I keep getting sick! At first I thought it was something I ate but now it seems like I can't keep anything down...",
- "responses": [ { "text": "Uhm.", "topic": "TALK_RANCH_ILL_1" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_NURSE",
- "dynamic_line": "How can I help you?",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_NURSE_JOB" },
- { "text": "Do you need any help?", "topic": "TALK_RANCH_NURSE_HIRE" },
- { "text": "I could use your medical assistance.", "topic": "TALK_RANCH_NURSE_AID" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_NURSE_JOB",
- "dynamic_line": "I was a practicing nurse so I've taken over the medical responsibilities of the outpost till we can locate a physician.",
- "responses": [ { "text": "OK.", "topic": "TALK_RANCH_NURSE" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_NURSE_HIRE",
- "dynamic_line": "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.",
- "repeat_responses": {
- "for_item": [
- "1st_aid",
- "antibiotics",
- "aspirin",
- "bandages",
- "bfipowder",
- "chem_hydrogen_peroxide",
- "codeine",
- "dayquil",
- "disinfectant",
- "flu_shot",
- "morphine",
- "nyquil",
- "oxycodone",
- "poppy_pain",
- "poppysyrup",
- "quikclot",
- "thyme_oil",
- "tramadol",
- "vaccine_shot",
- "weak_antibiotic",
- "cattail_jelly"
- ],
- "response": { "text": "Delivering .", "topic": "TALK_DELIVER_ASK" }
- },
- "responses": [
- { "text": "What kind of jobs do you have for me?", "topic": "TALK_MISSION_LIST" },
- { "text": "Not now.", "topic": "TALK_RANCH_NURSE" }
- ]
- },
- {
- "id": "TALK_RANCH_NURSE_AID",
- "type": "talk_topic",
- "dynamic_line": {
- "npc_has_effect": "currently_busy",
- "yes": "Come back later, I need to take care of a few things first.",
- "no": "I can take a look at you or your companions if you are injured."
- },
- "responses": [
- {
- "text": "[$200, 30m] I need you to patch me up.",
- "topic": "TALK_RANCH_NURSE_AID_DONE",
- "effect": [ "give_aid", { "u_spend_cash": 20000 } ],
- "condition": { "npc_service": 20000 }
- },
- {
- "text": "[$500, 1h] I need you to patch me up.",
- "topic": "TALK_RANCH_NURSE_AID_DONE",
- "effect": [ "give_all_aid", { "u_spend_cash": 50000 } ],
- "condition": { "npc_service": 50000 }
- },
- { "text": "I should be fine.", "topic": "TALK_RANCH_NURSE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_NURSE_AID_DONE",
- "dynamic_line": "That's the best I can do on short notice.",
- "responses": [ { "text": "...", "topic": "TALK_DONE" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_DOCTOR",
- "dynamic_line": "I'm sorry, I don't have time to see you at the moment.",
- "responses": [
- { "text": "For the right price could I borrow your services?", "topic": "TALK_RANCH_DOCTOR_BIONICS" },
- { "text": "...", "topic": "TALK_DONE" }
- ]
- },
- {
- "id": "TALK_RANCH_DOCTOR_BIONICS",
- "type": "talk_topic",
- "dynamic_line": "I imagine we might be able to work something out.",
- "responses": [
- {
- "text": "I was wondering if you could install a cybernetic implant...",
- "topic": "TALK_DONE",
- "effect": "bionic_install"
- },
- { "text": "I need help removing an implant...", "topic": "TALK_DONE", "effect": "bionic_remove" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_SCRAPPER",
- "dynamic_line": "Don't mind me.",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_SCRAPPER_JOB" },
- { "text": "Do you need any help?", "topic": "TALK_RANCH_SCRAPPER_HIRE" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_SCRAPPER_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "Interesting.", "topic": "TALK_RANCH_SCRAPPER" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_SCRAPPER_HIRE",
- "dynamic_line": "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.",
- "responses": [ { "text": "OK.", "topic": "TALK_RANCH_SCRAPPER" } ]
- },
- {
- "id": "TALK_RANCH_SCAVENGER_1",
- "type": "talk_topic",
- "dynamic_line": "Welcome to the junk shop.",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_SCAVENGER_1_JOB" },
- { "text": "Do you need any help?", "topic": "TALK_RANCH_SCAVENGER_1_HIRE" },
- { "text": "Let's see what you've managed to find.", "topic": "TALK_RANCH_SCAVENGER_1", "effect": "start_trade" },
- { "text": "I've got to go...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_SCAVENGER_1_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "I'll think about it.", "topic": "TALK_RANCH_SCAVENGER_1" } ]
- },
- {
- "id": "TALK_RANCH_SCAVENGER_1_HIRE",
- "type": "talk_topic",
- "dynamic_line": "Are you interested in the scavenging runs or one of the other tasks that I might have for you?",
- "responses": [
- {
- "text": "Tell me more about the scavenging runs.",
- "topic": "TALK_RANCH_SCAVENGER_1",
- "effect": { "companion_mission": "SCAVENGER" }
- },
- { "text": "What kind of tasks do you have for me?", "topic": "TALK_MISSION_LIST" },
- { "text": "No, thanks.", "topic": "TALK_RANCH_SCAVENGER_1" }
- ]
- },
- {
- "id": "TALK_RANCH_BARKEEP",
- "type": "talk_topic",
- "dynamic_line": "Want a drink?",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_BARKEEP_JOB" },
- { "text": "I'm looking for information.", "topic": "TALK_RANCH_BARKEEP_INFORMATION" },
- { "text": "Do you need any help?", "topic": "TALK_MISSION_LIST" },
- {
- "text": "Let me see what you keep behind the counter.",
- "topic": "TALK_RANCH_BARKEEP",
- "effect": "start_trade"
- },
- { "text": "What do you have on tap?", "topic": "TALK_RANCH_BARKEEP_TAP" },
- { "text": "I'll be going...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_BARKEEP_JOB",
- "dynamic_line": "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.",
- "responses": [ { "text": "I see.", "topic": "TALK_RANCH_BARKEEP" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_BARKEEP_INFORMATION",
- "dynamic_line": "We have a policy of keeping information to ourselves. Ask the patrons if you want to hear rumors or news.",
- "responses": [ { "text": "Thanks for nothing.", "topic": "TALK_RANCH_BARKEEP" } ]
- },
- {
- "id": "TALK_RANCH_BARKEEP_TAP",
- "type": "talk_topic",
- "dynamic_line": "Our selection is a bit limited at the moment.",
- "responses": [
- {
- "text": "[$8] I'll take a beer",
- "topic": "TALK_DONE",
- "condition": { "u_has_cash": 800 },
- "effect": { "u_buy_item": "beer", "container": "bottle_glass", "count": 2, "cost": 800 }
- },
- {
- "text": "[$10] I'll take a shot of brandy",
- "topic": "TALK_DONE",
- "condition": { "u_has_cash": 1000 },
- "effect": { "u_buy_item": "beer", "container": "bottle_glass", "cost": 1000 }
- },
- {
- "text": "[$10] I'll take a shot of rum",
- "topic": "TALK_DONE",
- "condition": { "u_has_cash": 1000 },
- "effect": { "u_buy_item": "beer", "container": "bottle_glass", "cost": 1000 }
- },
- {
- "text": "[$12] I'll take a shot of whiskey",
- "topic": "TALK_DONE",
- "condition": { "u_has_cash": 1200 },
- "effect": { "u_buy_item": "beer", "container": "bottle_glass", "cost": 1200 }
- },
- { "text": "On second thought, don't bother.", "topic": "TALK_RANCH_BARKEEP" }
- ]
- },
- {
- "id": "TALK_RANCH_BARBER",
- "type": "talk_topic",
- "dynamic_line": "Can I interest you in a trim?",
- "responses": [
- { "text": "What is your job here?", "topic": "TALK_RANCH_BARBER_JOB" },
- { "text": "Do you need any help?", "topic": "TALK_RANCH_BARBER_HIRE" },
- {
- "text": "[$5] I'll have a shave",
- "topic": "TALK_RANCH_BARBER_CUT",
- "effect": [ "buy_shave", { "u_spend_cash": 500 } ],
- "condition": { "npc_service": 500 }
- },
- {
- "text": "[$10] I'll get a haircut",
- "topic": "TALK_RANCH_BARBER_CUT",
- "effect": [ "buy_haircut", { "u_spend_cash": 1000 } ],
- "condition": { "npc_service": 1000 }
- },
- { "text": "Maybe another time...", "topic": "TALK_DONE" }
- ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_BARBER_JOB",
- "dynamic_line": "What? I'm a barber... I cut hair. There's demand for cheap cuts and a shave out here.",
- "responses": [ { "text": "Sorry.", "topic": "TALK_RANCH_BARBER" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_BARBER_HIRE",
- "dynamic_line": "I can't imagine what I'd need your assistance with.",
- "responses": [ { "text": "Fine.", "topic": "TALK_RANCH_BARBER" } ]
- },
- {
- "type": "talk_topic",
- "id": "TALK_RANCH_BARBER_CUT",
- "dynamic_line": "Stand still while I get my clippers...",
- "responses": [ { "text": "Thanks...", "topic": "TALK_DONE" } ]
- }
-]
diff --git a/data/json/npcs/TALK_SCAVENGER_MERC.json b/data/json/npcs/TALK_SCAVENGER_MERC.json
deleted file mode 100644
index f063d49662e61..0000000000000
--- a/data/json/npcs/TALK_SCAVENGER_MERC.json
+++ /dev/null
@@ -1,50 +0,0 @@
-[
- {
- "id": "TALK_SCAVENGER_MERC",
- "type": "talk_topic",
- "dynamic_line": { "u_is_wearing": "badge_marshal", "yes": "I haven't done anything wrong...", "no": "..." },
- "responses": [
- { "text": "Who are you?", "topic": "TALK_SCAVENGER_MERC_NEW" },
- { "text": "Any tips for surviving?", "topic": "TALK_SCAVENGER_MERC_TIPS" },
- { "text": "What would it cost to hire you?", "topic": "TALK_SCAVENGER_MERC_HIRE" },
- { "text": "Well, bye.", "topic": "TALK_DONE" }
- ]
- },
- {
- "id": "TALK_SCAVENGER_MERC_NEW",
- "type": "talk_topic",
- "dynamic_line": "I'm just a hired hand. Someone pays me and I do what needs to be done.",
- "responses": [ { "text": "...", "topic": "TALK_SCAVENGER_MERC" } ]
- },
- {
- "id": "TALK_SCAVENGER_MERC_TIPS",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "I suppose I should hire a party then?", "topic": "TALK_SCAVENGER_MERC" } ]
- },
- {
- "id": "TALK_SCAVENGER_MERC_HIRE",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "I might be back.", "topic": "TALK_SCAVENGER_MERC" },
- {
- "text": "[$8000] You have a deal.",
- "topic": "TALK_SCAVENGER_MERC_HIRE_SUCCESS",
- "condition": { "u_has_cash": 800000 },
- "effect": { "u_spend_cash": 800000 }
- }
- ]
- },
- {
- "id": "TALK_SCAVENGER_MERC_HIRE_SUCCESS",
- "type": "talk_topic",
- "dynamic_line": "I guess you're the boss.",
- "responses": [
- {
- "text": "Glad to have you aboard.",
- "success": { "effect": "follow", "opinion": { "trust": 1, "value": 1 }, "topic": "TALK_DONE" }
- }
- ]
- }
-]
diff --git a/data/json/npcs/TALK_SCIENCE_REP.json b/data/json/npcs/TALK_SCIENCE_REP.json
deleted file mode 100644
index df60de5e32b05..0000000000000
--- a/data/json/npcs/TALK_SCIENCE_REP.json
+++ /dev/null
@@ -1,50 +0,0 @@
-[
- {
- "id": "TALK_SCIENCE_REP",
- "type": "talk_topic",
- "dynamic_line": { "u_has_any_trait": [ "PROF_FED" ], "yes": "Marshal...", "no": "Citizen..." },
- "responses": [
- { "text": "Who are you?", "topic": "TALK_SCIENCE_REP_NEW" },
- { "text": "Heard anything about the outside world?", "topic": "TALK_SCIENCE_REP_WORLD" },
- { "text": "Can I trade for supplies?", "topic": "TALK_SCIENCE_REP_ASK_TRADE" },
- { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" },
- { "text": "Well, bye.", "topic": "TALK_DONE" }
- ]
- },
- {
- "id": "TALK_SCIENCE_REP_NEW",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "So what are you doing right now?", "topic": "TALK_SCIENCE_REP_NEW_DOING" },
- { "text": "Never mind...", "topic": "TALK_SCIENCE_REP" }
- ]
- },
- {
- "id": "TALK_SCIENCE_REP_NEW_DOING",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [
- { "text": "What kind of news?", "topic": "TALK_SCIENCE_REP_NEW_NEWS" },
- { "text": "Never mind...", "topic": "TALK_SCIENCE_REP" }
- ]
- },
- {
- "id": "TALK_SCIENCE_REP_NEW_NEWS",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Good luck with that...", "topic": "TALK_SCIENCE_REP" } ]
- },
- {
- "id": "TALK_SCIENCE_REP_WORLD",
- "type": "talk_topic",
- "dynamic_line": "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.",
- "responses": [ { "text": "Never mind...", "topic": "TALK_SCIENCE_REP" } ]
- },
- {
- "id": "TALK_SCIENCE_REP_ASK_TRADE",
- "type": "talk_topic",
- "dynamic_line": "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?",
- "responses": [ { "text": "...", "topic": "TALK_SCIENCE_REP" } ]
- }
-]
diff --git a/data/json/npcs/beggars/BEGGAR_1_Reena_Sandhu.json b/data/json/npcs/beggars/BEGGAR_1_Reena_Sandhu.json
new file mode 100644
index 0000000000000..2b3dff5b3c4e5
--- /dev/null
+++ b/data/json/npcs/beggars/BEGGAR_1_Reena_Sandhu.json
@@ -0,0 +1,339 @@
+[
+ {
+ "type": "effect_type",
+ "id": "beggar_has_eaten",
+ "name": [ "Full" ],
+ "desc": [ "This beggar in the refugee center has had something to eat recently." ]
+ },
+ {
+ "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": "lobby_beggars"
+ },
+ {
+ "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" },
+ { "group": "Appearance_demographics" }
+ ],
+ "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": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1",
+ "dynamic_line": {
+ "u_has_var": "reena_recruited",
+ "type": "general",
+ "context": "recruit",
+ "value": "yes",
+ "yes": {
+ "npc_has_effect": "beggar_has_eaten",
+ "yes": "So, any luck with convincing the others to come on your crazy adventure yet?",
+ "no": "I'm sorry to say it after all you've done for me, but... I don't suppose you've got anything to eat?"
+ },
+ "no": {
+ "npc_has_effect": "beggar_has_eaten",
+ "yes": "Thank you again. I really appreciate the food.",
+ "no": {
+ "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": "Hey, here, I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "text": "Get away from me.", "topic": "TALK_DONE", "opinion": { "trust": -1, "value": -1, "anger": 1 } },
+ { "text": "...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_INTRO",
+ "dynamic_line": {
+ "npc_has_effect": "beggar_has_eaten",
+ "yes": "They won't let me in. They say they're too full. I'm allowed to camp out here as long as I keep it clean and don't make a fuss, but I'm reduced to begging to survive.",
+ "no": "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 ?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ {
+ "condition": { "npc_has_effect": "beggar_has_eaten" },
+ "text": "I've got some more food, if you want it.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "condition": { "npc_has_effect": "beggar_has_eaten" }, "text": "I'd better get going.", "topic": "TALK_DONE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I'm sorry, I can't help you.",
+ "topic": "TALK_DONE"
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD",
+ "dynamic_line": "Thank you so much.",
+ "responses": [
+ {
+ "text": "Can I ask you something else first?",
+ "topic": "TALK_NONE",
+ "opinion": { "trust": [ -1, 0 ], "value": [ -1, 0 ] }
+ },
+ {
+ "text": "I'm sorry, I was wrong. I can't help you.",
+ "topic": "TALK_DONE",
+ "opinion": { "trust": [ -1, 0 ], "value": [ -1, 0 ] }
+ }
+ ],
+ "repeat_responses": [
+ {
+ "for_category": [ "food" ],
+ "response": {
+ "text": "Here, you can have this .",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GAVE_FOOD",
+ "opinion": { "trust": [ 0, 2 ], "value": [ 0, 2 ], "fear": [ -1, 0 ], "anger": [ -1, 0 ], "owed": 1 }
+ }
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_GAVE_FOOD",
+ "dynamic_line": "This is wonderful of you, I really appreciate it.",
+ "speaker_effect": [ { "effect": { "npc_add_effect": "beggar_has_eaten", "duration": 3600 } } ],
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_REFUGEE_BEGGAR_1_INTRO", "effect": "u_bulk_trade_accept" },
+ { "text": "No problem. See you around.", "topic": "TALK_DONE", "effect": "u_bulk_trade_accept" }
+ ]
+ },
+ {
+ "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 ?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" },
+ {
+ "condition": { "not": "u_has_camp" },
+ "text": "Come with me. Maybe you're not the greatest adventurer, but it's better than living here.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_JOIN"
+ },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "reena_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "I have a camp of my own, away from here. You could come there. There aren't many people left, we could use anyone regardless of skills.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_RECRUIT1"
+ },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "condition": { "npc_has_effect": "beggar_has_eaten" }, "text": "I'd better get going.", "topic": "TALK_DONE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "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 ?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" },
+ {
+ "condition": { "not": "u_has_camp" },
+ "text": "Come with me. Maybe you're not the greatest adventurer, but it's better than living here.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_JOIN"
+ },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "reena_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "I have a camp of my own, away from here. Maybe you can't scavenge, but we can use any warm bodies that can lift a tool. You'd be safer and better fed there.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_RECRUIT1"
+ },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "condition": { "npc_has_effect": "beggar_has_eaten" }, "text": "I'd better get going.", "topic": "TALK_DONE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "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" },
+ {
+ "condition": { "not": "u_has_camp" },
+ "text": "Come with me. Maybe you're not the greatest adventurer, but it's better than living here.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_JOIN"
+ },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "reena_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "I have a camp of my own, away from here. Maybe they can't use your skills here, but I could.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_RECRUIT1"
+ },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "condition": { "npc_has_effect": "beggar_has_eaten" }, "text": "I'd better get going.", "topic": "TALK_DONE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I'm sorry, I can't help you.",
+ "topic": "TALK_DONE"
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_JOIN",
+ "dynamic_line": "That's a kind offer of you, but I think I'd rather take my chances here than risking it out there again. I remember , I'm not in any hurry to face that again.",
+ "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 ?", "topic": "TALK_REFUGEE_BEGGAR_1_EXPERTISE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "condition": { "npc_has_effect": "beggar_has_eaten" }, "text": "I'd better get going.", "topic": "TALK_DONE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I'm sorry, I can't help you.",
+ "topic": "TALK_DONE"
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_RECRUIT1",
+ "dynamic_line": {
+ "npc_has_effect": "beggar_has_eaten",
+ "yes": "That's quite the offer, but I don't think I'd survive the trip. I don't think you realize how useless I am in this world.",
+ "no": "I'm sorry, I'm too hungry to make a big decision like that."
+ },
+ "responses": [
+ {
+ "text": "I can keep you safe. I'll take you there myself.",
+ "condition": { "npc_has_effect": "beggar_has_eaten" },
+ "trial": {
+ "type": "PERSUADE",
+ "difficulty": 100,
+ "//": "This is a very difficult sell-job unless you've earned her trust with food",
+ "mod": [ [ "TRUST", 4 ], [ "VALUE", 2 ], [ "OWED", 3 ], [ "ANGER", -2 ], [ "FEAR", -6 ], [ "BRAVERY", 1 ] ]
+ },
+ "success": {
+ "topic": "TALK_REFUGEE_BEGGAR_1_RECRUIT2",
+ "effect": { "u_add_var": "reena_recruited", "type": "general", "context": "recruit", "value": "yes" }
+ },
+ "failure": { "topic": "TALK_REFUGEE_BEGGAR_1_RECRUIT_NO" }
+ },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Let me check.",
+ "topic": "TALK_REFUGEE_BEGGAR_1_GIVE_FOOD"
+ },
+ { "text": "Let's talk about something else then.", "topic": "TALK_NONE" },
+ { "condition": { "npc_has_effect": "beggar_has_eaten" }, "text": "I'd better get going.", "topic": "TALK_DONE" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I'm sorry, I can't help you.",
+ "topic": "TALK_DONE"
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_RECRUIT_NO",
+ "dynamic_line": "I really appreciate everything you've done for me, but I don't think you get it. I can't go out there. I will die. I know it's horrible camping out here, but I just can't face that nightmare again.",
+ "responses": [
+ { "text": "Let's talk about something else then.", "topic": "TALK_NONE" },
+ { "text": "I hope you'll reconsider eventually. Bye.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_1_RECRUIT2",
+ "dynamic_line": "Well... you have shown that you can survive out there, and you've been able to provide food, so I know you're thriving more than we are here. All right, I'll tell you what. I'm not going anywhere without my friends here, we've been through way too much together. If you can convince Luo, Brandon, and Yusuke to come along, then I'll go.",
+ "responses": [
+ { "text": "OK. For now let's talk about something else.", "topic": "TALK_NONE" },
+ { "text": "OK, I'll talk to them too.", "topic": "TALK_DONE" }
+ ]
+ }
+]
diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_2.json b/data/json/npcs/beggars/BEGGAR_2_Dino_Dave.json
similarity index 60%
rename from data/json/npcs/TALK_REFUGEE_BEGGAR_2.json
rename to data/json/npcs/beggars/BEGGAR_2_Dino_Dave.json
index 36c7af142eb46..2bbfe6094fd26 100644
--- a/data/json/npcs/TALK_REFUGEE_BEGGAR_2.json
+++ b/data/json/npcs/beggars/BEGGAR_2_Dino_Dave.json
@@ -1,4 +1,58 @@
[
+ {
+ "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": "lobby_beggars"
+ },
+ {
+ "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" },
+ { "group": "Appearance_demographics" }
+ ]
+ },
+ {
+ "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": "talk_topic",
"id": "TALK_REFUGEE_BEGGAR_2",
diff --git a/data/json/npcs/beggars/BEGGAR_3_Luo_Meizhen.json b/data/json/npcs/beggars/BEGGAR_3_Luo_Meizhen.json
new file mode 100644
index 0000000000000..fdc11d44667da
--- /dev/null
+++ b/data/json/npcs/beggars/BEGGAR_3_Luo_Meizhen.json
@@ -0,0 +1,511 @@
+[
+ {
+ "type": "effect_type",
+ "id": "insulted_luo",
+ "name": [ "Insulted" ],
+ "desc": [ "Oh, you went there." ]
+ },
+ {
+ "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": "lobby_beggars"
+ },
+ {
+ "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" },
+ { "group": "Appearance_demographics" }
+ ]
+ },
+ {
+ "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": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3",
+ "dynamic_line": {
+ "npc_has_effect": "insulted_luo",
+ "yes": "Fuck off, dickwaddle.",
+ "no": {
+ "u_has_var": "luo_recruited",
+ "type": "general",
+ "context": "recruit",
+ "value": "yes",
+ "yes": "Yo. Anyone else keen on moving from this bus stop to your tent city?",
+ "no": {
+ "npc_has_var": "dont_insult_luo",
+ "type": "general",
+ "context": "conversation",
+ "value": "yes",
+ "yes": {
+ "npc_has_var": "apology_luo",
+ "type": "general",
+ "context": "conversation",
+ "value": "yes",
+ "yes": {
+ "npc_has_effect": "beggar_has_eaten",
+ "yes": "Hey there. Good to see you again.",
+ "no": "Careful, I'm getting hangry again and am not totally responsible for my own actions."
+ },
+ "no": "Look, I'm sorry for freaking out earlier. You might be an asshole but I'm sure you didn't mean it like that. My blood sugar is hella low, I get a bit cranky. We cool?"
+ },
+ "no": {
+ "npc_has_effect": "beggar_has_eaten",
+ "yes": "Hey there, not-asshole. Good to see you again.",
+ "no": "Don't bother with these assholes."
+ }
+ }
+ }
+ },
+ "responses": [
+ {
+ "condition": { "and": [ { "not": { "npc_has_effect": "beggar_has_eaten" } }, { "not": { "npc_has_effect": "insulted_luo" } } ] },
+ "text": "What's up?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_COMPLAIN"
+ },
+ {
+ "condition": { "and": [ { "npc_has_effect": "beggar_has_eaten" }, { "not": { "npc_has_effect": "insulted_luo" } } ] },
+ "text": "What's up?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_INTRO"
+ },
+ {
+ "condition": { "and": [ { "not": { "npc_has_effect": "beggar_has_eaten" } }, { "not": { "npc_has_effect": "insulted_luo" } } ] },
+ "text": "I might have some food for you. Are you hungry?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_GIVE_FOOD"
+ },
+ {
+ "condition": {
+ "and": [
+ { "not": { "npc_has_effect": "apology_luo", "type": "general", "context": "conversation", "value": "yes" } },
+ { "npc_has_var": "dont_insult_luo", "type": "general", "context": "conversation", "value": "yes" },
+ { "not": { "npc_has_effect": "insulted_luo" } }
+ ]
+ },
+ "text": "We're cool. Sorry for insulting you earlier.",
+ "effect": { "npc_add_var": "apology_luo", "type": "general", "context": "conversation", "value": "yes" },
+ "topic": "TALK_REFUGEE_BEGGAR_3_APOLOGY"
+ },
+ {
+ "condition": {
+ "and": [
+ { "npc_has_var": "luo_mycus_mission", "type": "general", "context": "mission", "value": "yes" },
+ { "u_has_item": "veggy_tainted" },
+ { "not": { "npc_has_effect": "insulted_luo" } }
+ ]
+ },
+ "text": "I found a sample of alien fungus for you.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS4"
+ },
+ { "text": "Ok... see ya.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_GIVE_FOOD",
+ "dynamic_line": "Actually yeah, I'm always hungry these days. I don't like taking handouts, but I wouldn't say no.",
+ "responses": [
+ {
+ "text": "Actually can I ask you something else?",
+ "topic": "TALK_NONE",
+ "opinion": { "trust": [ -1, 0 ], "value": [ -1, 0 ] }
+ },
+ {
+ "text": "I'm sorry, I was wrong. I can't help you.",
+ "topic": "TALK_DONE",
+ "opinion": { "trust": [ -1, 0 ], "value": [ -1, 0 ] }
+ }
+ ],
+ "repeat_responses": [
+ {
+ "for_category": [ "food" ],
+ "response": {
+ "text": "Here, you can have this .",
+ "topic": "TALK_REFUGEE_BEGGAR_3_GAVE_FOOD",
+ "opinion": { "trust": [ 0, 1 ], "value": [ 0, 2 ], "fear": [ -1, 0 ], "anger": [ -1, 0 ], "owed": 1 }
+ }
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_GAVE_FOOD",
+ "dynamic_line": "Thanks, I really appreciate this.",
+ "speaker_effect": [ { "effect": { "npc_add_effect": "beggar_has_eaten", "duration": 3600 } } ],
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_REFUGEE_BEGGAR_3_INTRO", "effect": "u_bulk_trade_accept" },
+ { "text": "No problem. See you around.", "topic": "TALK_DONE", "effect": "u_bulk_trade_accept" }
+ ]
+ },
+ {
+ "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" },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "Well, they might not share, but I can. Are you hungry?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_GIVE_FOOD"
+ },
+ { "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": [
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "Well, they might not share, but I can. Are you hungry?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_GIVE_FOOD"
+ },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_INTRO",
+ "//": "The player shouldn't get to this dialogue without sharing some food first",
+ "dynamic_line": "Oh, same old story at first. I got evacuated on to the local concentration center, then picked up on a repurposed school bus and dragged out here. Then the chick processing me to get in saw my name and Chinese name and conveniently 'lost' my paperwork. I was sent out here to wait for further processing, while I watched busloads of people get processed and taken in. By the time they 'found' it, the place was full up, wouldn't ya know it. Now I'm stuck out here and they won't consider letting me in.",
+ "responses": [
+ { "text": "You think you were treated like that because of your race?", "topic": "TALK_REFUGEE_BEGGAR_3_RACISM" },
+ { "text": "Why stay out here then?", "topic": "TALK_REFUGEE_BEGGAR_3_WHYSTAY" },
+ { "text": "What did you do before ?", "topic": "TALK_REFUGEE_BEGGAR_3_EXPERTISE" },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "I have a camp of my own, away from here. No paperwork required. Want to come?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_RECRUIT1"
+ },
+ {
+ "condition": {
+ "and": [
+ { "npc_has_var": "luo_mycus_mission", "type": "general", "context": "mission", "value": "yes" },
+ { "u_has_item": "veggy_tainted" },
+ { "not": { "npc_has_effect": "insulted_luo" } }
+ ]
+ },
+ "text": "I found a sample of alien fungus for you.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS4"
+ },
+ { "text": "Ok... see ya.", "topic": "TALK_DONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_RACISM",
+ "dynamic_line": "Sure. My grandparents were from China. That means I'm obviously personally responsible for all this. Do you think there's some other reason they let hundreds of other educated people in and I'm sitting out here?",
+ "responses": [
+ {
+ "condition": { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } },
+ "text": "I don't care if you're Chinese. You can travel with me if you want.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_JOIN"
+ },
+ {
+ "condition": {
+ "and": [
+ { "u_has_perception": 9 },
+ { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } },
+ {
+ "not": { "npc_has_var": "dont_insult_luo", "type": "general", "context": "conversation", "value": "yes" }
+ }
+ ]
+ },
+ "text": "I mean, racism could definitely be a part of it... but you are visibly in poor shape. They need strong survivor material.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_INSULTED"
+ },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_JOIN",
+ "dynamic_line": "That's awful kind of you, but look at me. I'm not travelling material, I've managed to stay fifty pounds overweight on a diet of pine nuts and wilted rhubarb, and I scream and shake uncontrollably at the sight of blood.",
+ "responses": [
+ { "text": "Why stay out here then?", "topic": "TALK_REFUGEE_BEGGAR_3_WHYSTAY" },
+ { "text": "What did you do before ?", "topic": "TALK_REFUGEE_BEGGAR_3_EXPERTISE" },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "It'd be temporary. I have a base set up. There are only a few of us survivors left, we need to work together",
+ "topic": "TALK_REFUGEE_BEGGAR_3_RECRUIT1"
+ },
+ { "text": "Okay, yeah, that's a bit of a problem. What were you saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_WHYSTAY",
+ "dynamic_line": "It may not be much, but we've got a little community. We can't live like this forever, but we're safer than out there, and we look out for each other. One way or another we'll shake things out to something better.",
+ "responses": [
+ { "text": "You sound more optimistic than usual.", "topic": "TALK_REFUGEE_BEGGAR_3_WHYSTAY2" },
+ { "text": "What did you do before ?", "topic": "TALK_REFUGEE_BEGGAR_3_EXPERTISE" },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "It'd be temporary. I have a base set up. There are only a few of us survivors left, we need to work together",
+ "topic": "TALK_REFUGEE_BEGGAR_3_RECRUIT1"
+ },
+ {
+ "condition": {
+ "and": [
+ { "u_has_var": "luo_doctorate", "type": "general", "context": "conversation", "value": "yes" },
+ { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } }
+ ]
+ },
+ "text": "So, about that doctorate of yours...",
+ "topic": "TALK_REFUGEE_BEGGAR_3_DOCTORATE1"
+ },
+ { "text": "What were you saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_WHYSTAY2",
+ "dynamic_line": "Don't get me wrong, I hate this place and this situation, and especially the selfish racist fucks that landed me here... but these other losers that landed out here with me? I like them. We might be miserable, but we're miserable together.",
+ "responses": [
+ { "text": "What did you do before ?", "topic": "TALK_REFUGEE_BEGGAR_3_EXPERTISE" },
+ {
+ "condition": {
+ "and": [ "u_has_camp", { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } } ]
+ },
+ "text": "It'd be temporary. I have a base set up. There are only a few of us survivors left, we need to work together",
+ "topic": "TALK_REFUGEE_BEGGAR_3_RECRUIT1"
+ },
+ { "text": "What were you saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_INSULTED",
+ "dynamic_line": "Oooooh. Oh. You did not just fucking go there. Let's leave the fatties to die, hey? Wanna know how easy it is to find fucking *thyroid medication* after the apocalypse, asshat? Besides, there are more skills than heavy lifting needed now... no, you know what? Screw it. You're not worth my time.",
+ "speaker_effect": [
+ {
+ "effect": [
+ { "npc_add_effect": "insulted_luo", "duration": 28800 },
+ { "npc_add_var": "dont_insult_luo", "type": "general", "context": "conversation", "value": "yes" }
+ ]
+ }
+ ],
+ "responses": [ { "text": "...", "topic": "TALK_DONE" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_APOLOGY",
+ "dynamic_line": "Thanks for saying it. So, what brings you around?",
+ "responses": [
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "What's up?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_COMPLAIN"
+ },
+ {
+ "condition": { "npc_has_effect": "beggar_has_eaten" },
+ "text": "What's up?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_INTRO"
+ },
+ {
+ "condition": { "not": { "npc_has_effect": "beggar_has_eaten" } },
+ "text": "I might have some food for you. Are you hungry?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_GIVE_FOOD"
+ },
+ { "text": "Just wanted to get square. I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_RECRUIT1",
+ "dynamic_line": "Tempting offer, but I don't know how much I trust a random stranger offering me a place to live. Call me crazy.",
+ "responses": [
+ {
+ "text": "What better choice do you have? It's not like it would be just you and me, the others out here can come too.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_RECRUIT2"
+ },
+ {
+ "condition": {
+ "and": [
+ { "u_has_var": "luo_doctorate", "type": "general", "context": "conversation", "value": "yes" },
+ { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } }
+ ]
+ },
+ "text": "So, about that doctorate of yours...",
+ "topic": "TALK_REFUGEE_BEGGAR_3_DOCTORATE1"
+ },
+ { "text": "What did you do before ?", "topic": "TALK_REFUGEE_BEGGAR_3_EXPERTISE" },
+ { "text": "Let's talk about something else then.", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_RECRUIT2",
+ "dynamic_line": "Like I said, sorry, it's just not happening. It's not that I don't trust you, it's just that I don't really trust you.",
+ "responses": [
+ {
+ "condition": {
+ "and": [
+ { "u_has_var": "luo_doctorate", "type": "general", "context": "conversation", "value": "yes" },
+ { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } }
+ ]
+ },
+ "text": "So, about that doctorate of yours...",
+ "topic": "TALK_REFUGEE_BEGGAR_3_DOCTORATE1"
+ },
+ { "text": "What did you do before ?", "topic": "TALK_REFUGEE_BEGGAR_3_EXPERTISE" },
+ { "text": "Let's talk about something else then.", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_EXPERTISE",
+ "dynamic_line": "Well, before ended I was working at a university bookstore. I know a little bit about a lot of things, I guess you could say. I kinda loved the job, to be honest.",
+ "responses": [
+ {
+ "condition": {
+ "and": [
+ { "or": [ { "u_has_perception": 9 }, { "u_has_intelligence": 9 } ] },
+ { "not": { "u_has_var": "luo_doctorate", "type": "general", "context": "conversation", "value": "yes" } },
+ { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } }
+ ]
+ },
+ "text": "What had you working at the university bookstore in the first place? Are you an academic yourself?",
+ "effect": { "u_add_var": "luo_doctorate", "type": "general", "context": "conversation", "value": "yes" },
+ "topic": "TALK_REFUGEE_BEGGAR_3_DOCTORATE"
+ },
+ {
+ "condition": {
+ "and": [
+ { "u_has_var": "luo_doctorate", "type": "general", "context": "conversation", "value": "yes" },
+ { "not": { "u_has_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } }
+ ]
+ },
+ "text": "What's this I hear about you having a doctorate?",
+ "topic": "TALK_REFUGEE_BEGGAR_3_DOCTORATE1"
+ },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_DOCTORATE",
+ "dynamic_line": "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory tower, got my PhD in mycology. Did my dissertation on signalling pathways in hyphae formation, and a postdoc in plant-fungus communication in rhyzomes. Then I got the job at the bookstore because there wasn't a ton of work for a doctor of mycology, although I'd had a few nibbles before things really got crazy. Now, people are just breaking down my door to get my sweet sweet knowledge of mold to help them fight the incoming zombie threat.",
+ "responses": [
+ { "text": "Do you know about the fungal zombies though?", "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS1" },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_DOCTORATE1",
+ "dynamic_line": "Heh. Yeah, that was a great use of my time. As you can see it really helped my employment prospects. Yeah, I have a PhD in mycology. Did my dissertation on signalling pathways in hyphae formation, and a postdoc in plant-fungus communication in rhyzomes. Then I got the job at the bookstore because there wasn't a ton of work for a doctor of mycology, although I'd had a few nibbles before things really got crazy. Now, people are just breaking down my door to get my sweet sweet knowledge of mold to help them fight the incoming zombie threat.",
+ "responses": [
+ { "text": "Do you know about the fungal zombies though?", "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS1" },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_MYCUS1",
+ "dynamic_line": "No, no I don't, and I'd appreciate you not leaving me hanging on that. There are fungal zombies?",
+ "responses": [
+ {
+ "text": "Encroaching alien mushrooms, fungal towers, tough mycelium invading ground and trees, zombies taken over by aggressive mold... Yeah. It's ugly stuff.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS2"
+ },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_MYCUS2",
+ "dynamic_line": "Okay, you've got my attention. Listen, do you think you could bring me some kind of sample of these things?",
+ "responses": [
+ { "text": "It'd be dangerous, what's in it for me?", "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS3" },
+ { "text": "Sure, easy enough. What do you need?", "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS3" },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "I'd better get going.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_MYCUS3",
+ "dynamic_line": "If you get me a sample, I'll join your crazy camp expedition. Hell, if you bring me a sample maybe I'll help you set up a lab to study this stuff. Almost anything could work, but if this stuff is as dangerous as you make it sound, maybe make sure it's not a sporulating body.",
+ "speaker_effect": [ { "effect": { "npc_add_var": "luo_mycus_mission", "type": "general", "context": "mission", "value": "yes" } } ],
+ "responses": [
+ {
+ "condition": { "u_has_item": "veggy_tainted" },
+ "text": "It just so happens I have a chunk of fungal matter on me right now.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS4"
+ },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "Sure, I'd better get going. I'll see if I can find you something.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_REFUGEE_BEGGAR_3_MYCUS4",
+ "dynamic_line": "Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibres are clearly unlike anything I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps.",
+ "speaker_effect": [ { "effect": { "u_add_var": "luo_recruited", "type": "general", "context": "recruit", "value": "yes" } } ],
+ "responses": [
+ {
+ "condition": { "u_has_item": "veggy_tainted" },
+ "text": "It just so happens I have a chunk of fungal matter on me right now.",
+ "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS4"
+ },
+ { "text": "What was it you were saying before?", "topic": "TALK_NONE" },
+ { "text": "Sure, I'd better get going. I'll see if I can find you something.", "topic": "TALK_DONE" }
+ ]
+ }
+]
diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_4.json b/data/json/npcs/beggars/BEGGAR_4_Brandon_Garder.json
similarity index 69%
rename from data/json/npcs/TALK_REFUGEE_BEGGAR_4.json
rename to data/json/npcs/beggars/BEGGAR_4_Brandon_Garder.json
index a2dc67431a6d6..7b3db525c538e 100644
--- a/data/json/npcs/TALK_REFUGEE_BEGGAR_4.json
+++ b/data/json/npcs/beggars/BEGGAR_4_Brandon_Garder.json
@@ -1,4 +1,64 @@
[
+ {
+ "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": "lobby_beggars"
+ },
+ {
+ "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" },
+ { "group": "Appearance_demographics" }
+ ]
+ },
+ {
+ "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": "talk_topic",
"id": "TALK_REFUGEE_BEGGAR_4",
diff --git a/data/json/npcs/TALK_REFUGEE_BEGGAR_5.json b/data/json/npcs/beggars/BEGGAR_5_Yusuke_Taylor.json
similarity index 68%
rename from data/json/npcs/TALK_REFUGEE_BEGGAR_5.json
rename to data/json/npcs/beggars/BEGGAR_5_Yusuke_Taylor.json
index 84cd5cddcae39..40bfa031fb0d8 100644
--- a/data/json/npcs/TALK_REFUGEE_BEGGAR_5.json
+++ b/data/json/npcs/beggars/BEGGAR_5_Yusuke_Taylor.json
@@ -1,4 +1,52 @@
[
+ {
+ "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": "lobby_beggars"
+ },
+ {
+ "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": "talk_topic",
"id": "TALK_REFUGEE_BEGGAR_5",
diff --git a/data/json/npcs/classes.json b/data/json/npcs/classes.json
index e8770d5f59949..7d95f06f1f0cb 100644
--- a/data/json/npcs/classes.json
+++ b/data/json/npcs/classes.json
@@ -24,28 +24,6 @@
"weapon_override": "NC_DEBUG_weapon",
"traits": [ [ "DEBUG_NODMG", 100 ] ]
},
- {
- "type": "npc_class",
- "id": "NC_EVAC_SHOPKEEP",
- "name": "Merchant",
- "job_description": "I'm a local shopkeeper.",
- "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ],
- "//": "This is a unique NPC who doesn't get randomly selected background traits",
- "common": false,
- "bonus_int": { "one_in": 4 },
- "bonus_per": { "one_in": 4 },
- "shopkeeper_item_group": "NC_EVAC_SHOPKEEP_misc",
- "skills": [
- {
- "skill": "ALL",
- "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
- },
- { "skill": "mechanics", "bonus": { "one_in": 2 } },
- { "skill": "electronics", "bonus": { "rng": [ 0, 2 ] } },
- { "skill": "speech", "bonus": { "rng": [ 1, 3 ] } },
- { "skill": "barter", "bonus": { "rng": [ 3, 5 ] } }
- ]
- },
{
"type": "npc_class",
"id": "NC_SHOPKEEP",
diff --git a/data/json/npcs/classes_uncommon.json b/data/json/npcs/classes_uncommon.json
deleted file mode 100644
index 64339d167941c..0000000000000
--- a/data/json/npcs/classes_uncommon.json
+++ /dev/null
@@ -1,276 +0,0 @@
-[
- {
- "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" },
- { "group": "Appearance_demographics" }
- ],
- "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" },
- { "group": "Appearance_demographics" }
- ]
- },
- {
- "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" },
- { "group": "Appearance_demographics" }
- ]
- },
- {
- "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" },
- { "group": "Appearance_demographics" }
- ]
- },
- {
- "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" },
- { "group": "Appearance_demographics" }
- ],
- "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/missiondef_free_merchants.json b/data/json/npcs/missiondef_free_merchants.json
deleted file mode 100644
index 7eec5d1aac784..0000000000000
--- a/data/json/npcs/missiondef_free_merchants.json
+++ /dev/null
@@ -1,226 +0,0 @@
-[
- {
- "id": "MISSION_REACH_REFUGEE_CENTER",
- "type": "mission_definition",
- "name": "Reach Refugee Center",
- "goal": "MGOAL_GO_TO_TYPE",
- "difficulty": 1,
- "value": 0,
- "start": "reveal_refugee_center",
- "origins": [ "ORIGIN_COMPUTER" ],
- "destination": "evac_center"
- },
- {
- "id": "MISSION_FREE_MERCHANTS_EVAC_1",
- "type": "mission_definition",
- "name": "Clear Back Bay",
- "goal": "MGOAL_KILL_MONSTER",
- "difficulty": 2,
- "value": 50000,
- "start": {
- "assign_mission_target": { "om_terrain": "evac_center_9", "reveal_radius": 1 },
- "update_mapgen": {
- "om_terrain": "evac_center_9",
- "om_special": "evac_center",
- "place_monster": [ { "monster": "mon_zombie_electric", "name": "Sean McLaughlin", "x": 10, "y": 10, "target": true } ]
- }
- },
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_FREE_MERCHANTS_EVAC_2",
- "dialogue": {
- "describe": "We need help...",
- "offer": "If you really want to lend a hand we could use your help clearing out the dead in the back bay. Fearful of going outside during the first days of the cataclysm we ended up throwing our dead and the zombies we managed to kill in the sealed back bay. Our promising leader at the time even fell... he turned into something different. Kill all of them and make sure they won't bother us again. We can't pay much but it would help us to reclaim the bay.",
- "accepted": "Please be careful, we don't need any more deaths.",
- "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
- "advice": "If you can, get a friend or two to help you.",
- "inquire": "Will they be bothering us any longer?",
- "success": "Thank you, having that big of a threat close to home was nerve wrecking.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_FREE_MERCHANTS_EVAC_2",
- "type": "mission_definition",
- "name": "Missing Caravan",
- "goal": "MGOAL_ASSASSINATE",
- "difficulty": 5,
- "value": 5000,
- "start": {
- "assign_mission_target": { "om_terrain": "field", "reveal_radius": 1, "random": true, "search_range": 80 },
- "update_mapgen": {
- "rows": [
- " ",
- " ",
- " ",
- " ggggggggggggg ",
- " ggggggggggggg ",
- " gg....R...ggg ",
- " gg........ggg ",
- " gg.......Rggg ",
- " gg.F..a...ggg ",
- " gg........ggg ",
- " gg........ggg ",
- " gg........ggg ",
- " gg........ggg ",
- " gg........ggg ",
- " ggggggggggggg ",
- " ggggggggggggg ",
- " ",
- " ",
- " ",
- " b b ",
- " b bb ",
- " b ",
- " ",
- " "
- ],
- "terrain": { "g": "t_grass", ".": "t_dirt", "a": "t_dirt", "b": "t_dirt", "R": "t_dirt", "F": "t_dirt" },
- "furniture": { "a": "f_ash" },
- "traps": { "F": "tr_fur_rollmat", "R": "tr_rollmat" },
- "fields": { "b": { "field": "fd_blood", "density": 1 } },
- "place_loot": [
- { "group": "cannedfood", "x": [ 6, 18 ], "y": [ 3, 15 ], "chance": 100 },
- { "group": "alcohol_bottled_canned", "x": [ 6, 18 ], "y": [ 3, 15 ], "repeat": 2, "chance": 75 },
- { "group": "trash_forest", "x": [ 6, 18 ], "y": [ 3, 15 ], "repeat": 2, "chance": 75 },
- { "group": "stash_drugs", "x": [ 6, 18 ], "y": [ 3, 15 ], "chance": 75 },
- { "group": "dresser", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 75 },
- { "group": "softdrugs", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 50 },
- { "group": "camping", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 75 },
- { "group": "casings", "x": [ 10, 15 ], "y": [ 15, 18 ], "repeat": 5, "chance": 100 },
- { "item": "corpse", "x": 13, "y": 19, "chance": 100 },
- { "item": "corpse", "x": 12, "y": 20, "chance": 100 }
- ],
- "place_npcs": [
- { "class": "bandit", "x": 15, "y": 7 },
- { "class": "thug", "x": 12, "y": 5 },
- { "class": "bandit", "x": 9, "y": 8, "target": true }
- ],
- "place_vehicles": [
- { "vehicle": "cube_van", "x": 12, "y": 12 },
- { "vehicle": "quad_bike", "x": 18, "y": 7, "rotation": 270, "fuel": 500, "status": -1, "chance": 100 },
- { "vehicle": "motorcycle", "x": 10, "y": 3, "rotation": 315, "fuel": 500, "status": -1, "chance": 100 },
- { "vehicle": "motorcycle", "x": 7, "y": 7, "rotation": 90, "fuel": 500, "status": -1, "chance": 100 }
- ]
- }
- },
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_FREE_MERCHANTS_EVAC_3",
- "dialogue": {
- "describe": "We need help...",
- "offer": "This is a bit more involved than the last request, we recently lost a scavenger party coming to trade with us and would like you to investigate. We strongly suspect a raider band or horde caught them off-guard. I can give you the coordinates of their last radio message but little else. In either case, deal with the threat so that the scavengers can continue to pass through in relative safety. The best reward I can offer is a claim to the supplies they were carrying.",
- "accepted": "Our community survives on trade, we appreciate it.",
- "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
- "advice": "If you can, get a friend or two to help you.",
- "inquire": "Have you dealt with them?",
- "success": "Thank you, the world is a better place without them. Two of our more skilled individuals accepted the assistance of the Old Guard in setting up an outpost while you were out. We didn't have many other options, refugees are still streaming in and we don't know what else to do with our limited food supply. If you get a chance, you should see if they need your assistance in the future...",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_FREE_MERCHANTS_EVAC_3",
- "type": "mission_definition",
- "name": "Retrieve Prospectus",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "commune_prospectus",
- "start": {
- "assign_mission_target": { "om_terrain": "ranch_camp_67", "reveal_radius": 1 },
- "update_mapgen": {
- "place_npcs": [
- { "class": "ranch_foreman", "x": 16, "y": 15, "target": true, "add_trait": "NPC_MISSION_LEV_1" },
- { "class": "ranch_construction_1", "x": 9, "y": 17 }
- ]
- }
- },
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_FREE_MERCHANTS_EVAC_5",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The new outpost that we've started could use your assistance. I need you to get the foreman's prospectus before we begin to send additional refugees to the farming commune. Consult with the foreman to get more detailed tasks.",
- "accepted": "I'm sure the outpost will expand quickly with your assistance.",
- "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
- "advice": "Just follow your map.",
- "inquire": "Do you have the prospectus?",
- "success": "With this we'll be able to convince others to invest in the commune. Thank you.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_FREE_MERCHANTS_EVAC_4",
- "type": "mission_definition",
- "name": "Find 25 Plutonium Cells",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 400000,
- "item": "plut_cell",
- "count": 25,
- "origins": [ "ORIGIN_SECONDARY" ],
- "dialogue": {
- "describe": "We need help...",
- "offer": "We are starting to build new infrastructure here and would like to get a few new electrical systems online... unfortunately our existing system relies on an array of something called RTGs. From what I understand they work like giant batteries of sorts. We can expand our power system but to do so we would need enough plutonium. With 25 plutonium cells we would be able to 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.",
- "accepted": "If you can do this for us our survival options would vastly increase.",
- "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
- "advice": "Can't help you much, I've never even seen a plutonium battery.",
- "inquire": "How is the search going?",
- "success": "Great, I know it isn't much but we hope to continue to expand thanks to your help.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_FREE_MERCHANTS_EVAC_5",
- "type": "mission_definition",
- "name": "Find 40 Canned Food",
- "goal": "MGOAL_FIND_ITEM_GROUP",
- "difficulty": 3,
- "value": 400000,
- "item_group": "foodintincan",
- "count": 40,
- "required_container": "can_food",
- "remove_container": true,
- "empty_container": "can_food_unsealed",
- "end": {
- "update_mapgen": {
- "om_terrain": "evac_center_19",
- "om_special": "evac_center",
- "place_loot": [
- { "item": "can_beans", "x": 1, "y": 5, "chance": 100, "repeat": 3 },
- { "item": "can_spam", "x": 1, "y": 6, "chance": 100, "repeat": 2 },
- { "item": "can_tomato", "x": 1, "y": 7, "chance": 100, "repeat": 3 },
- { "item": "can_sardine", "x": 2, "y": 5, "chance": 100, "repeat": 2 },
- { "item": "soup_veggy", "x": 2, "y": 6, "chance": 100, "repeat": 3 },
- { "item": "soup_dumplings", "x": 2, "y": 7, "chance": 100, "repeat": 2 },
- { "item": "soup_meat", "x": 1, "y": 10, "chance": 100, "repeat": 3 },
- { "item": "soup_tomato", "x": 1, "y": 11, "chance": 100, "repeat": 2 },
- { "item": "soup_fish", "x": 1, "y": 12, "chance": 100, "repeat": 3 },
- { "item": "fish_canned", "x": 2, "y": 10, "chance": 100, "repeat": 2 },
- { "item": "curry_veggy", "x": 2, "y": 11, "chance": 100, "repeat": 3 },
- { "item": "ravioli", "x": 2, "y": 12, "chance": 100, "repeat": 2 },
- { "item": "curry_meat", "x": 1, "y": 15, "chance": 100, "repeat": 3 },
- { "item": "chili", "x": 1, "y": 16, "chance": 100, "repeat": 2 },
- { "item": "soup_chicken", "x": 1, "y": 17, "chance": 100, "repeat": 3 },
- { "item": "pork_beans", "x": 2, "y": 15, "chance": 100, "repeat": 2 },
- { "item": "soup_mushroom", "x": 2, "y": 16, "chance": 100, "repeat": 3 },
- { "item": "can_tuna", "x": 2, "y": 17, "chance": 100, "repeat": 2 }
- ]
- }
- },
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_FREE_MERCHANTS_EVAC_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "While we've managed to secure day to day food supplies, it's very much hand to mouth. Our reserves would barely last a few days if something kept our people locked in. We need a stockpile to avoid that. It would have to be made of something that would be long lasting though, so canned food's the way to go. Get us about 40 cans and we should be able to ride out anything that comes our way.",
- "accepted": "It'll take a load off my shoulders if I can finally stop worrying about this.",
- "rejected": "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying. If you reconsider let me know.",
- "advice": "Grocery stores, house kitchens, there's plenty of places to look.",
- "inquire": "How is the search going?",
- "success": "That's one less thing to worry about. Glad to have someone like you on our side.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- }
-]
diff --git a/data/json/npcs/missiondef_robofac.json b/data/json/npcs/missiondef_robofac.json
index 23ae03f9b80d9..240fd2c564b91 100644
--- a/data/json/npcs/missiondef_robofac.json
+++ b/data/json/npcs/missiondef_robofac.json
@@ -38,7 +38,8 @@
],
"terrain": { "@": "t_grass", "b": "t_dirt", "M": "t_dirt" },
"fields": { "b": { "field": "fd_blood", "density": 1 } },
- "mapping": { "@": { "items": { "item": "produce" }, "item": [ { "item": "EMPbomb", "count": 2 }, { "item": "corpse" } ] } },
+ "items": { "@": { "item": "NC_ROBOFAC_FIELD_RESEARCHER_worn", "chance": 100 } },
+ "item": { "@": [ { "item": "EMPbomb", "amount": 2 }, { "item": "corpse" } ] },
"monster": { "M": { "monster": "mon_robofac_prototype" } }
}
},
@@ -49,7 +50,7 @@
]
},
"origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_FREE_MERCHANTS_EVAC_3",
+ "followup": "MISSION_ROBOFAC_INTERCOM_2",
"dialogue": {
"describe": "No, I said ... [*You hear a short, muffled conversation from across the intercom*]/nWell, it seems we do have a use for you. It's dangerous and you are likely to die, but if you complete it we will allow you limited access to our resources.",
"offer": "One of our scientists recently left the lab to perform a field test on a prototype robot, but failed to return, and has not been heard of since. Investigate the test and return with her and the prototype. Failing that, return with the data recorder that was attached to our prototype.",
@@ -61,5 +62,31 @@
"success_lie": "What good does this do us?",
"failure": "Simply useless..."
}
+ },
+ {
+ "id": "MISSION_ROBOFAC_INTERCOM_2",
+ "type": "mission_definition",
+ "name": "Steal a dead man's mind",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "item": "mind_scan_robofac",
+ "value": 1000,
+ "start": {
+ "assign_mission_target": { "om_terrain": "road_ew", "reveal_radius": 2, "random": true, "search_range": 80 },
+ "update_mapgen": { "place_nested": [ { "chunks": [ "robofac_mi2_convoy_ambush_chunk" ], "x": 0, "y": 0 } ] },
+ "effect": [ { "u_buy_item": "mind_splicer" }, { "u_buy_item": "data_card" } ]
+ },
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "dialogue": {
+ "describe": "...",
+ "offer": "When the portal storms started, the Government issued an evacuation order for critical XEDRA personnel and sent convoys to retrieve them, with our head of AI research among the recalled. We recently discovered that he died when the convoy transferring him was ambushed in the initial chaos, but his corpse and memory bionic might remain intact enough for us to extract valuable knowledge. We want you to travel to the location, make a copy of his Bionic Memory Unit, and return it to us.",
+ "accepted": "Remember, do extraction /exactly/ as specified, otherwise the bionic will self-destruct.",
+ "rejected": "Yes, we recognize that our request is exceptional. Return if you change your mind.",
+ "advice": " You do know what a memory unit looks like, right? Matte gray, pill-sized, right in front of the corpus callosum. We suggest a forceps through the eye socket, shaking slightly, then slowly and carefully...",
+ "inquire": "Do you have the scan?",
+ "success": "You have our thanks and payment.",
+ "success_lie": "What good does this do us?",
+ "failure": "Simply useless..."
+ }
}
]
diff --git a/data/json/npcs/missiondef_tacoma_commune.json b/data/json/npcs/missiondef_tacoma_commune.json
deleted file mode 100644
index 298ebe756f0a2..0000000000000
--- a/data/json/npcs/missiondef_tacoma_commune.json
+++ /dev/null
@@ -1,2246 +0,0 @@
-[
- {
- "id": "MISSION_RANCH_BARTENDER_1",
- "type": "mission_definition",
- "name": "Make 2 Stills",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "still",
- "count": 2,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_BARTENDER_2",
- "dialogue": {
- "describe": "We need help...",
- "offer": "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?",
- "accepted": "This should let us start producing whiskey, rum, and brandy when we get access to the ingredients.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "I'm sure you could find the design for the stills in home brewing books.",
- "inquire": "Do you have the stills?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": {
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_1" ], "x": 0, "y": 0 } ]
- }
- }
- },
- {
- "id": "MISSION_RANCH_BARTENDER_2",
- "type": "mission_definition",
- "name": "Find 20 Yeast",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "yeast",
- "count": 20,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_BARTENDER_3",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The last batch that I brewed was terrible, I'm fairly sure something 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.",
- "accepted": "Thank you for your assistance.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Yeast should be common in homes or bakeries.",
- "inquire": "Do you have the yeast?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "effect": { "npc_add_trait": "NPC_BRANDY" },
- "update_mapgen": {
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_2" ], "x": 0, "y": 0 } ]
- }
- }
- },
- {
- "id": "MISSION_RANCH_BARTENDER_3",
- "type": "mission_definition",
- "name": "Find 10 Sugar Beet Seeds",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "seed_sugar_beet",
- "count": 10,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_BARTENDER_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Sugar and molasses remains in short supply. I've put in a request for more but it is unlikely that I'm going to see a reliable source for some time. If you are interested, we are going to need sugar beet seeds to meet future demand regardless of what the scavengers can find. Could you bring me at least enough seeds to plant a small 10 meter long patch?",
- "accepted": "Thank you for your assistance.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Farms or supply stores might have a few seeds...",
- "inquire": "Do you have the sugar beet seeds?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "effect": { "npc_add_trait": "NPC_RUM" },
- "update_mapgen": {
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_3" ], "x": 0, "y": 0 } ]
- }
- }
- },
- {
- "id": "MISSION_RANCH_BARTENDER_4",
- "type": "mission_definition",
- "name": "Find 12 Metal Tanks",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "metal_tank",
- "count": 12,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_BARTENDER_5",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The drinks we brew here have become a major draw for visitors and the occasional trader. Our batches have become larger but we are still running out of storage space between trading runs. I've been able to get a few volunteers to help me build a set of standing tanks but I still need 12 metal tanks to build them. I've talked with the scrappers but we are a low priority at the moment.",
- "accepted": "Thank you for your assistance.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Scrapping vehicles might be your best bet.",
- "inquire": "Do you have the metal tanks?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": {
- "effect": { "npc_add_trait": "NPC_WHISKEY" },
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_4" ], "x": 0, "y": 0 } ]
- }
- }
- },
- {
- "id": "MISSION_RANCH_BARTENDER_5",
- "type": "mission_definition",
- "name": "Find 2 200-Liter Drums",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "55gal_drum",
- "count": 2,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_NULL",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The other survivor outposts that we have contact with have been more than eager to trade for beer or other drinks. Transporting the drinks to them has presented a number of challenges though. If you could locate a pair of 200-liter drums we should be able to keep them supplied while turning a significant profit.",
- "accepted": "Thank you for your assistance.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Factories or junk yards are the only places I know where to look.",
- "inquire": "Do you have the 200-liter drums?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_1",
- "type": "mission_definition",
- "name": "Cut 200 2x4's",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "2x4",
- "count": 200,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_2",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Our first project is to enclose the barn so that new refugees have a safe place to sleep. Before we can begin serious improvements we need lumber to work with. Enclosing the four barn entrances will take nearly 400 2x4's... if you could provide half of that we should be able to take care of the other half and construction. If you don't have a truck, I'd make finding one your first priority. ",
- "accepted": "The more men we can bring to the camp the quicker improvements can be made.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Avoid destroying the furniture, we'll be needing it.",
- "inquire": "Do you have them?",
- "success": "Great, I'll send word that we could use another set of hands or two to help out here.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_65",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_nested": [
- { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 },
- { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 13, "y": 0 },
- { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 15, "y": 0 }
- ]
- },
- {
- "om_terrain": "ranch_camp_74",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_nested": [
- { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 },
- { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 13, "y": 0 },
- { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 15, "y": 0 }
- ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_2",
- "type": "mission_definition",
- "name": "Find 25 Blankets",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "blanket",
- "count": 25,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_3",
- "dialogue": {
- "describe": "We need help...",
- "offer": "With the barn entrances enclosed the refugees moving into there should feel safer but the weather can be bitter here. We're going to need to build makeshift beds in the stalls to ward off disease and frostbite. We can take care of the frames but will need your help looting blankets. We'd need 25 blankets to provide the most basic sleeping accommodations.",
- "accepted": "I'd start with looting hotels or you could sew them together... but that would be a last resort.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Avoid destroying the furniture here, we'll be needing it.",
- "inquire": "Do you have them?",
- "success": "Your assistance is always appreciated.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_65",
- "om_special": "ranch_camp",
- "//": "Beds in the barn",
- "place_nested": [
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 1 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 5 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 7 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 11 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 13 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 17 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 19 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 23 }
- ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "//": "Beds in the barn",
- "place_nested": [
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 1 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 5 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 7 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 11 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 13 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 17 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 19 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 23 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 1 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 5 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 19 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 23 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 1 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 5 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 19 },
- { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 23 }
- ],
- "place_npcs": [ { "class": "ranch_construction_2", "x": 19, "y": 8 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_3",
- "type": "mission_definition",
- "name": "Gather 2500 Nails",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "nail",
- "count": 2500,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Our supply of nails has been depleted. I'm going to have to ask you to get us a few more boxes. Hardware stores should have a few if they haven't been looted. I suppose you may be able to find handfuls of them in building rubble. We'd need 2500 to have enough that we won't be sending you back out too soon.",
- "accepted": "Deconstructing furniture isn't going to be efficient, try looking for boxes or grabbing any sitting on top of rubble piles.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Avoid destroying the furniture here, we'll be needing it.",
- "inquire": "Do you have them?",
- "success": "Your assistance is always appreciated.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_46",
- "om_special": "ranch_camp",
- "//": "tilled soil in the fields",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "set": [
- { "square": "terrain", "id": "t_dirt", "x": 7, "y": 4, "x2": 22, "y2": 23 },
- { "square": "terrain", "id": "t_dirtmound", "x": 8, "y": 5, "x2": 9, "y2": 22 },
- { "square": "terrain", "id": "t_dirtmound", "x": 11, "y": 5, "x2": 12, "y2": 22 }
- ]
- },
- {
- "om_terrain": "ranch_camp_55",
- "om_special": "ranch_camp",
- "//": "tilled soil in the fields",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "set": [
- { "square": "terrain", "id": "t_dirt", "x": 7, "y": 0, "x2": 22, "y2": 18 },
- { "square": "terrain", "id": "t_dirtmound", "x": 8, "y": 2, "x2": 9, "y2": 17 },
- { "square": "terrain", "id": "t_dirtmound", "x": 11, "y": 2, "x2": 12, "y2": 17 }
- ]
- },
- {
- "om_terrain": "ranch_camp_56",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_vehicles": [ { "vehicle": "hippie_van", "x": 10, "y": 10, "rotation": 270, "chance": 100 } ]
- },
- {
- "om_terrain": "ranch_camp_65",
- "om_special": "ranch_camp",
- "place_furniture": [ { "furn": "f_bookcase", "x": 17, "y": 11 } ],
- "place_npcs": [ { "class": "ranch_farmer_1", "x": 19, "y": 20 } ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "place_npcs": [ { "class": "ranch_woodcutter_1", "x": 4, "y": 11 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_4",
- "type": "mission_definition",
- "name": "Gather 300 Salt",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "salt",
- "count": 300,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_5",
- "dialogue": {
- "describe": "We need help...",
- "offer": "I'm sure you've noticed the new workers that have started trickling in. The Free Merchant counsel is demanding that we immediately begin projects to become self-sufficient due to limited supplies. We are going to need to rapidly setup an agricultural industry before winter and starvation catches us unprepared and unsupported. In order to get a half dozen shovels and a couple of bags of seeds, we are going to have to trade for it. I've already got the deal lined up but the only thing they are willing to trade it for is salt. I negotiated them down from 500 units to 300... we were hoping you might have access to a source.",
- "accepted": "Salt is key to preserving meat and other perishables... without any excess 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. ",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "If you can find a source of salt water you should be able to boil it down.",
- "inquire": "Do you have the salt?",
- "success": "We are going to begin preparing our fields immediately.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_46",
- "om_special": "ranch_camp",
- "//": "tilled soil in the fields",
- "set": [
- { "square": "terrain", "id": "t_dirtmound", "x": 14, "y": 5, "x2": 15, "y2": 22 },
- { "square": "terrain", "id": "t_dirtmound", "x": 17, "y": 5, "x2": 18, "y2": 22 },
- { "square": "terrain", "id": "t_dirtmound", "x": 20, "y": 5, "x2": 21, "y2": 22 }
- ]
- },
- {
- "om_terrain": "ranch_camp_55",
- "om_special": "ranch_camp",
- "//": "tilled soil in the fields",
- "set": [
- { "square": "terrain", "id": "t_dirtmound", "x": 14, "y": 2, "x2": 15, "y2": 17 },
- { "square": "terrain", "id": "t_dirtmound", "x": 17, "y": 2, "x2": 18, "y2": 17 },
- { "square": "terrain", "id": "t_dirtmound", "x": 20, "y": 2, "x2": 21, "y2": 17 }
- ]
- },
- {
- "om_terrain": "ranch_camp_56",
- "om_special": "ranch_camp",
- "place_vehicles": [ { "vehicle": "flatbed_truck", "x": 18, "y": 3, "rotation": 0, "chance": 100 } ]
- },
- {
- "om_terrain": "ranch_camp_57",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_npcs": [ { "class": "ranch_crop_overseer", "x": 12, "y": 7 } ]
- },
- {
- "om_terrain": "ranch_camp_58",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_4" ], "x": 0, "y": 2 } ]
- },
- {
- "om_terrain": "ranch_camp_67",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "set": [ { "square": "terrain", "id": "t_palisade", "x": 21, "y": 19, "x2": 23, "y2": 19 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_5",
- "type": "mission_definition",
- "name": "30 Liquid Fertilizer",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "fertilizer_liquid",
- "count": 30,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_6",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Well, our first crop will be planted shortly but I'm starting to suspect that our profit margin is going to be much smaller than we expect. With limited seed for our original crop our next course of action is to increase the soil's fertility. Is there any way you could find or produce a basic liquid fertilizer for us? We'd need at least 30 units to make a significant improvement in our output. ",
- "accepted": "I don't know the exact recipe but I'm sure you could make it from a commercial fertilizer or produce it from bonemeal.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "I'd look through a few basic chemistry books to find a simple recipe.",
- "inquire": "Do you have the liquid fertilizer?",
- "success": "This really should make the first winter easier to survive.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_56",
- "om_special": "ranch_camp",
- "place_vehicles": [ { "vehicle": "car_chassis", "x": 17, "y": 11, "rotation": 90, "chance": 100 } ]
- },
- {
- "om_terrain": "ranch_camp_58",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_5" ], "x": 0, "y": 2 } ],
- "set": [ { "point": "terrain", "id": "t_pit", "x": 6, "y": 18 } ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "set": [ { "point": "terrain", "id": "t_palisade", "x": 23, "y": 22 } ],
- "place_npcs": [ { "class": "ranch_farmer_2", "x": 9, "y": 22 } ]
- },
- {
- "om_terrain": "ranch_camp_67",
- "om_special": "ranch_camp",
- "set": [ { "square": "terrain", "id": "t_palisade", "x": 0, "y": 22, "x2": 5, "y2": 22 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_6",
- "type": "mission_definition",
- "name": "Gather 75 Stones",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "rock",
- "count": 75,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_7",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Our current assessment for survivability has increased significantly thanks to your efforts. The next priority issue is securing a cleaner water source. Drinking from the pond on the back end of the ranch has led to an outbreak of dysentery. As quickly as possible we need to improve the sanitary conditions in the camp. To do so the first step is to dig a well and construct stone fireplaces in the barn for the migrants to boil water. We are going to need at least 75 large rocks from you if we hope to accomplish the task before we all get sick. After we have them installed you will have free access to them, guaranteed. ",
- "accepted": "If you take a shovel to a pile of rubble you should be able to pull out structural grade stone.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Mining would always be an option if you had the resources.",
- "inquire": "Do you have the stone?",
- "success": "I appreciate the work you do.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_58",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_6" ], "x": 0, "y": 2 } ],
- "set": [ { "point": "terrain", "id": "t_covered_well", "x": 6, "y": 18 } ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "set": [
- { "point": "furniture", "id": "f_fireplace", "x": 6, "y": 12 },
- { "point": "furniture", "id": "f_fireplace", "x": 8, "y": 12 }
- ],
- "place_item": [
- { "item": "log", "x": 3, "y": 11 },
- { "item": "log", "x": 3, "y": 12 },
- { "item": "log", "x": 3, "y": 13 },
- { "item": "log", "x": 11, "y": 11 },
- { "item": "log", "x": 11, "y": 12 },
- { "item": "log", "x": 11, "y": 13 }
- ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_7",
- "type": "mission_definition",
- "name": "Gather 50 Pipes",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "pipe",
- "count": 50,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_8",
- "dialogue": {
- "describe": "We need help...",
- "offer": "To fabricate the well's hand pump and construct components for several other projects we are going to need to find or fabricate a number of steel pipes. Plumbing is a distant possibility for now but some form of irrigation will eventually become desirable. You could assist us with procuring 50 steel pipes, if you so have the chance.",
- "accepted": "Hopefully we will be able to assign new migrants to help fulfill our needs in the future.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Pipes are used in numerous metal constructions. Smashing abandoned furniture may provide the material we need.",
- "inquire": "Do you have the pipes?",
- "success": "I appreciate the work you do.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_56",
- "om_special": "ranch_camp",
- "//": "western palisade",
- "set": [
- { "square": "terrain", "id": "t_palisade", "x": 16, "y": 16, "x2": 16, "y2": 23 },
- { "square": "terrain", "id": "t_palisade", "x": 16, "y": 14, "x2": 19, "y2": 14 },
- { "square": "terrain", "id": "t_palisade", "x": 19, "y": 11, "x2": 19, "y2": 13 }
- ]
- },
- {
- "om_terrain": "ranch_camp_58",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_7" ], "x": 0, "y": 2 } ],
- "//": "finish the well",
- "set": [
- { "square": "terrain", "id": "t_sidewalk", "x": 5, "y": 17, "x2": 7, "y2": 19 },
- { "point": "terrain", "id": "t_water_pump", "x": 6, "y": 18 }
- ]
- },
- {
- "om_terrain": "ranch_camp_65",
- "om_special": "ranch_camp",
- "//": "untilled soil in the fields",
- "set": [ { "square": "terrain", "id": "t_dirt", "x": 0, "y": 4, "x2": 12, "y2": 18 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_8",
- "type": "mission_definition",
- "name": "Gather 2 Motors",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "motor",
- "count": 2,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_9",
- "dialogue": {
- "describe": "We need help...",
- "offer": "With the well's completion we are rapidly closing the sustainability gap. In order to expand from here we will need massive quantities of lumber to construct fortifications and new buildings. We have already begun work on a 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.",
- "accepted": "Power for the motors will be provided by a salvaged truck battery, you need not bring additional mechanical components. ",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Mining would always be an option if you had the resources.",
- "inquire": "Do you have the motors?",
- "success": "I appreciate the work you do.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_56",
- "om_special": "ranch_camp",
- "//": "finish western palisade",
- "set": [
- { "square": "terrain", "id": "t_palisade", "x": 23, "y": 7, "x2": 23, "y2": 10 },
- { "square": "terrain", "id": "t_palisade", "x": 20, "y": 11, "x2": 23, "y2": 11 }
- ]
- },
- {
- "om_terrain": "ranch_camp_58",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_8_done" ], "x": 0, "y": 2 } ]
- },
- {
- "om_terrain": "ranch_camp_59",
- "om_special": "ranch_camp",
- "place_nested": [
- { "chunks": [ "tacoma_commune_toolshed_8" ], "x": 13, "y": 17 },
- { "chunks": [ "tacoma_commune_clinic_8" ], "x": 0, "y": 2 }
- ]
- },
- {
- "om_terrain": "ranch_camp_65",
- "om_special": "ranch_camp",
- "//": "tilled soil in the fields",
- "set": [
- { "square": "terrain", "id": "t_dirtmound", "x": 1, "y": 5, "x2": 2, "y2": 17 },
- { "square": "terrain", "id": "t_dirtmound", "x": 4, "y": 5, "x2": 5, "y2": 17 },
- { "square": "terrain", "id": "t_dirtmound", "x": 7, "y": 5, "x2": 8, "y2": 17 },
- { "square": "terrain", "id": "t_dirtmound", "x": 10, "y": 5, "x2": 11, "y2": 17 }
- ]
- },
- {
- "om_terrain": "ranch_camp_68",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_outhouse_8" ], "x": 16, "y": 1 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_9",
- "type": "mission_definition",
- "name": "Gather 150 Bleach",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "bleach",
- "count": 150,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_10",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Disease and infection remains a persistent problem among the refugees. Without dedicated medical personnel and facilities I doubt everyone will be willing to stick around when the next outbreak happens. Until we can get a former medic or nurse I'm just going to have to improvise. Sterilization would be the first step I imagine. Bring me 5 gallon jugs of bleach so we can get started.",
- "accepted": "I'm sure you can find bleach in most homes...",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "If you can't find a large supply I'd recommend checking hospitals or research labs.",
- "inquire": "Do you have the bleach?",
- "success": "I appreciate it.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_59",
- "om_special": "ranch_camp",
- "place_nested": [
- { "chunks": [ "tacoma_commune_toolshed_9_done" ], "x": 13, "y": 17 },
- { "chunks": [ "tacoma_commune_clinic_9" ], "x": 0, "y": 2 }
- ]
- },
- {
- "om_terrain": "ranch_camp_68",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_outhouse_9_done" ], "x": 16, "y": 1 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_10",
- "type": "mission_definition",
- "name": "Gather 6 First Aid Kits",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "1st_aid",
- "count": 6,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_11",
- "dialogue": {
- "describe": "We need help...",
- "offer": "We've started planning a medical clinic but we are going to need a lot more supplies if we hope to warrant sending one of the few people with medical experience from the refugee center to our outpost. I know first aid kits are rare but they have all the basic supplies that I'm uncertain of. If you could bring in 6 full kits I'm sure we could supplement them to make them last a bit longer.",
- "accepted": "We'll do our best to make them last...",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Homes, hospitals, labs, and doctor offices would be where I'd check.",
- "inquire": "Do you have the first aid kits?",
- "success": "I appreciate it.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_59",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_clinic_10" ], "x": 0, "y": 2 } ]
- },
- {
- "om_terrain": "ranch_camp_60",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_chopshop_10" ], "x": 0, "y": 4 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_11",
- "type": "mission_definition",
- "name": "Find 2 Electric Welders",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "welder",
- "count": 2,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_12",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The work you have done has swayed the leaders at the refugee center to send someone out to assist with our medical needs. The next step is for us to get a sort of chop-shop setup so that we can begin using scrap metal to build fortifications and equipment. We are going to need a pair of electric welders for our mechanics to use.",
- "accepted": "With two, we should be able to repair one if it breaks.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "The only place I've seen them is garages but I imagine you could find them in some stores.",
- "inquire": "Do you have the welders?",
- "success": "I appreciate it.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_59",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_clinic_11" ], "x": 0, "y": 2 } ]
- },
- {
- "om_terrain": "ranch_camp_60",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_chopshop_11" ], "x": 0, "y": 4 } ]
- },
- {
- "om_terrain": "ranch_camp_61",
- "om_special": "ranch_camp",
- "place_vehicles": [
- { "vehicle": "car", "chance": 100, "rotation": 270, "x": 1, "y": 20 },
- { "vehicle": "cube_van_cheap", "chance": 100, "rotation": 90, "x": 10, "y": 10 },
- { "vehicle": "car_sports", "chance": 100, "rotation": 90, "x": 3, "y": 9 },
- { "vehicle": "flatbed_truck", "chance": 100, "rotation": 270, "x": 10, "y": 23 }
- ]
- },
- {
- "om_terrain": "ranch_camp_69",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_vehicles": [
- { "vehicle": "car_chassis", "chance": 100, "rotation": 0, "x": 3, "y": 14 },
- { "vehicle": "pickup", "chance": 100, "rotation": 0, "x": 8, "y": 15 },
- { "vehicle": "schoolbus", "chance": 100, "rotation": 135, "x": 22, "y": 13 }
- ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_12",
- "type": "mission_definition",
- "name": "Find 12 Car Batteries",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "battery_car",
- "count": 12,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_13",
- "dialogue": {
- "describe": "We need help...",
- "offer": "We have the basic equipment that we need but without a functioning power grid we are forced to rely on the readily available vehicle batteries. This is going to be a chore but I'll need twelve car batteries to swap between charging and powering our equipment. The good news is that they don't need to be charged, we can take care of that.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Cars can be found in traffic jams along roads or in parking lots... I'm sure you can find a few.",
- "inquire": "Do you have the car batteries?",
- "success": "I'm impressed with your abilities.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_49",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_junk_shop_12" ], "x": 0, "y": 9 } ]
- },
- {
- "om_terrain": "ranch_camp_60",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_chopshop_12_done" ], "x": 0, "y": 4 } ]
- },
- {
- "om_terrain": "ranch_camp_69",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_vehicles": [ { "vehicle": "cube_van", "chance": 100, "rotation": 180, "x": 13, "y": 15 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_13",
- "type": "mission_definition",
- "name": "Find 2 Two-Way Radios",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "two_way_radio",
- "count": 2,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_14",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Check with the nurse when you get a chance, I know she will need help setting up our clinic. On the construction front, we are going to need to get dedicated scavenger teams setup to bring in the miscellaneous supplies that we use in small quantities. We are going to start setting up a junk shop for them in the North end of the outpost so we could use your help with that. Communication is the biggest obstacle for the teams... could you bring in a pair of two-way radios?",
- "accepted": "Organizing the scavenging missions is difficult enough without communication.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You should be able to find them in electronics stores or at a police station.",
- "inquire": "Do you have the two-way radios?",
- "success": "I'm sure the scavengers will find these useful.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_49",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_junk_shop_13" ], "x": 0, "y": 9 } ]
- },
- {
- "om_terrain": "ranch_camp_66",
- "om_special": "ranch_camp",
- "place_npcs": [ { "class": "ranch_barber", "x": 5, "y": 3 } ]
- },
- {
- "om_terrain": "ranch_camp_70",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_vehicles": [ { "vehicle": "car_mini", "chance": 100, "rotation": 45, "x": 8, "y": 3 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_14",
- "type": "mission_definition",
- "name": "Gather 5 Backpacks",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "backpack",
- "count": 5,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_15",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The volunteers for the scavenging teams will need to be issued some basic equipment. When the boss sets up shop in the junk shed you should ask him what else he needs for his teams. In the meantime we can provide a few backpacks to get them started. Could you find five backpacks to give to the initial team?",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "It may be easier to make them if you can't find a school or something.",
- "inquire": "Do you have the backpacks?",
- "success": "Having at least basic equipment greatly increases survivability. Thanks.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_49",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_junk_shop_14_done" ], "x": 0, "y": 9 } ]
- },
- {
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_14" ], "x": 0, "y": 0 } ]
- },
- {
- "om_terrain": "ranch_camp_61",
- "om_special": "ranch_camp",
- "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
- "place_vehicles": [ { "vehicle": "ambulance", "chance": 100, "rotation": 90, "x": 14, "y": 4 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_15",
- "type": "mission_definition",
- "name": "Find Homebrewer's Bible",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "brewing_cookbook",
- "count": 1,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_16",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Growth has lately begun to stall, we have individuals passing through the outpost but the prospect of hard labor just to eke out an existence is driving them away. We've asked around and decided that, despite our pressing needs, building a bar ought to draw some of the less committed individuals to the outpost. Unlike other settlements, the more hands we have to more food we can produce... at least in the long term. Unfortunately, no one here has brewed alcoholic drinks before so we are going to need you to find a book called the 'Homebrewer's Bible' or something along those lines.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "I guess you should search homes or libraries?",
- "inquire": "Do you have the book?",
- "success": "I guarantee we will toast to your name when the bar is finished.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": {
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_15" ], "x": 0, "y": 0 } ]
- }
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_16",
- "type": "mission_definition",
- "name": "Gather 80 Sugar",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "sugar",
- "count": 80,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_FOREMAN_17",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Just flipping through the book I can tell that one ingredient in most of the alcoholic drinks that we don't have a large supply of is sugar. What alcohol we have been able to loot isn't going to last us long so starting 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.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You might get lucky finding it but you could always boil it out of fruit if you are familiar with the process.",
- "inquire": "Do you have the sugar?",
- "success": "There is a large group of thirsty individuals in our outpost that are truly thankful for your work.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_51",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_bar_16_done" ], "x": 0, "y": 0 } ]
- },
- {
- "om_terrain": "ranch_camp_52",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_greenhouse_16" ], "x": 2, "y": 10 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_FOREMAN_17",
- "type": "mission_definition",
- "name": "Collect 30 Glass Sheets",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "glass_sheet",
- "count": 30,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_NULL",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Although we are an agricultural outpost, we are restricted to growing plants that are compatible with the New England climate during the warmer months. The easiest way to work around that is to build green houses to supplement our external fields. There isn't going to be an easy way to build these, 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.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Deconstructing existing windows is the only way I know of to keep the sheets intact.",
- "inquire": "Do you have the glass sheets?",
- "success": "We'll begin planting our first seeds as soon as we can get these installed.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- },
- "end": {
- "update_mapgen": [
- {
- "om_terrain": "ranch_camp_52",
- "om_special": "ranch_camp",
- "place_nested": [ { "chunks": [ "tacoma_commune_greenhouse_17_done" ], "x": 2, "y": 10 } ]
- }
- ]
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_1",
- "type": "mission_definition",
- "name": "Collect 100 Aspirin",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "aspirin",
- "count": 100,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_2",
- "dialogue": {
- "describe": "We need help...",
- "offer": "I've got a handful of bandages and a few first aid kits to work with at the moment... in other words I'm completely unable to treat most serious medical emergencies. I'm supposed to have priority on any medical supplies that the scavengers bring in but I imagine the black market for the stuff will prevent me from ever seeing it. I could use your help getting a few bottles of aspirin to start with.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Aspirin is pretty common in homes and convenience stores.",
- "inquire": "Do you have the aspirin?",
- "success": "We'll go through this pretty quickly but it does help.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_2",
- "type": "mission_definition",
- "name": "Collect 3 Hotplates",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "hotplate",
- "count": 3,
- "start": "ranch_nurse_1",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_3",
- "dialogue": {
- "describe": "We need help...",
- "offer": "I was given a few bottles of bleach when I arrived but I need a number of 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.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "It should be a fairly common item, don't know what else to say.",
- "inquire": "Do you have the hotplates?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_3",
- "type": "mission_definition",
- "name": "Collect 200 Multivitamin Pills",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "vitamins",
- "count": 200,
- "start": "ranch_nurse_2",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Disease is spreading rapidly due to poor nutrition and there is little that I can do about it. With food being scarce, people are willing to survive on whatever they can. I need to start supplementing the outpost's diet with vitamins to prevent potential deaths indirectly attributable to nutrition. I know it is a lot but if you could bring me 200 multivitamin pills I'd be able to treat the most vulnerable before they spread anything to the rest of us.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "It should be a fairly common item, don't know what else to say.",
- "inquire": "Do you have the vitamins?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_4",
- "type": "mission_definition",
- "name": "Make 4 Charcoal Purifiers",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "char_purifier",
- "count": 4,
- "start": "ranch_nurse_3",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_5",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Despite my recommendations, we continue to have travelers come in with illnesses I've been able to trace back to contaminated drinking water. When boiling water isn't an option they need some form of charcoal water filter that they can use. If you could build me four charcoal water filters I'll distribute them to groups as they pass through.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "With some basic survival and crafting skills you should be able to make them with little effort.",
- "inquire": "Do you have the charcoal water filters?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_5",
- "type": "mission_definition",
- "name": "Find a Chemistry Set",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "chemistry_set",
- "start": "ranch_nurse_4",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_6",
- "dialogue": {
- "describe": "We need help...",
- "offer": "I've been working on producing some of our own medical supplies but I'm going to need a chemistry set to get everything that I need in order. Is there any way you could go through one of the school chemistry labs and steal me a chemistry set?",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You might be able to find one in a pharmacy if you can't find a school.",
- "inquire": "Do you have the chemistry set?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_6",
- "type": "mission_definition",
- "name": "Find 10 Filter Masks",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "mask_filter",
- "count": 10,
- "start": "ranch_nurse_5",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_7",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The number of airway infections that I've encountered in the past week has 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.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You may be able to make one if you had the right guide.",
- "inquire": "Do you have the filter masks?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_7",
- "type": "mission_definition",
- "name": "Find 4 Pairs of Rubber Gloves",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "gloves_rubber",
- "count": 4,
- "start": "ranch_nurse_6",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_8",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The bodily fluids that I often have to clean up and the caustic chemicals I deal with have done a number on my current pair of gloves. Could you find 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.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You should be able to find them in cleaning closets.",
- "inquire": "Do you have the rubber gloves?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_8",
- "type": "mission_definition",
- "name": "Find 2 Scalpels",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "scalpel",
- "count": 2,
- "start": "ranch_nurse_7",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_9",
- "dialogue": {
- "describe": "We need help...",
- "offer": "I heard that we may have a physician on his way here. The workers have already begun expanding the clinic but I need you to locate a pair of scalpels to use in surgery when he arrives. I'm sure you should be able to find them in a hospital or craft shop.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Hospitals and crafting stores should have a few.",
- "inquire": "Do you have the scalpels?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_9",
- "type": "mission_definition",
- "name": "Find Advanced Emergency Care",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "emergency_book",
- "start": "ranch_nurse_8",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_10",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Have you heard of a book called the 'Guide to Advanced Emergency Care?' I 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.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Libraries are the only place I'd think to look.",
- "inquire": "Do you have the Guide to Advanced Emergency Care?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_10",
- "type": "mission_definition",
- "name": "Find a Flu Shot",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "flu_shot",
- "start": "ranch_nurse_9",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_NURSE_11",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The doctor has some ideas on how to recreate a vaccination program for the common flu. If you come across an unused flu shot please bring it to me. We haven't had any fatalities from the flu yet but it is only a matter of time until one of the older or younger members of the outpost gets a bad case.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Hospitals or clinics might have a few that haven't been used.",
- "inquire": "Do you have the flu shot?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_NURSE_11",
- "type": "mission_definition",
- "name": "Find 10 Syringes",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "syringe",
- "count": 3,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_NULL",
- "dialogue": {
- "describe": "We need help...",
- "offer": "We are starting to isolate a few natural antibiotic serums but we don't have the supplies to administer the cocktails. I need you to bring me 10 empty syringes to use. I'll take care of cleaning them to prevent transferring infections.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Hospitals or clinics might have a few sitting around.",
- "inquire": "Do you have the empty syringes?",
- "success": "Thank you for your assistance.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_SCAVENGER_1",
- "type": "mission_definition",
- "name": "Make 12 Knife Spears",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "spear_knife",
- "count": 12,
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_SCAVENGER_2",
- "dialogue": {
- "describe": "We need help...",
- "offer": "I can usually use additional survival gear to kit-out the new recruits. The most basic weapon that everyone gets is the knife spear... it provides a good mix of range, power, and ease of use when engaging the more common monsters. Could you make me a dozen of them? I may need more later but that should help the first few teams.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You should be able to make them with the most basic of skills.",
- "inquire": "Do you have the knife spears?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_SCAVENGER_2",
- "type": "mission_definition",
- "name": "Make 5 Wearable Flashlights",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "wearable_light",
- "count": 5,
- "start": "ranch_scavenger_1",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_SCAVENGER_3",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Night is the ideal time for my team to go on raids but they are going to need better light sources to speed up their missions. Could you craft a set of five headlamps for them? Keeping both hands free greatly helps during combat.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "You should be able to make them with the most basic of skills.",
- "inquire": "Do you have the wearable flashlights?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_SCAVENGER_3",
- "type": "mission_definition",
- "name": "Make 3 Leather Body Armor",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "armor_larmor",
- "count": 3,
- "start": "ranch_scavenger_2",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_SCAVENGER_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Clothing that can withstand the wear and tear of climbing through windows and fighting back wild animals is in high demand. The best that we have been able to field is leather body armor but it is difficult to make with our limited resources. Could you craft us three pairs of leather body armor? The life-expectancy of my scavengers would drastically increase if you did.",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Finding the leather might be easier in town rather than making it yourself.",
- "inquire": "Do you have the leather armor?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_RANCH_SCAVENGER_4",
- "type": "mission_definition",
- "name": "Make 12 Molotov Cocktails",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "molotov",
- "count": 12,
- "start": "ranch_scavenger_3",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_RANCH_SCAVENGER_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "When outnumbered or forced to pull back my scavengers have been taught to throw Molotov cocktails to keep monsters from chasing them. We go through one or two on every mission so we can always use a few more. Would you be willing to make us a dozen? I'm willing to pay you what I can for your assistance. ",
- "accepted": "I'm counting on you.",
- "rejected": "Come back when you get a chance. We need skilled survivors.",
- "advice": "Alcohol or lamp oil is probably easier to refine rather than find in large quantities.",
- "inquire": "Do you have the Molotov cocktails?",
- "success": "Thank you for the delivery.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_west_wall_door",
- "object": {
- "mapgensize": [ 2, 2 ],
- "rows": [
- "q+",
- " "
- ],
- "terrain": { "q": "t_wall_wood", "+": "t_door_c" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_east_wall_door",
- "object": {
- "mapgensize": [ 2, 2 ],
- "rows": [
- "+q",
- " "
- ],
- "terrain": { "q": "t_wall_wood", "+": "t_door_c" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_makeshift_bed",
- "object": {
- "mapgensize": [ 2, 2 ],
- "rows": [
- "##",
- " "
- ],
- "terrain": { "#": "t_dirt" },
- "furniture": { "#": "f_makeshift_bed" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_14",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " w..wwwww ",
- " w..w...w ",
- " w..w...w ",
- "wwwwwwww..ww.www..ww",
- "w.............w....w",
- "w..................w",
- "w.............w....w",
- "w.............wwwwww",
- "w.............w ",
- "w.............w ",
- "wwww........www ",
- " .........w ",
- " .........w ",
- " wwwwwwwwww "
- ],
- "terrain": { "w": "t_wall_half", ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_15",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " w..wwwww ",
- " w..w...w ",
- " w..w...w ",
- "www00www..ww.www..ww",
- "w.............w....w",
- "w..................w",
- "0.............w....w",
- "0.............wwwwww",
- "w.............w ",
- "w.............w ",
- "wwww........www ",
- " .........w ",
- " .........w ",
- " wwww00wwww "
- ],
- "terrain": { "w": "t_wall", ".": "t_dirt", "0": "t_window_frame" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_16_done",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " w++wwwww ",
- " w..wr..w ",
- " w..wr..w ",
- "www]]www++ww+www++ww",
- "w.............w....w",
- "wCC..CtC...c..+....w",
- "]tt........c.rwvvkkw",
- "]tt........c.rwwwwww",
- "wCC..CtC...c..w ",
- "w.............w ",
- "wwww..C..C..www ",
- " +..t..t..w ",
- " +..C..C..w ",
- " wwww]]wwww "
- ],
- "terrain": {
- "w": "t_wall",
- ".": "t_floor",
- "]": "t_window_boarded_noglass",
- "c": "t_floor",
- "C": "t_floor",
- "t": "t_floor",
- "r": "t_floor",
- "k": "t_floor",
- "v": "t_floor",
- "+": "t_door_c"
- },
- "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" },
- "//": "there used to be some logic to not place a bartender if there already was one, but it broke a lot and didn't place a bartender at all. Just place the bartender and sometimes the TC bar is so busy that they have two people on staff.",
- "place_npcs": [ { "class": "ranch_bartender", "x": 12, "y": 12 }, { "class": "scavenger_merc", "x": 5, "y": 11 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_bartender_1",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- "qqqqqqqqqqqqqqq ",
- ",,,,,,,,,,,,,,q ",
- ",,,,,,,,,,,,,,q ",
- "q,,,,,,,,,,,,,q ",
- "q,,,,,,,,,,,,,q ",
- "q,,,,,,,,,,,,,q ",
- "qqqqqqqw++wwwww ",
- " w..wr..w ",
- " w..wr..w ",
- "wwww]]ww++ww+www++ww",
- "w.............w....w",
- "wCC..CtC...c..+....w",
- "]tt........c.rwvvkkw",
- "]tt........c.rwwwwww",
- "wCC..CtC...c..w ",
- "w.............w ",
- "wwww..C..C..www ",
- " +..t..t..w ",
- " +..C..C..w ",
- " wwww]]wwww "
- ],
- "terrain": {
- "w": "t_wall",
- ".": "t_floor",
- "]": "t_window_boarded_noglass",
- "c": "t_floor",
- "C": "t_floor",
- "t": "t_floor",
- "r": "t_floor",
- "k": "t_floor",
- "v": "t_floor",
- "+": "t_door_c",
- ",": "t_dirt",
- "q": "t_wall_half"
- },
- "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_bartender_2",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- "wwww00www00wwww ",
- "+,,,,,,,,,,,,,w ",
- "+,,,,,,,,,,,,,wqqqqq",
- "w,,,,,,,,,,,,,w,,,,q",
- "0,,,,,,,,,,,,,w,,,,q",
- "w,,,,,,,,,,,,,w,,,,q",
- "wwwwwwww++wwwww,,,,q",
- " w..wr..w,,,,q",
- " w..wr..w,,,,q",
- "wwww]]ww++ww+www++ww",
- "w.............w...kw",
- "wCC..CtC...c..+....w",
- "]tt........c.rwvvkkw",
- "]tt........c.rwwwwww",
- "wCC..CtC...c..w ",
- "w.............w ",
- "wwww..C..C..www ",
- " +..t..t..w ",
- " +..C..C..w ",
- " wwww]]wwww "
- ],
- "terrain": {
- "w": "t_wall",
- ".": "t_floor",
- "]": "t_window_boarded_noglass",
- "c": "t_floor",
- "C": "t_floor",
- "t": "t_floor",
- "r": "t_floor",
- "k": "t_floor",
- "v": "t_floor",
- "+": "t_door_c",
- ",": "t_dirt",
- "q": "t_wall_half",
- "0": "t_window_frame"
- },
- "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_bartender_3",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- "wwww]]www]]wwww ",
- "+.............w ",
- "+.............wwwwww",
- "w.............w....w",
- "].............w....]",
- "w.............w....w",
- "wwwwwwww++wwwww....w",
- " w..wr..w....w",
- " w..wr..w....w",
- "wwww]]ww++ww+www++ww",
- "w.............w....w",
- "wCC..CtC...c..+....w",
- "]tt........c.rwvvkkw",
- "]tt........c.rwwwwww",
- "wCC..CtC...c..w ",
- "w.............w ",
- "wwww..C..C..www ",
- " +..t..t..w ",
- " +..C..C..w ",
- " wwww]]wwww "
- ],
- "terrain": {
- "w": "t_wall",
- ".": "t_floor",
- "]": "t_window_boarded_noglass",
- "c": "t_floor",
- "C": "t_floor",
- "t": "t_floor",
- "r": "t_floor",
- "k": "t_floor",
- "v": "t_floor",
- "+": "t_door_c",
- ",": "t_dirt",
- "q": "t_wall_half",
- "0": "t_window_frame"
- },
- "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_bar_bartender_4",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- "wwww]]www]]wwww ",
- "+.......CttC..w ",
- "+.......CttC..wwwwww",
- "w..CtC........wk...w",
- "].........CtC.wk...]",
- "w..CtC........wk..sw",
- "wwwwwwww++wwwwwv..sw",
- " w..wr..wv..sw",
- " w..wr..wv..sw",
- "wwww]]ww++ww+www++ww",
- "w.............w...kw",
- "wCC..CtC...c..+....w",
- "]tt........c.rwvvkkw",
- "]tt........c.rwwwwww",
- "wCC..CtC...c..w ",
- "w.............w ",
- "wwww..C..C..www ",
- " +..t..t..w ",
- " +..C..C..w ",
- " wwww]]wwww "
- ],
- "terrain": {
- "w": "t_wall",
- ".": "t_floor",
- "]": "t_window_boarded_noglass",
- "c": "t_floor",
- "C": "t_floor",
- "t": "t_floor",
- "r": "t_floor",
- "k": "t_floor",
- "v": "t_floor",
- "+": "t_door_c",
- ",": "t_dirt",
- "q": "t_wall_half",
- "0": "t_window_frame",
- "s": "t_floor"
- },
- "furniture": {
- "c": "f_counter",
- "C": "f_chair",
- "t": "f_table",
- "r": "f_rack",
- "k": "f_wood_keg",
- "v": "f_fvat_empty",
- "s": "f_standing_tank"
- }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_chopshop_10",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- " ",
- "wwwwwwwwwwwwwwwwwwww",
- "w..................w",
- "....................",
- "....................",
- "....................",
- "....................",
- "....................",
- "....................",
- "w..................w",
- "wwwwwww.www.wwwwwwww",
- " w...w...w ",
- " w...w...w ",
- " wwwwww.ww ",
- " ",
- " ",
- " "
- ],
- "terrain": { "w": "t_wall_half", ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_chopshop_11",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- " ",
- "wwwwwwwwwwwwwwwwwwww",
- "w..................w",
- "....................",
- "....................",
- "....................",
- "....................",
- "....................",
- "....................",
- "w..................w",
- "wwwwwww+www+wwwwwwww",
- " w...w...w ",
- " w...w...w ",
- " wwwwww+ww ",
- " ",
- " ",
- " "
- ],
- "terrain": { "w": "t_wall", ".": "t_dirt", "+": "t_door_c" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_chopshop_12_done",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- " ",
- "wwwwwwwwwwwwwwwwwwww",
- "w..................w",
- "....................",
- "....................",
- "..rrr...cccc........",
- "....................",
- "....................",
- "....................",
- "w..................w",
- "wwwwwww+www+wwwwwwww",
- " wr.bwr..w ",
- " wr.bwr..w ",
- " wwwwww+ww ",
- " ",
- " ",
- " "
- ],
- "terrain": { "w": "t_wall", ".": "t_dirtfloor", "+": "t_door_c", "r": "t_dirtfloor", "c": "t_dirtfloor", "b": "t_dirtfloor" },
- "furniture": { "r": "f_rack", "c": "f_counter", "b": "f_makeshift_bed" },
- "place_vehicles": [ { "vehicle": "armored_car", "chance": 100, "rotation": 0, "x": 15, "y": 7 } ],
- "place_npcs": [ { "class": "ranch_scrapper_1", "x": 13, "y": 12 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_clinic_8",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- "........ .......",
- "........ .......",
- ".....................",
- ".....................",
- ".....................",
- ".....................",
- ".....................",
- "........ .......",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " "
- ],
- "terrain": { ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_clinic_9",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- "wwwwwwww wwwwwww",
- "w......w w.....w",
- "w......wwwwwww.....w",
- "w..................w",
- "w..................w",
- "w..................w",
- "w......wwwwwww.....w",
- "www..www wwwwwww",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " "
- ],
- "terrain": { "w": "t_wall_half", ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_clinic_10",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- "wwwwwwww wwwwwww",
- "w......w w.....w",
- "[......wwwwwww.....[",
- "w......w.....w.....w",
- "w..................w",
- "[......w.....w.....[",
- "w......wwwwwww.....w",
- "www..www wwwwwww",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " "
- ],
- "terrain": { "w": "t_wall", ".": "t_dirt", "[": "t_window_boarded_noglass" },
- "place_item": [ { "item": "ax", "x": 13, "y": 18 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_clinic_11",
- "object": {
- "mapgensize": [ 20, 20 ],
- "rows": [
- " ",
- " ",
- " ",
- "wwwwwwww wwwwwww",
- "w......w wcccccw",
- "[......wwwwwww.....[",
- "w......w.....w.....w",
- "w..............tt..w",
- "[..... w.....w.....[",
- "w......wwwwwww.....w",
- "www++www wwwwwww",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " "
- ],
- "terrain": { "w": "t_wall", ".": "t_floor", "+": "t_door_c", "[": "t_window_boarded_noglass", "c": "t_floor", "t": "t_floor" },
- "furniture": { "c": "f_cupboard", "t": "f_table" },
- "place_npcs": [ { "class": "ranch_nurse_1", "x": 5, "y": 6 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_greenhouse_16",
- "object": {
- "mapgensize": [ 13, 13 ],
- "rows": [
- "wwwww.wwwww ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "wwwww.wwwww "
- ],
- "terrain": { "w": "t_wall_half", ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_greenhouse_17_done",
- "object": {
- "mapgensize": [ 13, 13 ],
- "rows": [
- "wwwww+wwwww ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "w.........w ",
- "wwwww+wwwww "
- ],
- "terrain": { "w": "t_window", ".": "t_dirt", "+": "t_door_c" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_junk_shop_12",
- "object": {
- "mapgensize": [ 16, 16 ],
- "rows": [
- "wwwwww ",
- "w....wwwwwwwwwww ",
- "w....w.........w ",
- "w..............w ",
- "w....w.........w ",
- "wwwwww.........w ",
- " w.........w ",
- " ..........w ",
- " w.........w ",
- " www.....www ",
- " w.....w ",
- " w.....w ",
- " w...... ",
- " w.....w ",
- " wwwwwww ",
- " "
- ],
- "terrain": { "w": "t_wall_half", ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_junk_shop_13",
- "object": {
- "mapgensize": [ 16, 16 ],
- "rows": [
- "wwwwww ",
- "w....wwww000wwww ",
- "0....w.........w ",
- "0..............w ",
- "w....w.........0 ",
- "wwwwww.........0 ",
- " w.........w ",
- " ..........w ",
- " w.........w ",
- " www.....www ",
- " w.....w ",
- " w.....w ",
- " 0...... ",
- " w.....w ",
- " wwwwwww ",
- " "
- ],
- "terrain": { "w": "t_wall", ".": "t_dirtfloor", "0": "t_window_frame" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_junk_shop_14_done",
- "object": {
- "mapgensize": [ 16, 16 ],
- "rows": [
- "wwwwww ",
- "w....wwww[[[wwww ",
- "[....w........rw ",
- "[.............rw ",
- "w....w..cc.cc.r[ ",
- "wwwwww..cc.cc.r[ ",
- " w..cc.cc.rw ",
- " +..cc.cc.rw ",
- " w........rw ",
- " www.....www ",
- " w.....w ",
- " w..c..w ",
- " [..c..+ ",
- " w..c..w ",
- " wwwwwww ",
- " "
- ],
- "terrain": {
- "w": "t_wall",
- ".": "t_dirtfloor",
- "[": "t_window_boarded_noglass",
- "+": "t_door_c",
- "r": "t_dirtfloor",
- "c": "t_dirtfloor"
- },
- "furniture": { "c": "f_counter", "r": "f_rack" },
- "place_npcs": [ { "class": "ranch_scavenger_1", "x": 9, "y": 12 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_lumbermill_4",
- "object": {
- "mapgensize": [ 12, 12 ],
- "rows": [
- ".......... ",
- ".......... ",
- "WWW....... ",
- "W......... ",
- "W......... ",
- ".......... ",
- ".......... ",
- ".......... ",
- ".......... ",
- ".......... ",
- ".......... ",
- ".......... "
- ],
- "terrain": { "W": "t_wall_log_half", ".": "t_dirt" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_lumbermill_5",
- "object": {
- "mapgensize": [ 12, 12 ],
- "rows": [
- " ",
- " ",
- "WWW....WWW ",
- "W........W ",
- "W........W ",
- "W......... ",
- "W......... ",
- "W......... ",
- "W......... ",
- "W........W ",
- "W........W ",
- "WWW....WWW "
- ],
- "terrain": { "W": "t_wall_log", ".": "t_dirtfloor" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_lumbermill_6",
- "object": {
- "mapgensize": [ 12, 12 ],
- "rows": [
- " ",
- " ",
- "WWW....WWW ",
- "W........W ",
- "W........W ",
- "W......... ",
- "W......... ",
- "W......... ",
- "W......... ",
- "W.......rW ",
- "W.......rW ",
- "WWW....WWW "
- ],
- "terrain": { "r": "t_dirtfloor", "W": "t_wall_log", ".": "t_dirtfloor" },
- "furniture": { "r": "f_rack" },
- "place_item": [ { "item": "frame", "x": 3, "y": 6 }, { "item": "frame", "x": 3, "y": 7 }, { "item": "frame", "x": 3, "y": 8 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_lumbermill_7",
- "object": {
- "mapgensize": [ 12, 12 ],
- "rows": [
- " ",
- " ",
- "WWWc...WWW ",
- "W..c....rW ",
- "W..c....rW ",
- "W..c...... ",
- "W......... ",
- "W......... ",
- "W......... ",
- "W.......rW ",
- "W.......rW ",
- "WWW....WWW "
- ],
- "terrain": { "r": "t_dirtfloor", "W": "t_wall_log", ".": "t_dirtfloor", "c": "t_conveyor" },
- "furniture": { "r": "f_rack" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_lumbermill_8_done",
- "object": {
- "mapgensize": [ 12, 12 ],
- "rows": [
- " ",
- " ",
- "WWWc...WWW ",
- "W..c....rW ",
- "W..c....rW ",
- "W..c...... ",
- "W..m...... ",
- "W..m...... ",
- "W..M...... ",
- "W.......rW ",
- "W.......rW ",
- "WWW....WWW "
- ],
- "terrain": {
- "r": "t_dirtfloor",
- "W": "t_wall_log",
- ".": "t_dirtfloor",
- "c": "t_conveyor",
- "m": "t_machinery_old",
- "M": "t_machinery_heavy"
- },
- "furniture": { "r": "f_rack" },
- "place_item": [
- { "item": "log", "x": 3, "y": 0 },
- { "item": "log", "x": 3, "y": 1 },
- { "item": "log", "x": 3, "y": 1 },
- { "item": "log", "x": 0, "y": 1, "amount": [ 1, 5 ] },
- { "item": "log", "x": 1, "y": 1, "amount": [ 1, 5 ] },
- { "item": "2x4", "x": 3, "y": 9, "amount": [ 1, 10 ] },
- { "item": "log", "x": 3, "y": 2 }
- ],
- "place_npcs": [ { "class": "ranch_woodcutter_1", "x": 4, "y": 7 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_outhouse_8",
- "object": {
- "mapgensize": [ 5, 5 ],
- "rows": [
- "wwww ",
- "..0w ",
- "wwww ",
- "..0w ",
- "wwww "
- ],
- "terrain": { "w": "t_wall_half", "0": "t_pit", ".": "t_dirtfloor" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_outhouse_9_done",
- "object": {
- "mapgensize": [ 5, 5 ],
- "rows": [
- "wwww ",
- "+.0w ",
- "wwww ",
- "+.0w ",
- "wwww "
- ],
- "terrain": { "w": "t_wall", "+": "t_door_c", ".": "t_dirtfloor", "0": "t_pit" },
- "place_npcs": [ { "class": "ranch_ill_1", "x": 2, "y": 1 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_toolshed_8",
- "object": {
- "mapgensize": [ 6, 6 ],
- "rows": [
- "wwwwww",
- "w....w",
- ".....w",
- "w....w",
- "wwwwww",
- " "
- ],
- "terrain": { "w": "t_wall_half", ".": "t_dirtfloor" }
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "nested_mapgen_id": "tacoma_commune_toolshed_9_done",
- "object": {
- "mapgensize": [ 6, 6 ],
- "rows": [
- "wwwwww",
- "wccccw",
- "+....W",
- "wccccw",
- "wwwwww",
- " "
- ],
- "terrain": { "w": "t_wall", "+": "t_door_c", "W": "t_window_boarded_noglass", "c": "t_dirtfloor", ".": "t_dirtfloor" },
- "furniture": { "c": "f_counter" }
- }
- }
-]
diff --git a/data/json/npcs/npc.json b/data/json/npcs/npc.json
index 8851834290fc4..db3b3b25da9c4 100644
--- a/data/json/npcs/npc.json
+++ b/data/json/npcs/npc.json
@@ -1,26 +1,4 @@
[
- {
- "type": "npc",
- "id": "old_guard_rep",
- "//": "Appears in the refugee center as a source of missions and info. Faction critical.",
- "//": "name_suffix is appended to the end of the npc's name.",
- "//": "using 'name_unique' instead will set the guy's name as is.",
- "name_suffix": "Representative",
- "//": "Class is based on the enum in npc.h. The important ones are 0=NC_NONE, 2=NC_SHOPKEEP,",
- "//": "3=NC_HACKER, 4=NC_DOCTOR, 5=NC_TRADER, 6=NC_NINJA, 7=NC_COWBOY, 8=NC_SCIENTIST,",
- "//": "9=NC_BOUNTY_HUNTER, 10=NC_THUG, 11=NC_SCAVENGER, 13=NC_HUNTER, 14=NC_SOLDIER.",
- "class": "NC_COWBOY",
- "//": "Attitude is based on the enum in npc.h. The important ones are 0=NPCATT_NULL, 1=NPCATT_TALK",
- "//": "3=NPCATT_FOLLOW, 7=NPCATT_DEFEND, 10=NPCATT_KILL, and 11=NPCATT_FLEE",
- "attitude": 0,
- "//": "Mission is based on the enum in npc.h. The important ones are 0=NPC_MISSION_NUL, 3=NPC_MISSION_SHOPKEEP",
- "//": "and 7=NPC_MISSION_GUARD",
- "//": "8 = NPC_MISSION_GUARD_PATROL will actively investigate noises",
- "mission": 7,
- "chat": "TALK_OLD_GUARD_REP",
- "faction": "old_guard",
- "mission_offered": "MISSION_OLD_GUARD_REP_1"
- },
{
"type": "npc",
"id": "old_guard_soldier",
@@ -32,19 +10,6 @@
"chat": "TALK_OLD_GUARD_SOLDIER",
"faction": "old_guard"
},
- {
- "type": "npc",
- "id": "science_rep",
- "//": "Appears in the refugee center as a source of missions and info. Faction critical.",
- "name_suffix": "Doctor",
- "class": "NC_DOCTOR",
- "attitude": 0,
- "//": "Possibly should change to NPC_MISSION_SHOPKEEP and sell medical supplies.",
- "mission": 7,
- "chat": "TALK_SCIENCE_REP",
- "faction": "old_guard",
- "mission_offered": "MISSION_SCIENCE_REP_1"
- },
{
"type": "npc",
"id": "old_guard_necropolis_cpt",
@@ -69,302 +34,6 @@
"faction": "old_guard",
"mission_offered": "MISSION_OLD_GUARD_NEC_COMMO_1"
},
- {
- "type": "npc",
- "id": "evac_merchant",
- "//": "Appears in the refugee center as shopkeeper with missions. Faction critical.",
- "name_suffix": "Merchant",
- "class": "NC_EVAC_SHOPKEEP",
- "attitude": 0,
- "mission": 3,
- "chat": "TALK_EVAC_MERCHANT",
- "mission_offered": "MISSION_FREE_MERCHANTS_EVAC_1",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "evac_broker",
- "//": "Appears in the refugee center as a bulk trader. Promotes production of nonperishable food.",
- "name_suffix": "Broker",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_FREE_MERCHANT_STOCKS",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "evac_guard1",
- "//": "Appears in the refugee center as a guard with custom dialogue.",
- "name_suffix": "Guard",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 8,
- "chat": "TALK_EVAC_GUARD1",
- "mission_offered": "MISSION_EVAC_SMOKER_GET_CIGARETTES",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "evac_guard2",
- "//": "Appears in the refugee center as a guard with custom dialogue.",
- "name_suffix": "Guard",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 8,
- "chat": "TALK_EVAC_GUARD2",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "evac_guard3",
- "//": "Appears in the refugee center as a guard with custom dialogue.",
- "name_suffix": "Guard",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 8,
- "chat": "TALK_EVAC_GUARD3",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "guard",
- "//": "A generic guard for the Free Merchants faction.",
- "name_suffix": "Guard",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 8,
- "chat": "TALK_GUARD",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "hostile_guard",
- "//": "A generic hostile guard for the Free Merchants faction. For where the player shouldn't venture.'",
- "name_suffix": "Guard",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 10,
- "mission": 8,
- "chat": "TALK_DONE",
- "faction": "free_merchants"
- },
- {
- "type": "npc",
- "id": "ranch_foreman",
- "//": "Appears at the ranch after you progress in the refugee center quests. Faction critical.",
- "name_suffix": "Foreman",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_FOREMAN",
- "mission_offered": "MISSION_RANCH_FOREMAN_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_construction_1",
- "//": "Flavor",
- "name_suffix": "Carpenter",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_CONSTRUCTION_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_construction_2",
- "//": "Construction skill trainer",
- "name_suffix": "Carpenter",
- "class": "NC_THUG",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_CONSTRUCTION_2",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_woodcutter_1",
- "//": "Can purchase wood",
- "name_suffix": "Lumberjack",
- "class": "NC_COWBOY",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_WOODCUTTER",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch__woodcutter_2",
- "//": "Flavor",
- "name_suffix": "Woodworker",
- "class": "NC_COWBOY",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_WOODCUTTER_2",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_crop_overseer",
- "//": "Flavor",
- "name_suffix": "Crop Overseer",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_CROP_OVERSEER",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_farmer_1",
- "//": "Flavor",
- "name_suffix": "Farmer",
- "class": "NC_THUG",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_FARMER_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_farmer_2",
- "//": "Flavor",
- "name_suffix": "Farmer",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_FARMER_2",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_ill_1",
- "//": "Flavor",
- "name_suffix": "Laborer",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_ILL_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_nurse_1",
- "//": "Mission source for clinic. Provides medical attention.",
- "name_suffix": "Nurse",
- "gender": "female",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_NURSE",
- "mission_offered": "MISSION_RANCH_NURSE_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_doctor",
- "//": "Provides advanced medical attention.",
- "name_suffix": "Doctor",
- "class": "NC_DOCTOR",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_DOCTOR",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_scrapper_1",
- "//": "Flavor",
- "name_suffix": "Scrapper",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_SCRAPPER",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_scavenger_1",
- "//": "Mission source, shopkeep",
- "name_suffix": "Scavenger Boss",
- "class": "NC_JUNK_SHOPKEEP",
- "attitude": 0,
- "mission": 3,
- "chat": "TALK_RANCH_SCAVENGER_1",
- "mission_offered": "MISSION_RANCH_SCAVENGER_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_bartender",
- "//": "Mission source, shopkeep",
- "name_suffix": "Bartender",
- "class": "NC_BARTENDER",
- "attitude": 0,
- "mission": 3,
- "chat": "TALK_RANCH_BARKEEP",
- "mission_offered": "MISSION_RANCH_BARTENDER_1",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "ranch_barber",
- "//": "Provides hair cuts",
- "name_suffix": "Barber",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_RANCH_BARBER",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "commune_guard",
- "//": "A generic guard for the Tacoma Commune faction.",
- "name_suffix": "Guard",
- "class": "NC_BOUNTY_HUNTER",
- "attitude": 0,
- "mission": 8,
- "chat": "TALK_GUARD",
- "faction": "tacoma_commune"
- },
- {
- "type": "npc",
- "id": "scavenger_hunter",
- "//": "Appears in the refugee center as a trader.",
- "name_suffix": "Hunter",
- "class": "NC_HUNTER",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_EVAC_HUNTER",
- "faction": "wasteland_scavengers"
- },
- {
- "type": "npc",
- "id": "scavenger_merc",
- "//": "Appears in the refugee center as a partner for hire.",
- "name_suffix": "Merc",
- "class": "NC_SCAVENGER_MERC",
- "attitude": 0,
- "mission": 7,
- "chat": "TALK_SCAVENGER_MERC",
- "faction": "wasteland_scavengers"
- },
- {
- "type": "npc",
- "id": "arsonist",
- "//": "Appears in the refugee center as a unique trader and potential mission provider.",
- "name_unique": "Makayla Sanchez",
- "name_suffix": "Arsonist",
- "//": "Gender is only referenced when the npc has a complete unique name",
- "gender": "female",
- "class": "NC_ARSONIST",
- "attitude": 0,
- "mission": 3,
- "chat": "TALK_ARSONIST",
- "faction": "wasteland_scavengers"
- },
{
"type": "npc",
"id": "thug",
@@ -421,71 +90,6 @@
"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": "lobby_beggars"
- },
- {
- "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": "lobby_beggars"
- },
- {
- "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": "lobby_beggars"
- },
- {
- "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": "lobby_beggars"
- },
- {
- "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": "lobby_beggars"
- },
{
"type": "npc",
"id": "survivor_chef",
diff --git a/data/json/npcs/refugee_center/missiondef_free_merchants.json b/data/json/npcs/refugee_center/missiondef_free_merchants.json
new file mode 100644
index 0000000000000..48fec04b358f2
--- /dev/null
+++ b/data/json/npcs/refugee_center/missiondef_free_merchants.json
@@ -0,0 +1,13 @@
+[
+ {
+ "id": "MISSION_REACH_REFUGEE_CENTER",
+ "type": "mission_definition",
+ "name": "Reach Refugee Center",
+ "goal": "MGOAL_GO_TO_TYPE",
+ "difficulty": 1,
+ "value": 0,
+ "start": "reveal_refugee_center",
+ "origins": [ "ORIGIN_COMPUTER" ],
+ "destination": "evac_center"
+ }
+]
diff --git a/data/json/npcs/refugee_center/NPC_Aleesha_Seward.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Aleesha_Seward.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Aleesha_Seward.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Aleesha_Seward.json
diff --git a/data/json/npcs/refugee_center/NPC_Alonso_Lautrec.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Alonso_Lautrec.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Alonso_Lautrec.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Alonso_Lautrec.json
diff --git a/data/json/npcs/refugee_center/NPC_Boris_Borichenko.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Boris_Borichenko.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Boris_Borichenko.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Boris_Borichenko.json
diff --git a/data/json/npcs/refugee_center/NPC_Dana_Nunez.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Dana_Nunez.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Dana_Nunez.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Dana_Nunez.json
diff --git a/data/json/npcs/refugee_center/NPC_Draco_Dune.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Draco_Dune.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Draco_Dune.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Draco_Dune.json
diff --git a/data/json/npcs/refugee_center/NPC_Garry_Villeneuve.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Garry_Villeneuve.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Garry_Villeneuve.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Garry_Villeneuve.json
diff --git a/data/json/npcs/refugee_center/NPC_Guneet_Singh.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Guneet_Singh.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Guneet_Singh.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Guneet_Singh.json
diff --git a/data/json/npcs/refugee_center/NPC_Jenny_Forcette.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Jenny_Forcette.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Jenny_Forcette.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Jenny_Forcette.json
diff --git a/data/json/npcs/refugee_center/NPC_John_Clemens.json b/data/json/npcs/refugee_center/surface_refugees/NPC_John_Clemens.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_John_Clemens.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_John_Clemens.json
diff --git a/data/json/npcs/refugee_center/NPC_Mandeep_Singh.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Mandeep_Singh.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Mandeep_Singh.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Mandeep_Singh.json
diff --git a/data/json/npcs/refugee_center/NPC_Mangalpreet_Singh.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Mangalpreet_Singh.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Mangalpreet_Singh.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Mangalpreet_Singh.json
diff --git a/data/json/npcs/refugee_center/NPC_Pablo_Nunez.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Pablo_Nunez.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Pablo_Nunez.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Pablo_Nunez.json
diff --git a/data/json/npcs/refugee_center/NPC_Stan_Borichenko.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Stan_Borichenko.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Stan_Borichenko.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Stan_Borichenko.json
diff --git a/data/json/npcs/refugee_center/NPC_Vanessa_Toby.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Vanessa_Toby.json
similarity index 100%
rename from data/json/npcs/refugee_center/NPC_Vanessa_Toby.json
rename to data/json/npcs/refugee_center/surface_refugees/NPC_Vanessa_Toby.json
diff --git a/data/json/npcs/TALK_FREE_MERCHANT.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_broker.json
similarity index 87%
rename from data/json/npcs/TALK_FREE_MERCHANT.json
rename to data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_broker.json
index 386ccb2a35d92..b4e677d10e387 100644
--- a/data/json/npcs/TALK_FREE_MERCHANT.json
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_broker.json
@@ -1,4 +1,36 @@
[
+ {
+ "type": "npc",
+ "id": "evac_broker",
+ "//": "Appears in the refugee center as a bulk trader. Promotes production of nonperishable food.",
+ "name_suffix": "Broker",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_FREE_MERCHANT_STOCKS",
+ "faction": "free_merchants"
+ },
+ {
+ "id": "TALK_FREE_MERCHANT_STOCKS",
+ "type": "talk_topic",
+ "dynamic_line": "Hope you're here to trade.",
+ "repeat_responses": {
+ "for_item": [
+ "jerky",
+ "meat_smoked",
+ "fish_smoked",
+ "cooking_oil",
+ "cooking_oil2",
+ "cornmeal",
+ "flour",
+ "fruit_wine",
+ "beer",
+ "sugar"
+ ],
+ "response": { "text": "Delivering .", "topic": "TALK_DELIVER_ASK" }
+ },
+ "responses": [ { "text": "Who are you?", "topic": "TALK_FREE_MERCHANT_STOCKS_NEW" }, { "text": "Well, bye.", "topic": "TALK_DONE" } ]
+ },
{
"type": "talk_topic",
"id": "TALK_FREE_MERCHANT_STOCKS_NEW",
@@ -22,26 +54,5 @@
"id": "TALK_FREE_MERCHANT_STOCKS_ALL",
"dynamic_line": "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.",
"responses": [ { "text": "Interesting...", "topic": "TALK_FREE_MERCHANT_STOCKS" } ]
- },
- {
- "id": "TALK_FREE_MERCHANT_STOCKS",
- "type": "talk_topic",
- "dynamic_line": "Hope you're here to trade.",
- "repeat_responses": {
- "for_item": [
- "jerky",
- "meat_smoked",
- "fish_smoked",
- "cooking_oil",
- "cooking_oil2",
- "cornmeal",
- "flour",
- "fruit_wine",
- "beer",
- "sugar"
- ],
- "response": { "text": "Delivering .", "topic": "TALK_DELIVER_ASK" }
- },
- "responses": [ { "text": "Who are you?", "topic": "TALK_FREE_MERCHANT_STOCKS_NEW" }, { "text": "Well, bye.", "topic": "TALK_DONE" } ]
}
]
diff --git a/data/json/npcs/TALK_EVAC_GUARD1.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard1.json
similarity index 92%
rename from data/json/npcs/TALK_EVAC_GUARD1.json
rename to data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard1.json
index a2fd4b7121bbf..8259c5ba54801 100644
--- a/data/json/npcs/TALK_EVAC_GUARD1.json
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard1.json
@@ -1,4 +1,16 @@
[
+ {
+ "type": "npc",
+ "id": "evac_guard1",
+ "//": "Appears in the refugee center as a guard with custom dialogue.",
+ "name_suffix": "Guard",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 8,
+ "chat": "TALK_EVAC_GUARD1",
+ "mission_offered": "MISSION_EVAC_SMOKER_GET_CIGARETTES",
+ "faction": "free_merchants"
+ },
{
"type": "talk_topic",
"id": "TALK_EVAC_GUARD1",
diff --git a/data/json/npcs/TALK_EVAC_GUARD2.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard2.json
similarity index 89%
rename from data/json/npcs/TALK_EVAC_GUARD2.json
rename to data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard2.json
index 814c303b0aab4..4c94b34bec017 100644
--- a/data/json/npcs/TALK_EVAC_GUARD2.json
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard2.json
@@ -1,4 +1,15 @@
[
+ {
+ "type": "npc",
+ "id": "evac_guard2",
+ "//": "Appears in the refugee center as a guard with custom dialogue.",
+ "name_suffix": "Guard",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 8,
+ "chat": "TALK_EVAC_GUARD2",
+ "faction": "free_merchants"
+ },
{
"type": "talk_topic",
"id": "TALK_EVAC_GUARD2",
diff --git a/data/json/npcs/TALK_EVAC_GUARD3.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard3.json
similarity index 91%
rename from data/json/npcs/TALK_EVAC_GUARD3.json
rename to data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard3.json
index f3ff52e477a6b..1b03df507c6fd 100644
--- a/data/json/npcs/TALK_EVAC_GUARD3.json
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard3.json
@@ -1,4 +1,15 @@
[
+ {
+ "type": "npc",
+ "id": "evac_guard3",
+ "//": "Appears in the refugee center as a guard with custom dialogue.",
+ "name_suffix": "Guard",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 8,
+ "chat": "TALK_EVAC_GUARD3",
+ "faction": "free_merchants"
+ },
{
"id": "TALK_EVAC_GUARD3",
"type": "talk_topic",
diff --git a/data/json/npcs/TALK_GUARD.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard_generic.json
similarity index 64%
rename from data/json/npcs/TALK_GUARD.json
rename to data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard_generic.json
index 310bc5c68ce04..86013d6887da1 100644
--- a/data/json/npcs/TALK_GUARD.json
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_guard_generic.json
@@ -1,4 +1,15 @@
[
+ {
+ "type": "npc",
+ "id": "guard",
+ "//": "A generic guard for the Free Merchants faction.",
+ "name_suffix": "Guard",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 8,
+ "chat": "TALK_GUARD",
+ "faction": "free_merchants"
+ },
{
"id": "TALK_GUARD",
"type": "talk_topic",
diff --git a/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_hostile_guard.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_hostile_guard.json
new file mode 100644
index 0000000000000..e98cca58012e4
--- /dev/null
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_hostile_guard.json
@@ -0,0 +1,13 @@
+[
+ {
+ "type": "npc",
+ "id": "hostile_guard",
+ "//": "A generic hostile guard for the Free Merchants faction. For where the player shouldn't venture.'",
+ "name_suffix": "Guard",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 10,
+ "mission": 8,
+ "chat": "TALK_DONE",
+ "faction": "free_merchants"
+ }
+]
diff --git a/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json
new file mode 100644
index 0000000000000..1b51246e1aaba
--- /dev/null
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json
@@ -0,0 +1,505 @@
+[
+ {
+ "type": "npc",
+ "id": "evac_merchant",
+ "//": "Appears in the refugee center as shopkeeper with missions. Faction critical.",
+ "name_suffix": "Merchant",
+ "class": "NC_EVAC_SHOPKEEP",
+ "attitude": 0,
+ "mission": 3,
+ "chat": "TALK_EVAC_MERCHANT",
+ "mission_offered": "MISSION_FREE_MERCHANTS_EVAC_1",
+ "faction": "free_merchants"
+ },
+ {
+ "type": "npc_class",
+ "id": "NC_EVAC_SHOPKEEP",
+ "name": "Merchant",
+ "job_description": "I'm a local shopkeeper.",
+ "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ],
+ "//": "This is a unique NPC who doesn't get randomly selected background traits",
+ "common": false,
+ "bonus_int": { "one_in": 4 },
+ "bonus_per": { "one_in": 4 },
+ "shopkeeper_item_group": "NC_EVAC_SHOPKEEP_misc",
+ "skills": [
+ {
+ "skill": "ALL",
+ "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] }
+ },
+ { "skill": "mechanics", "bonus": { "one_in": 2 } },
+ { "skill": "electronics", "bonus": { "rng": [ 0, 2 ] } },
+ { "skill": "speech", "bonus": { "rng": [ 1, 3 ] } },
+ { "skill": "barter", "bonus": { "rng": [ 3, 5 ] } }
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "NC_EVAC_SHOPKEEP_storage",
+ "items": [ [ "duffelbag", 100 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "NC_EVAC_SHOPKEEP_coat",
+ "items": [ [ "trenchcoat", 80 ], [ "vest", 60 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "NC_EVAC_SHOPKEEP_misc",
+ "items": [
+ { "item": "FMCNote", "count-min": 50, "count-max": 300, "prob": 100 },
+ [ "vest", 40 ],
+ [ "kevlar", 15 ],
+ [ "jacket_army", 30 ],
+ [ "trenchcoat", 25 ],
+ [ "trenchcoat_leather", 20 ],
+ [ "trenchcoat_fur", 10 ],
+ [ "vest_leather", 15 ],
+ [ "football_armor", 30 ],
+ [ "jacket_leather", 25 ],
+ [ "jacket_jean", 15 ],
+ [ "jacket_flannel", 15 ],
+ [ "pants_cargo", 40 ],
+ [ "shorts_cargo", 25 ],
+ [ "pants_army", 30 ],
+ [ "pants_leather", 15 ],
+ [ "gloves_fingerless", 30 ],
+ [ "gloves_tactical", 15 ],
+ [ "gauntlets_larmor", 25 ],
+ [ "gloves_fur", 5 ],
+ [ "gloves_leather", 35 ],
+ [ "gloves_work", 20 ],
+ [ "boots", 20 ],
+ [ "boots_steel", 20 ],
+ [ "boots_hiking", 30 ],
+ [ "knee_high_boots", 5 ],
+ [ "boots_combat", 15 ],
+ [ "boots_larmor", 10 ],
+ [ "boots_fur", 10 ],
+ [ "helmet_army", 25 ],
+ [ "tac_helmet", 20 ],
+ [ "helmet_riot", 20 ],
+ [ "tac_fullhelmet", 10 ],
+ [ "helmet_larmor", 15 ],
+ [ "firehelmet", 5 ],
+ [ "hood_rain", 15 ],
+ [ "dive_bag", 10 ],
+ [ "runner_bag", 20 ],
+ [ "molle_pack", 10 ],
+ [ "backpack", 40 ],
+ [ "backpack_leather", 35 ],
+ [ "mbag", 25 ],
+ [ "slingpack", 15 ],
+ [ "rucksack", 10 ],
+ [ "duffelbag", 10 ],
+ [ "mask_hockey", 15 ],
+ [ "mask_gas", 25 ],
+ [ "mask_filter", 20 ],
+ [ "sunglasses", 15 ],
+ [ "glasses_safety", 15 ],
+ [ "goggles_ski", 5 ],
+ [ "chestrig", 20 ],
+ [ "legrig", 15 ],
+ [ "tool_belt", 15 ],
+ [ "fanny", 5 ],
+ [ "dump_pouch", 5 ],
+ [ "ragpouch", 15 ],
+ [ "leather_pouch", 15 ],
+ [ "quiver", 15 ],
+ [ "quiver_large", 5 ],
+ [ "wristwatch", 30 ],
+ [ "diving_watch", 5 ],
+ [ "pocketwatch", 10 ],
+ [ "holster", 25 ],
+ [ "bandana", 20 ],
+ [ "scarf", 15 ],
+ [ "hat_boonie", 20 ],
+ [ "balclava", 10 ],
+ [ "pickaxe", 20 ],
+ [ "makeshift_machete", 15 ],
+ [ "flamethrower_crude", 20 ],
+ [ "fungicide", 20 ],
+ [ "antifungal", 20 ],
+ [ "antiparasitic", 20 ],
+ [ "diazepam", 15 ],
+ [ "small_repairkit", 20 ],
+ [ "grapnel", 5 ],
+ [ "misc_repairkit", 15 ],
+ [ "flamethrower_simple", 15 ],
+ [ "toolbox", 20 ],
+ [ "crowbar", 25 ],
+ [ "machete", 25 ],
+ [ "ax", 25 ],
+ [ "spear_knife", 30 ],
+ [ "22_lr", 25 ],
+ [ "22_fmj", 1 ],
+ [ "223", 15 ],
+ [ "308", 10 ],
+ [ "3006", 10 ],
+ [ "reloaded_9mm", 30 ],
+ [ "9mm", 25 ],
+ [ "9mmfmj", 5 ],
+ [ "45_acp", 10 ],
+ [ "reloaded_45_acp", 25 ],
+ [ "45_jhp", 1 ],
+ [ "rifle_9mm", 20 ],
+ [ "rifle_22", 20 ],
+ [ "uzi", 10 ],
+ [ "mac_10", 10 ],
+ [ "crossbow", 15 ],
+ [ "sig_mosquito", 15 ],
+ [ "sw_22", 15 ],
+ [ "glock_19", 15 ],
+ [ "usp_9mm", 10 ],
+ [ "m9", 35 ],
+ [ "cx4", 1 ],
+ [ "usp_45", 10 ],
+ [ "m1911", 10 ],
+ [ "ar15", 10 ],
+ [ "savage_111f", 5 ],
+ [ "remington_700", 5 ],
+ [ "ruger_1022", 10 ],
+ [ "marlin_9a", 10 ],
+ [ "remington_870", 10 ],
+ [ "mossberg_500", 5 ],
+ [ "shotgun_d", 5 ],
+ [ "pipebomb", 10 ],
+ [ "molotov", 10 ],
+ [ "matchbomb", 10 ],
+ [ "longbow", 5 ],
+ [ "compositebow", 15 ],
+ [ "shortbow", 10 ],
+ [ "arrow_metal", 25 ],
+ [ "bolt_steel", 10 ],
+ [ "laser_sight", 15 ],
+ [ "rail_laser_sight", 10 ],
+ [ "rifle_scope", 20 ],
+ [ "pistol_scope", 10 ],
+ [ "improve_sights", 20 ],
+ [ "combatsaw_off", 5 ],
+ [ "firemachete_off", 5 ],
+ [ "shishkebab_off", 5 ],
+ [ "helsing", 5 ],
+ [ "tihar", 5 ],
+ [ "ashot", 5 ]
+ ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT",
+ "type": "talk_topic",
+ "dynamic_line": { "u_is_wearing": "badge_marshal", "yes": "Welcome marshal...", "no": "Welcome..." },
+ "responses": [
+ { "text": "I'm actually new...", "topic": "TALK_EVAC_MERCHANT_NEW" },
+ { "text": "What are you doing here?", "topic": "TALK_EVAC_MERCHANT_PLANS" },
+ { "text": "Heard anything about the outside world?", "topic": "TALK_EVAC_MERCHANT_WORLD" },
+ { "text": "Is there any way I can join your group?", "topic": "TALK_EVAC_MERCHANT_ASK_JOIN" },
+ { "text": "Can I do anything for the center?", "topic": "TALK_MISSION_LIST" },
+ { "text": "Let's trade then.", "effect": "start_trade", "topic": "TALK_EVAC_MERCHANT" },
+ {
+ "text": "I figured you might be looking for some help...",
+ "topic": "TALK_NONE",
+ "effect": { "companion_mission": "REFUGEE_MERCHANT" },
+ "condition": { "u_has_any_trait": [ "NPC_MISSION_LEV_1" ] }
+ },
+ { "text": "Well, bye.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_NEW",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "No rest for the weary...", "topic": "TALK_EVAC_MERCHANT" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_PLANS",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "It's just as bad out here, if not worse.", "topic": "TALK_EVAC_MERCHANT_PLANS2" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_PLANS2",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "Guess shit's a mess everywhere...", "topic": "TALK_EVAC_MERCHANT" },
+ {
+ "text": "[INT 12] Wait, six buses and refugees... how many people do you still have crammed in here?",
+ "topic": "TALK_EVAC_MERCHANT_PLANS3",
+ "condition": { "u_has_intelligence": 12 }
+ }
+ ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_PLANS3",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Guess it works for you...", "topic": "TALK_EVAC_MERCHANT" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_HORDES",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Thanks for the tip.", "topic": "TALK_EVAC_MERCHANT" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_PRIME_LOOT",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Thanks, I'll keep an eye out.", "topic": "TALK_EVAC_MERCHANT" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_NO",
+ "type": "talk_topic",
+ "dynamic_line": "I'm sorry, not a risk we are willing to take right now.",
+ "responses": [ { "text": "Fine...", "topic": "TALK_EVAC_MERCHANT" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_HELL_NO",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Fine... *coughupyourscough*", "topic": "TALK_EVAC_MERCHANT" } ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_ASK_JOIN",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "I'm sure I can do something to change your mind *wink*", "topic": "TALK_EVAC_MERCHANT_HELL_NO" },
+ { "text": "I can pull my own weight!", "topic": "TALK_EVAC_MERCHANT_NO" },
+ {
+ "text": "[INT 11] I'm sure I can organize salvage operations to increase the bounty scavengers bring in!",
+ "topic": "TALK_EVAC_MERCHANT_NO",
+ "condition": { "u_has_intelligence": 11 }
+ },
+ {
+ "text": "[STR 11] I punch things in face real good!",
+ "topic": "TALK_EVAC_MERCHANT_NO",
+ "condition": { "and": [ { "not": { "u_has_intelligence": 7 } }, { "u_has_strength": 11 } ] }
+ },
+ { "text": "I guess I'll look somewhere else...", "topic": "TALK_EVAC_MERCHANT" }
+ ]
+ },
+ {
+ "id": "TALK_EVAC_MERCHANT_WORLD",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "Hordes?", "topic": "TALK_EVAC_MERCHANT_HORDES" },
+ { "text": "Heard of anything better than the odd gun cache?", "topic": "TALK_EVAC_MERCHANT_PRIME_LOOT" },
+ { "text": "Was hoping for something more...", "topic": "TALK_EVAC_MERCHANT" }
+ ]
+ },
+ {
+ "id": "MISSION_FREE_MERCHANTS_EVAC_1",
+ "type": "mission_definition",
+ "name": "Clear Back Bay",
+ "goal": "MGOAL_KILL_MONSTER",
+ "difficulty": 2,
+ "value": 50000,
+ "start": {
+ "assign_mission_target": { "om_terrain": "evac_center_9", "reveal_radius": 1 },
+ "update_mapgen": {
+ "om_terrain": "evac_center_9",
+ "om_special": "evac_center",
+ "place_monster": [ { "monster": "mon_zombie_electric", "name": "Sean McLaughlin", "x": 10, "y": 10, "target": true } ]
+ }
+ },
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_FREE_MERCHANTS_EVAC_2",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "If you really want to lend a hand we could use your help clearing out the dead in the back bay. Fearful of going outside during the first days of the cataclysm we ended up throwing our dead and the zombies we managed to kill in the sealed back bay. Our promising leader at the time even fell... he turned into something different. Kill all of them and make sure they won't bother us again. We can't pay much but it would help us to reclaim the bay.",
+ "accepted": "Please be careful, we don't need any more deaths.",
+ "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
+ "advice": "If you can, get a friend or two to help you.",
+ "inquire": "Will they be bothering us any longer?",
+ "success": "Thank you, having that big of a threat close to home was nerve wrecking.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_FREE_MERCHANTS_EVAC_2",
+ "type": "mission_definition",
+ "name": "Missing Caravan",
+ "goal": "MGOAL_ASSASSINATE",
+ "difficulty": 5,
+ "value": 5000,
+ "start": {
+ "assign_mission_target": { "om_terrain": "field", "reveal_radius": 1, "random": true, "search_range": 80 },
+ "update_mapgen": {
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ggggggggggggg ",
+ " ggggggggggggg ",
+ " gg....R...ggg ",
+ " gg........ggg ",
+ " gg.......Rggg ",
+ " gg.F..a...ggg ",
+ " gg........ggg ",
+ " gg........ggg ",
+ " gg........ggg ",
+ " gg........ggg ",
+ " gg........ggg ",
+ " ggggggggggggg ",
+ " ggggggggggggg ",
+ " ",
+ " ",
+ " ",
+ " b b ",
+ " b bb ",
+ " b ",
+ " ",
+ " "
+ ],
+ "terrain": { "g": "t_grass", ".": "t_dirt", "a": "t_dirt", "b": "t_dirt", "R": "t_dirt", "F": "t_dirt" },
+ "furniture": { "a": "f_ash" },
+ "traps": { "F": "tr_fur_rollmat", "R": "tr_rollmat" },
+ "fields": { "b": { "field": "fd_blood", "density": 1 } },
+ "place_loot": [
+ { "group": "cannedfood", "x": [ 6, 18 ], "y": [ 3, 15 ], "chance": 100 },
+ { "group": "alcohol_bottled_canned", "x": [ 6, 18 ], "y": [ 3, 15 ], "repeat": 2, "chance": 75 },
+ { "group": "trash_forest", "x": [ 6, 18 ], "y": [ 3, 15 ], "repeat": 2, "chance": 75 },
+ { "group": "stash_drugs", "x": [ 6, 18 ], "y": [ 3, 15 ], "chance": 75 },
+ { "group": "dresser", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 75 },
+ { "group": "softdrugs", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 50 },
+ { "group": "camping", "x": [ 9, 10 ], "y": [ 10, 14 ], "chance": 75 },
+ { "group": "casings", "x": [ 10, 15 ], "y": [ 15, 18 ], "repeat": 5, "chance": 100 },
+ { "item": "corpse", "x": 13, "y": 19, "chance": 100 },
+ { "item": "corpse", "x": 12, "y": 20, "chance": 100 }
+ ],
+ "place_npcs": [
+ { "class": "bandit", "x": 15, "y": 7 },
+ { "class": "thug", "x": 12, "y": 5 },
+ { "class": "bandit", "x": 9, "y": 8, "target": true }
+ ],
+ "place_vehicles": [
+ { "vehicle": "cube_van", "x": 12, "y": 12 },
+ { "vehicle": "quad_bike", "x": 18, "y": 7, "rotation": 270, "fuel": 500, "status": -1, "chance": 100 },
+ { "vehicle": "motorcycle", "x": 10, "y": 3, "rotation": 315, "fuel": 500, "status": -1, "chance": 100 },
+ { "vehicle": "motorcycle", "x": 7, "y": 7, "rotation": 90, "fuel": 500, "status": -1, "chance": 100 }
+ ]
+ }
+ },
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_FREE_MERCHANTS_EVAC_3",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "This is a bit more involved than the last request, we recently lost a scavenger party coming to trade with us and would like you to investigate. We strongly suspect a raider band or horde caught them off-guard. I can give you the coordinates of their last radio message but little else. In either case, deal with the threat so that the scavengers can continue to pass through in relative safety. The best reward I can offer is a claim to the supplies they were carrying.",
+ "accepted": "Our community survives on trade, we appreciate it.",
+ "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
+ "advice": "If you can, get a friend or two to help you.",
+ "inquire": "Have you dealt with them?",
+ "success": "Thank you, the world is a better place without them. Two of our more skilled individuals accepted the assistance of the Old Guard in setting up an outpost while you were out. We didn't have many other options, refugees are still streaming in and we don't know what else to do with our limited food supply. If you get a chance, you should see if they need your assistance in the future...",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_FREE_MERCHANTS_EVAC_3",
+ "type": "mission_definition",
+ "name": "Retrieve Prospectus",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "commune_prospectus",
+ "start": {
+ "assign_mission_target": { "om_terrain": "ranch_camp_67", "reveal_radius": 1 },
+ "update_mapgen": {
+ "place_npcs": [
+ { "class": "ranch_foreman", "x": 16, "y": 15, "target": true, "add_trait": "NPC_MISSION_LEV_1" },
+ { "class": "ranch_construction_1", "x": 9, "y": 17 }
+ ]
+ }
+ },
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_FREE_MERCHANTS_EVAC_5",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The new outpost that we've started could use your assistance. I need you to get the foreman's prospectus before we begin to send additional refugees to the farming commune. Consult with the foreman to get more detailed tasks.",
+ "accepted": "I'm sure the outpost will expand quickly with your assistance.",
+ "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
+ "advice": "Just follow your map.",
+ "inquire": "Do you have the prospectus?",
+ "success": "With this we'll be able to convince others to invest in the commune. Thank you.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_FREE_MERCHANTS_EVAC_4",
+ "type": "mission_definition",
+ "name": "Find 25 Plutonium Fuel Cells",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 400000,
+ "item": "plut_cell",
+ "count": 25,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "We are starting to build new infrastructure here and would like to get a few new electrical systems online... unfortunately our existing system relies on an array of something called RTGs. Running generators isn't a viable option underground, of course. The military was using some kind of high density energy batteries for experimental weaponry before the cataclysm, and I'm told that we can use those for a temporary solution, and when we burn through the high density part our eggheads say they might be able to reuse the plutonium core to build more RTGs. It's a big job.",
+ "accepted": "If you can do this for us our survival options would vastly increase.",
+ "rejected": "Come back when you get a chance, we really need to start reclaiming the region.",
+ "advice": "Can't help you much, I've never even seen one of these plutonium batteries... or whatever they are, I keep getting a lecture whenever I call them that.",
+ "inquire": "How is the search going?",
+ "success": "Great, I know it isn't much but we hope to continue to expand thanks to your help.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_FREE_MERCHANTS_EVAC_5",
+ "type": "mission_definition",
+ "name": "Find 40 Canned Food",
+ "goal": "MGOAL_FIND_ITEM_GROUP",
+ "difficulty": 3,
+ "value": 400000,
+ "item_group": "foodintincan",
+ "count": 40,
+ "required_container": "can_food",
+ "remove_container": true,
+ "empty_container": "can_food_unsealed",
+ "end": {
+ "update_mapgen": {
+ "om_terrain": "evac_center_19",
+ "om_special": "evac_center",
+ "place_loot": [
+ { "item": "can_beans", "x": 1, "y": 5, "chance": 100, "repeat": 3 },
+ { "item": "can_spam", "x": 1, "y": 6, "chance": 100, "repeat": 2 },
+ { "item": "can_tomato", "x": 1, "y": 7, "chance": 100, "repeat": 3 },
+ { "item": "can_sardine", "x": 2, "y": 5, "chance": 100, "repeat": 2 },
+ { "item": "soup_veggy", "x": 2, "y": 6, "chance": 100, "repeat": 3 },
+ { "item": "soup_dumplings", "x": 2, "y": 7, "chance": 100, "repeat": 2 },
+ { "item": "soup_meat", "x": 1, "y": 10, "chance": 100, "repeat": 3 },
+ { "item": "soup_tomato", "x": 1, "y": 11, "chance": 100, "repeat": 2 },
+ { "item": "soup_fish", "x": 1, "y": 12, "chance": 100, "repeat": 3 },
+ { "item": "fish_canned", "x": 2, "y": 10, "chance": 100, "repeat": 2 },
+ { "item": "curry_veggy", "x": 2, "y": 11, "chance": 100, "repeat": 3 },
+ { "item": "ravioli", "x": 2, "y": 12, "chance": 100, "repeat": 2 },
+ { "item": "curry_meat", "x": 1, "y": 15, "chance": 100, "repeat": 3 },
+ { "item": "chili", "x": 1, "y": 16, "chance": 100, "repeat": 2 },
+ { "item": "soup_chicken", "x": 1, "y": 17, "chance": 100, "repeat": 3 },
+ { "item": "pork_beans", "x": 2, "y": 15, "chance": 100, "repeat": 2 },
+ { "item": "soup_mushroom", "x": 2, "y": 16, "chance": 100, "repeat": 3 },
+ { "item": "can_tuna", "x": 2, "y": 17, "chance": 100, "repeat": 2 }
+ ]
+ }
+ },
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_FREE_MERCHANTS_EVAC_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "While we've managed to secure day to day food supplies, it's very much hand to mouth. Our reserves would barely last a few days if something kept our people locked in. We need a stockpile to avoid that. It would have to be made of something that would be long lasting though, so canned food's the way to go. Get us about 40 cans and we should be able to ride out anything that comes our way.",
+ "accepted": "It'll take a load off my shoulders if I can finally stop worrying about this.",
+ "rejected": "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying. If you reconsider let me know.",
+ "advice": "Grocery stores, house kitchens, there's plenty of places to look.",
+ "inquire": "How is the search going?",
+ "success": "That's one less thing to worry about. Glad to have someone like you on our side.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ }
+]
diff --git a/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json b/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json
new file mode 100644
index 0000000000000..3f4010faa9211
--- /dev/null
+++ b/data/json/npcs/refugee_center/surface_staff/NPC_old_guard_doctor.json
@@ -0,0 +1,180 @@
+[
+ {
+ "type": "npc",
+ "id": "science_rep",
+ "//": "Appears in the refugee center as a source of missions and info. Faction critical.",
+ "name_suffix": "Doctor",
+ "class": "NC_DOCTOR",
+ "attitude": 0,
+ "//": "Possibly should change to NPC_MISSION_SHOPKEEP and sell medical supplies.",
+ "mission": 7,
+ "chat": "TALK_SCIENCE_REP",
+ "faction": "old_guard",
+ "mission_offered": "MISSION_SCIENCE_REP_1"
+ },
+ {
+ "id": "TALK_SCIENCE_REP",
+ "type": "talk_topic",
+ "dynamic_line": { "u_has_any_trait": [ "PROF_FED" ], "yes": "Marshal...", "no": "Citizen..." },
+ "responses": [
+ { "text": "Who are you?", "topic": "TALK_SCIENCE_REP_NEW" },
+ { "text": "Heard anything about the outside world?", "topic": "TALK_SCIENCE_REP_WORLD" },
+ { "text": "Can I trade for supplies?", "topic": "TALK_SCIENCE_REP_ASK_TRADE" },
+ { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" },
+ { "text": "Well, bye.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "id": "TALK_SCIENCE_REP_NEW",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "So what are you doing right now?", "topic": "TALK_SCIENCE_REP_NEW_DOING" },
+ { "text": "Never mind...", "topic": "TALK_SCIENCE_REP" }
+ ]
+ },
+ {
+ "id": "TALK_SCIENCE_REP_NEW_DOING",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "What kind of news?", "topic": "TALK_SCIENCE_REP_NEW_NEWS" },
+ { "text": "Never mind...", "topic": "TALK_SCIENCE_REP" }
+ ]
+ },
+ {
+ "id": "TALK_SCIENCE_REP_NEW_NEWS",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Good luck with that...", "topic": "TALK_SCIENCE_REP" } ]
+ },
+ {
+ "id": "TALK_SCIENCE_REP_WORLD",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Never mind...", "topic": "TALK_SCIENCE_REP" } ]
+ },
+ {
+ "id": "TALK_SCIENCE_REP_ASK_TRADE",
+ "type": "talk_topic",
+ "dynamic_line": "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?",
+ "responses": [ { "text": "...", "topic": "TALK_SCIENCE_REP" } ]
+ },
+ {
+ "id": "MISSION_SCIENCE_REP_1",
+ "type": "mission_definition",
+ "name": "Analyze Zombie Blood",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "software_blood_data",
+ "start": {
+ "effect": [ { "u_buy_item": "vacutainer" }, { "u_buy_item": "usb_drive" } ],
+ "assign_mission_target": { "om_terrain": "hospital_2", "om_special": "hospital", "reveal_radius": 3 }
+ },
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_SCIENCE_REP_2",
+ "dialogue": {
+ "describe": "It could be very informative to perform an analysis of zombie blood...",
+ "offer": "We don't have the equipment for real analysis here so it'll need to be done in the field. I need you to get a fresh sample of zombie blood, take it to a hospital, and perform a centrifuge analysis of it.",
+ "accepted": "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.",
+ "rejected": "Are you sure? The scientific value of that blood data could be priceless...",
+ "advice": "The centrifuge is a bit technical; you might want to study up on the usage of computers before completing that part.",
+ "inquire": "Well, do you have the data yet?",
+ "success": "Excellent! This may be the key to removing the infection.",
+ "success_lie": "Wait, you couldn't possibly have the data! Liar!",
+ "failure": "What a shame, that data could have proved invaluable..."
+ }
+ },
+ {
+ "id": "MISSION_SCIENCE_REP_2",
+ "type": "mission_definition",
+ "name": "Download Workstation Data",
+ "goal": "MGOAL_FIND_ANY_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "software_lab_data",
+ "start": "create_lab_console",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_SCIENCE_REP_3",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The medical software didn't just analyze the blood, it triggered a government alert. Medical staff was under orders to immediately drive any matching samples to the nearest laboratory. That must mean the government knew! We have the destination address. Go there, get in, and bring back any records you can download off a computer.",
+ "accepted": "Great! I've mapped out a route to the address.",
+ "rejected": "Can't blame you, but come back if you change your mind.",
+ "advice": "If the laboratory is locked, maybe you can find an id card from employees who died in the evacuation. Also brush up on your computer skills, any computers will have some security on them. Bring back anything you find on a USB drive.",
+ "inquire": "Have you completed your mission?",
+ "success": "Thanks! This data looks damaged, but maybe I can make something out of it.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_SCIENCE_REP_3",
+ "type": "mission_definition",
+ "name": "Download Encryption Codes",
+ "goal": "MGOAL_FIND_ANY_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "software_lab_data",
+ "start": "create_hidden_lab_console",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_SCIENCE_REP_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Unfortunately the data you got was incomplete and mostly encrypted. There may be a way to get encryption codes, though. I found a complaint by the infosec team that they were unable to deliver critical security updates to one research site. It was some kind of more restricted secondary site hidden beneath a town, they weren't allowed in. That means it should have unsecured computers we can get the codes from.",
+ "accepted": "Great! I've mapped out a route, it should look like a normal house. Bring back anything you find on a USB drive.",
+ "rejected": "Can't blame you, but come back if you change your mind.",
+ "advice": "Expect the lab to be locked as usual.",
+ "inquire": "Have you completed your mission?",
+ "success": "Wonderful! Now I just need to get an undamaged, complete archive, and we can really figure out what happened.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_SCIENCE_REP_4",
+ "type": "mission_definition",
+ "name": "Download Research Archives",
+ "goal": "MGOAL_FIND_ANY_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "software_lab_data",
+ "start": "create_ice_lab_console",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_SCIENCE_REP_5",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "So there looks to be months, maybe years of experiments, and that data set must be huge. Database servers massive enough to house it would overheat running on emergency power. But I did found communications from a lab that had some kind of freezing portal open during the cataclysm, sending everything to subzero temperatures. I bet the archives inside that lab are still working.",
+ "accepted": "Great! I've mapped out a route. Bundle up, it gets colder the deeper you go and it looks like the archives were on the fourth basement level.",
+ "rejected": "Can't blame you, but come back if you change your mind.",
+ "advice": "That lab is going to start freezing and just get colder the deeper you go. You'll really need special equipment to survive that far down. Bring back anything you find on a USB drive.",
+ "inquire": "Have you completed your mission?",
+ "success": "Thanks! This is a lot of data to go through.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_SCIENCE_REP_5",
+ "type": "mission_definition",
+ "name": "Find Lab Tunnels",
+ "goal": "MGOAL_FIND_ANY_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "software_train_data",
+ "start": "reveal_lab_train_depot",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "In the data we found a major contract for tunneling and train equipment, ordered a long time ago. It's the best lead we have. Here's the address of the government lab where the equipment was delivered. I want you to go there, find the tunnels that they dug, and download everything you can about the train network.",
+ "accepted": "So glad for your help.",
+ "rejected": "Can't blame you, but come back if you change your mind.",
+ "advice": "The equipment was rated for 50 feet underground, so that tunnel entrance is 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.",
+ "inquire": "Have you completed your mission?",
+ "success": "Fantastic! I should be able to reconstruct what cargo moved between which labs. I wonder what was really going on down there.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ }
+]
diff --git a/data/json/npcs/TALK_ARSONIST.json b/data/json/npcs/refugee_center/surface_visitors/NPC_arsonist.json
similarity index 90%
rename from data/json/npcs/TALK_ARSONIST.json
rename to data/json/npcs/refugee_center/surface_visitors/NPC_arsonist.json
index db68f06cd8b07..7d7684a537c93 100644
--- a/data/json/npcs/TALK_ARSONIST.json
+++ b/data/json/npcs/refugee_center/surface_visitors/NPC_arsonist.json
@@ -1,4 +1,18 @@
[
+ {
+ "type": "npc",
+ "id": "arsonist",
+ "//": "Appears in the refugee center as a unique trader and potential mission provider.",
+ "name_unique": "Makayla Sanchez",
+ "name_suffix": "Arsonist",
+ "//": "Gender is only referenced when the npc has a complete unique name",
+ "gender": "female",
+ "class": "NC_ARSONIST",
+ "attitude": 0,
+ "mission": 3,
+ "chat": "TALK_ARSONIST",
+ "faction": "wasteland_scavengers"
+ },
{
"type": "talk_topic",
"id": "TALK_ARSONIST",
diff --git a/data/json/npcs/TALK_EVAC_HUNTER.json b/data/json/npcs/refugee_center/surface_visitors/NPC_hunter.json
similarity index 92%
rename from data/json/npcs/TALK_EVAC_HUNTER.json
rename to data/json/npcs/refugee_center/surface_visitors/NPC_hunter.json
index 77d5d9d1b2d2b..bab949d90df24 100644
--- a/data/json/npcs/TALK_EVAC_HUNTER.json
+++ b/data/json/npcs/refugee_center/surface_visitors/NPC_hunter.json
@@ -1,4 +1,15 @@
[
+ {
+ "type": "npc",
+ "id": "scavenger_hunter",
+ "//": "Appears in the refugee center as a trader.",
+ "name_suffix": "Hunter",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_EVAC_HUNTER",
+ "faction": "wasteland_scavengers"
+ },
{
"id": "TALK_EVAC_HUNTER",
"type": "talk_topic",
diff --git a/data/json/npcs/missiondef_old_guard_evac.json b/data/json/npcs/refugee_center/surface_visitors/NPC_old_guard_representative.json
similarity index 52%
rename from data/json/npcs/missiondef_old_guard_evac.json
rename to data/json/npcs/refugee_center/surface_visitors/NPC_old_guard_representative.json
index fadbbae3769d3..f6f3c22a78c0f 100644
--- a/data/json/npcs/missiondef_old_guard_evac.json
+++ b/data/json/npcs/refugee_center/surface_visitors/NPC_old_guard_representative.json
@@ -1,4 +1,92 @@
[
+ {
+ "type": "npc",
+ "id": "old_guard_rep",
+ "//": "Appears in the refugee center as a source of missions and info. Faction critical.",
+ "//": "name_suffix is appended to the end of the npc's name.",
+ "//": "using 'name_unique' instead will set the guy's name as is.",
+ "name_suffix": "Representative",
+ "//": "Class is based on the enum in npc.h. The important ones are 0=NC_NONE, 2=NC_SHOPKEEP,",
+ "//": "3=NC_HACKER, 4=NC_DOCTOR, 5=NC_TRADER, 6=NC_NINJA, 7=NC_COWBOY, 8=NC_SCIENTIST,",
+ "//": "9=NC_BOUNTY_HUNTER, 10=NC_THUG, 11=NC_SCAVENGER, 13=NC_HUNTER, 14=NC_SOLDIER.",
+ "class": "NC_COWBOY",
+ "//": "Attitude is based on the enum in npc.h. The important ones are 0=NPCATT_NULL, 1=NPCATT_TALK",
+ "//": "3=NPCATT_FOLLOW, 7=NPCATT_DEFEND, 10=NPCATT_KILL, and 11=NPCATT_FLEE",
+ "attitude": 0,
+ "//": "Mission is based on the enum in npc.h. The important ones are 0=NPC_MISSION_NUL, 3=NPC_MISSION_SHOPKEEP",
+ "//": "and 7=NPC_MISSION_GUARD",
+ "//": "8 = NPC_MISSION_GUARD_PATROL will actively investigate noises",
+ "mission": 7,
+ "chat": "TALK_OLD_GUARD_REP",
+ "faction": "old_guard",
+ "mission_offered": "MISSION_OLD_GUARD_REP_1"
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP",
+ "type": "talk_topic",
+ "dynamic_line": { "u_has_any_trait": [ "PROF_FED" ], "yes": "Marshal...", "no": "Citizen..." },
+ "responses": [
+ { "text": "Who are you?", "topic": "TALK_OLD_GUARD_REP_NEW" },
+ { "text": "Heard anything about the outside world?", "topic": "TALK_OLD_GUARD_REP_WORLD" },
+ { "text": "Is there any way I can join the 'Old Guard'?", "topic": "TALK_OLD_GUARD_REP_ASK_JOIN" },
+ { "text": "Does the Old Guard need anything?", "topic": "TALK_MISSION_LIST" },
+ { "text": "Well, bye.", "topic": "TALK_DONE" }
+ ],
+ "//": "TODO: The rep should know whether you're actually a sworn officer: Wearing the badge without the trait => Bad idea"
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_NEW",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "So what are you actually doing here?", "topic": "TALK_OLD_GUARD_REP_NEW_DOING" },
+ { "text": "Never mind...", "topic": "TALK_OLD_GUARD_REP" }
+ ]
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_NEW_DOING",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "Is there a catch?", "topic": "TALK_OLD_GUARD_REP_NEW_DOWNSIDE" },
+ { "text": "Anything more to it?", "topic": "TALK_OLD_GUARD_REP_NEW_DOWNSIDE" },
+ { "text": "Never mind...", "topic": "TALK_OLD_GUARD_REP" }
+ ]
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_NEW_DOWNSIDE",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_WORLD",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "The 2nd Fleet?", "topic": "TALK_OLD_GUARD_REP_WORLD_2NDFLEET" },
+ { "text": "Tell me about the footholds.", "topic": "TALK_OLD_GUARD_REP_WORLD_FOOTHOLDS" },
+ { "text": "Never mind...", "topic": "TALK_OLD_GUARD_REP" }
+ ]
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_WORLD_2NDFLEET",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_WORLD_FOOTHOLDS",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
+ },
+ {
+ "id": "TALK_OLD_GUARD_REP_ASK_JOIN",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Hmmm...", "topic": "TALK_OLD_GUARD_REP" } ]
+ },
{
"id": "MISSION_OLD_GUARD_REP_1",
"type": "mission_definition",
@@ -133,122 +221,5 @@
"success_lie": "What good does this do us?",
"failure": "It was a lost cause anyways..."
}
- },
- {
- "id": "MISSION_SCIENCE_REP_1",
- "type": "mission_definition",
- "name": "Analyze Zombie Blood",
- "goal": "MGOAL_FIND_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "software_blood_data",
- "start": {
- "effect": [ { "u_buy_item": "vacutainer" }, { "u_buy_item": "usb_drive" } ],
- "assign_mission_target": { "om_terrain": "hospital_2", "om_special": "hospital", "reveal_radius": 3 }
- },
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_SCIENCE_REP_2",
- "dialogue": {
- "describe": "It could be very informative to perform an analysis of zombie blood...",
- "offer": "We don't have the equipment for real analysis here so it'll need to be done in the field. I need you to get a fresh sample of zombie blood, take it to a hospital, and perform a centrifuge analysis of it.",
- "accepted": "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.",
- "rejected": "Are you sure? The scientific value of that blood data could be priceless...",
- "advice": "The centrifuge is a bit technical; you might want to study up on the usage of computers before completing that part.",
- "inquire": "Well, do you have the data yet?",
- "success": "Excellent! This may be the key to removing the infection.",
- "success_lie": "Wait, you couldn't possibly have the data! Liar!",
- "failure": "What a shame, that data could have proved invaluable..."
- }
- },
- {
- "id": "MISSION_SCIENCE_REP_2",
- "type": "mission_definition",
- "name": "Download Workstation Data",
- "goal": "MGOAL_FIND_ANY_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "software_lab_data",
- "start": "create_lab_console",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_SCIENCE_REP_3",
- "dialogue": {
- "describe": "We need help...",
- "offer": "The medical software didn't just analyze the blood, it triggered a government alert. Medical staff was under orders to immediately drive any matching samples to the nearest laboratory. That must mean the government knew! We have the destination address. Go there, get in, and bring back any records you can download off a computer.",
- "accepted": "Great! I've mapped out a route to the address.",
- "rejected": "Can't blame you, but come back if you change your mind.",
- "advice": "If the laboratory is locked, maybe you can find an id card from employees who died in the evacuation. Also brush up on your computer skills, any computers will have some security on them. Bring back anything you find on a USB drive.",
- "inquire": "Have you completed your mission?",
- "success": "Thanks! This data looks damaged, but maybe I can make something out of it.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_SCIENCE_REP_3",
- "type": "mission_definition",
- "name": "Download Encryption Codes",
- "goal": "MGOAL_FIND_ANY_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "software_lab_data",
- "start": "create_hidden_lab_console",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_SCIENCE_REP_4",
- "dialogue": {
- "describe": "We need help...",
- "offer": "Unfortunately the data you got was incomplete and mostly encrypted. There may be a way to get encryption codes, though. I found a complaint by the infosec team that they were unable to deliver critical security updates to one research site. It was some kind of more restricted secondary site hidden beneath a town, they weren't allowed in. That means it should have unsecured computers we can get the codes from.",
- "accepted": "Great! I've mapped out a route, it should look like a normal house. Bring back anything you find on a USB drive.",
- "rejected": "Can't blame you, but come back if you change your mind.",
- "advice": "Expect the lab to be locked as usual.",
- "inquire": "Have you completed your mission?",
- "success": "Wonderful! Now I just need to get an undamaged, complete archive, and we can really figure out what happened.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_SCIENCE_REP_4",
- "type": "mission_definition",
- "name": "Download Research Archives",
- "goal": "MGOAL_FIND_ANY_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "software_lab_data",
- "start": "create_ice_lab_console",
- "origins": [ "ORIGIN_SECONDARY" ],
- "followup": "MISSION_SCIENCE_REP_5",
- "dialogue": {
- "describe": "We need help...",
- "offer": "So there looks to be months, maybe years of experiments, and that data set must be huge. Database servers massive enough to house it would overheat running on emergency power. But I did found communications from a lab that had some kind of freezing portal open during the cataclysm, sending everything to subzero temperatures. I bet the archives inside that lab are still working.",
- "accepted": "Great! I've mapped out a route. Bundle up, it gets colder the deeper you go and it looks like the archives were on the fourth basement level.",
- "rejected": "Can't blame you, but come back if you change your mind.",
- "advice": "That lab is going to start freezing and just get colder the deeper you go. You'll really need special equipment to survive that far down. Bring back anything you find on a USB drive.",
- "inquire": "Have you completed your mission?",
- "success": "Thanks! This is a lot of data to go through.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
- },
- {
- "id": "MISSION_SCIENCE_REP_5",
- "type": "mission_definition",
- "name": "Find Lab Tunnels",
- "goal": "MGOAL_FIND_ANY_ITEM",
- "difficulty": 5,
- "value": 50000,
- "item": "software_train_data",
- "start": "reveal_lab_train_depot",
- "origins": [ "ORIGIN_SECONDARY" ],
- "dialogue": {
- "describe": "We need help...",
- "offer": "In the data we found a major contract for tunneling and train equipment, ordered a long time ago. It's the best lead we have. Here's the address of the government lab where the equipment was delivered. I want you to go there, find the tunnels that they dug, and download everything you can about the train network.",
- "accepted": "So glad for your help.",
- "rejected": "Can't blame you, but come back if you change your mind.",
- "advice": "The equipment was rated for 50 feet underground, so that tunnel entrance is 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.",
- "inquire": "Have you completed your mission?",
- "success": "Fantastic! I should be able to reconstruct what cargo moved between which labs. I wonder what was really going on down there.",
- "success_lie": "What good does this do us?",
- "failure": "It was a lost cause anyways..."
- }
}
]
diff --git a/data/json/npcs/refugee_center/surface_visitors/NPC_scavenger_mercenary.json b/data/json/npcs/refugee_center/surface_visitors/NPC_scavenger_mercenary.json
new file mode 100644
index 0000000000000..edaf28d857fe2
--- /dev/null
+++ b/data/json/npcs/refugee_center/surface_visitors/NPC_scavenger_mercenary.json
@@ -0,0 +1,126 @@
+[
+ {
+ "type": "npc",
+ "id": "scavenger_merc",
+ "//": "Appears in the refugee center as a partner for hire.",
+ "name_suffix": "Merc",
+ "class": "NC_SCAVENGER_MERC",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_SCAVENGER_MERC",
+ "faction": "wasteland_scavengers"
+ },
+ {
+ "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" },
+ { "group": "Appearance_demographics" }
+ ],
+ "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" ] }
+ ]
+ },
+ {
+ "id": "TALK_SCAVENGER_MERC",
+ "type": "talk_topic",
+ "dynamic_line": { "u_is_wearing": "badge_marshal", "yes": "I haven't done anything wrong...", "no": "..." },
+ "responses": [
+ { "text": "Who are you?", "topic": "TALK_SCAVENGER_MERC_NEW" },
+ { "text": "Any tips for surviving?", "topic": "TALK_SCAVENGER_MERC_TIPS" },
+ { "text": "What would it cost to hire you?", "topic": "TALK_SCAVENGER_MERC_HIRE" },
+ { "text": "Well, bye.", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "id": "TALK_SCAVENGER_MERC_NEW",
+ "type": "talk_topic",
+ "dynamic_line": "I'm just a hired hand. Someone pays me and I do what needs to be done.",
+ "responses": [ { "text": "...", "topic": "TALK_SCAVENGER_MERC" } ]
+ },
+ {
+ "id": "TALK_SCAVENGER_MERC_TIPS",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I suppose I should hire a party then?", "topic": "TALK_SCAVENGER_MERC" } ]
+ },
+ {
+ "id": "TALK_SCAVENGER_MERC_HIRE",
+ "type": "talk_topic",
+ "dynamic_line": "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.",
+ "responses": [
+ { "text": "I might be back.", "topic": "TALK_SCAVENGER_MERC" },
+ {
+ "text": "[$8000] You have a deal.",
+ "topic": "TALK_SCAVENGER_MERC_HIRE_SUCCESS",
+ "condition": { "u_has_cash": 800000 },
+ "effect": { "u_spend_cash": 800000 }
+ }
+ ]
+ },
+ {
+ "id": "TALK_SCAVENGER_MERC_HIRE_SUCCESS",
+ "type": "talk_topic",
+ "dynamic_line": "I guess you're the boss.",
+ "responses": [
+ {
+ "text": "Glad to have you aboard.",
+ "success": { "effect": "follow", "opinion": { "trust": 1, "value": 1 }, "topic": "TALK_DONE" }
+ }
+ ]
+ }
+]
diff --git a/data/json/npcs/robofac/TALK_ROBOFAC_INTERCOM.json b/data/json/npcs/robofac/TALK_ROBOFAC_INTERCOM.json
index 07b77b651c641..f559864824e70 100644
--- a/data/json/npcs/robofac/TALK_ROBOFAC_INTERCOM.json
+++ b/data/json/npcs/robofac/TALK_ROBOFAC_INTERCOM.json
@@ -62,6 +62,11 @@
},
"topic": "TALK_ROBOFAC_INTERCOM_PLEAD"
},
+ {
+ "text": "Any jobs you need done?",
+ "condition": { "u_has_var": "completed_robofac_intercom_1", "type": "dialogue", "context": "intercom", "value": "yes" },
+ "topic": "TALK_MISSION_LIST"
+ },
{
"text": "What the hell were you testing out there?",
"condition": { "u_has_var": "completed_robofac_intercom_1", "type": "dialogue", "context": "intercom", "value": "yes" },
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_barber.json b/data/json/npcs/tacoma_ranch/NPC_ranch_barber.json
new file mode 100644
index 0000000000000..f1a146238381c
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_barber.json
@@ -0,0 +1,53 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_barber",
+ "//": "Provides hair cuts",
+ "name_suffix": "Barber",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_BARBER",
+ "faction": "tacoma_commune"
+ },
+ {
+ "id": "TALK_RANCH_BARBER",
+ "type": "talk_topic",
+ "dynamic_line": "Can I interest you in a trim?",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_BARBER_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_BARBER_HIRE" },
+ {
+ "text": "[$5] I'll have a shave",
+ "topic": "TALK_RANCH_BARBER_CUT",
+ "effect": [ "buy_shave", { "u_spend_cash": 500 } ],
+ "condition": { "npc_service": 500 }
+ },
+ {
+ "text": "[$10] I'll get a haircut",
+ "topic": "TALK_RANCH_BARBER_CUT",
+ "effect": [ "buy_haircut", { "u_spend_cash": 1000 } ],
+ "condition": { "npc_service": 1000 }
+ },
+ { "text": "Maybe another time...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_BARBER_JOB",
+ "dynamic_line": "What? I'm a barber... I cut hair. There's demand for cheap cuts and a shave out here.",
+ "responses": [ { "text": "Sorry.", "topic": "TALK_RANCH_BARBER" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_BARBER_HIRE",
+ "dynamic_line": "I can't imagine what I'd need your assistance with.",
+ "responses": [ { "text": "Fine.", "topic": "TALK_RANCH_BARBER" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_BARBER_CUT",
+ "dynamic_line": "Stand still while I get my clippers...",
+ "responses": [ { "text": "Thanks...", "topic": "TALK_DONE" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_bartender.json b/data/json/npcs/tacoma_ranch/NPC_ranch_bartender.json
new file mode 100644
index 0000000000000..ca2293acbf01f
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_bartender.json
@@ -0,0 +1,221 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_bartender",
+ "//": "Mission source, shopkeep",
+ "name_suffix": "Bartender",
+ "class": "NC_BARTENDER",
+ "attitude": 0,
+ "mission": 3,
+ "chat": "TALK_RANCH_BARKEEP",
+ "mission_offered": "MISSION_RANCH_BARTENDER_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "id": "TALK_RANCH_BARKEEP",
+ "type": "talk_topic",
+ "dynamic_line": "Want a drink?",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_BARKEEP_JOB" },
+ { "text": "I'm looking for information.", "topic": "TALK_RANCH_BARKEEP_INFORMATION" },
+ { "text": "Do you need any help?", "topic": "TALK_MISSION_LIST" },
+ {
+ "text": "Let me see what you keep behind the counter.",
+ "topic": "TALK_RANCH_BARKEEP",
+ "effect": "start_trade"
+ },
+ { "text": "What do you have on tap?", "topic": "TALK_RANCH_BARKEEP_TAP" },
+ { "text": "I'll be going...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_BARKEEP_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I see.", "topic": "TALK_RANCH_BARKEEP" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_BARKEEP_INFORMATION",
+ "dynamic_line": "We have a policy of keeping information to ourselves. Ask the patrons if you want to hear rumors or news.",
+ "responses": [ { "text": "Thanks for nothing.", "topic": "TALK_RANCH_BARKEEP" } ]
+ },
+ {
+ "id": "TALK_RANCH_BARKEEP_TAP",
+ "type": "talk_topic",
+ "dynamic_line": "Our selection is a bit limited at the moment.",
+ "responses": [
+ {
+ "text": "[$8] I'll take a beer",
+ "topic": "TALK_DONE",
+ "condition": { "u_has_cash": 800 },
+ "effect": { "u_buy_item": "beer", "container": "bottle_glass", "count": 2, "cost": 800 }
+ },
+ {
+ "text": "[$10] I'll take a shot of brandy",
+ "topic": "TALK_DONE",
+ "condition": { "u_has_cash": 1000 },
+ "effect": { "u_buy_item": "beer", "container": "bottle_glass", "cost": 1000 }
+ },
+ {
+ "text": "[$10] I'll take a shot of rum",
+ "topic": "TALK_DONE",
+ "condition": { "u_has_cash": 1000 },
+ "effect": { "u_buy_item": "beer", "container": "bottle_glass", "cost": 1000 }
+ },
+ {
+ "text": "[$12] I'll take a shot of whiskey",
+ "topic": "TALK_DONE",
+ "condition": { "u_has_cash": 1200 },
+ "effect": { "u_buy_item": "beer", "container": "bottle_glass", "cost": 1200 }
+ },
+ { "text": "On second thought, don't bother.", "topic": "TALK_RANCH_BARKEEP" }
+ ]
+ },
+ {
+ "id": "MISSION_RANCH_BARTENDER_1",
+ "type": "mission_definition",
+ "name": "Make 2 Stills",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "still",
+ "count": 2,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_BARTENDER_2",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "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?",
+ "accepted": "This should let us start producing whiskey, rum, and brandy when we get access to the ingredients.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "I'm sure you could find the design for the stills in home brewing books.",
+ "inquire": "Do you have the stills?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": {
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_1" ], "x": 0, "y": 0 } ]
+ }
+ }
+ },
+ {
+ "id": "MISSION_RANCH_BARTENDER_2",
+ "type": "mission_definition",
+ "name": "Find 20 Yeast",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "yeast",
+ "count": 20,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_BARTENDER_3",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The last batch that I brewed was terrible, I'm fairly sure something 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.",
+ "accepted": "Thank you for your assistance.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Yeast should be common in homes or bakeries.",
+ "inquire": "Do you have the yeast?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "effect": { "npc_add_trait": "NPC_BRANDY" },
+ "update_mapgen": {
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_2" ], "x": 0, "y": 0 } ]
+ }
+ }
+ },
+ {
+ "id": "MISSION_RANCH_BARTENDER_3",
+ "type": "mission_definition",
+ "name": "Find 10 Sugar Beet Seeds",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "seed_sugar_beet",
+ "count": 10,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_BARTENDER_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Sugar and molasses remains in short supply. I've put in a request for more but it is unlikely that I'm going to see a reliable source for some time. If you are interested, we are going to need sugar beet seeds to meet future demand regardless of what the scavengers can find. Could you bring me at least enough seeds to plant a small 10 meter long patch?",
+ "accepted": "Thank you for your assistance.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Farms or supply stores might have a few seeds...",
+ "inquire": "Do you have the sugar beet seeds?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "effect": { "npc_add_trait": "NPC_RUM" },
+ "update_mapgen": {
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_3" ], "x": 0, "y": 0 } ]
+ }
+ }
+ },
+ {
+ "id": "MISSION_RANCH_BARTENDER_4",
+ "type": "mission_definition",
+ "name": "Find 12 Metal Tanks",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "metal_tank",
+ "count": 12,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_BARTENDER_5",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The drinks we brew here have become a major draw for visitors and the occasional trader. Our batches have become larger but we are still running out of storage space between trading runs. I've been able to get a few volunteers to help me build a set of standing tanks but I still need 12 metal tanks to build them. I've talked with the scrappers but we are a low priority at the moment.",
+ "accepted": "Thank you for your assistance.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Scrapping vehicles might be your best bet.",
+ "inquire": "Do you have the metal tanks?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": {
+ "effect": { "npc_add_trait": "NPC_WHISKEY" },
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_bartender_4" ], "x": 0, "y": 0 } ]
+ }
+ }
+ },
+ {
+ "id": "MISSION_RANCH_BARTENDER_5",
+ "type": "mission_definition",
+ "name": "Find 2 200-Liter Drums",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "55gal_drum",
+ "count": 2,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_NULL",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The other survivor outposts that we have contact with have been more than eager to trade for beer or other drinks. Transporting the drinks to them has presented a number of challenges though. If you could locate a pair of 200-liter drums we should be able to keep them supplied while turning a significant profit.",
+ "accepted": "Thank you for your assistance.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Factories or junk yards are the only places I know where to look.",
+ "inquire": "Do you have the 200-liter drums?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_carpenter1.json b/data/json/npcs/tacoma_ranch/NPC_ranch_carpenter1.json
new file mode 100644
index 0000000000000..42f609e5615ee
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_carpenter1.json
@@ -0,0 +1,19 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_construction_1",
+ "//": "Flavor",
+ "name_suffix": "Carpenter",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_CONSTRUCTION_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_CONSTRUCTION_1",
+ "dynamic_line": "My partner is in charge of fortifying this place, you should ask him about what needs to be done.",
+ "responses": [ { "text": "I'll talk to him then...", "topic": "TALK_DONE" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_carpenter2.json b/data/json/npcs/tacoma_ranch/NPC_ranch_carpenter2.json
new file mode 100644
index 0000000000000..d0e2fba5acc82
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_carpenter2.json
@@ -0,0 +1,28 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_construction_2",
+ "//": "Construction skill trainer",
+ "name_suffix": "Carpenter",
+ "class": "NC_THUG",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_CONSTRUCTION_2",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_CONSTRUCTION_2",
+ "dynamic_line": "Howdy.",
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_RANCH_CONSTRUCTION_2_JOB" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_CONSTRUCTION_2_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I see.", "topic": "TALK_RANCH_CONSTRUCTION_2" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_crop_overseer.json b/data/json/npcs/tacoma_ranch/NPC_ranch_crop_overseer.json
new file mode 100644
index 0000000000000..a0a39ff2461d5
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_crop_overseer.json
@@ -0,0 +1,34 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_crop_overseer",
+ "//": "Flavor",
+ "name_suffix": "Crop Overseer",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_CROP_OVERSEER",
+ "faction": "tacoma_commune"
+ },
+ {
+ "id": "TALK_RANCH_CROP_OVERSEER",
+ "type": "talk_topic",
+ "dynamic_line": "I hope you are here to do business.",
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_RANCH_CROP_OVERSEER_JOB" },
+ {
+ "text": "I'm interested in investing in agriculture...",
+ "topic": "TALK_RANCH_CROP_OVERSEER",
+ "effect": { "companion_mission": "COMMUNE CROPS" }
+ },
+ { "text": "What do you need done?", "topic": "TALK_MISSION_LIST" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_CROP_OVERSEER_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I'll keep that in mind.", "topic": "TALK_RANCH_CROP_OVERSEER" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_doctor.json b/data/json/npcs/tacoma_ranch/NPC_ranch_doctor.json
new file mode 100644
index 0000000000000..eba24015f4397
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_doctor.json
@@ -0,0 +1,35 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_doctor",
+ "//": "Provides advanced medical attention.",
+ "name_suffix": "Doctor",
+ "class": "NC_DOCTOR",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_DOCTOR",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_DOCTOR",
+ "dynamic_line": "I'm sorry, I don't have time to see you at the moment.",
+ "responses": [
+ { "text": "For the right price could I borrow your services?", "topic": "TALK_RANCH_DOCTOR_BIONICS" },
+ { "text": "...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "id": "TALK_RANCH_DOCTOR_BIONICS",
+ "type": "talk_topic",
+ "dynamic_line": "I imagine we might be able to work something out.",
+ "responses": [
+ {
+ "text": "I was wondering if you could install a cybernetic implant...",
+ "topic": "TALK_DONE",
+ "effect": "bionic_install"
+ },
+ { "text": "I need help removing an implant...", "topic": "TALK_DONE", "effect": "bionic_remove" }
+ ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_farmer1.json b/data/json/npcs/tacoma_ranch/NPC_ranch_farmer1.json
new file mode 100644
index 0000000000000..7c376372613c1
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_farmer1.json
@@ -0,0 +1,35 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_farmer_1",
+ "//": "Flavor",
+ "name_suffix": "Farmer",
+ "class": "NC_THUG",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_FARMER_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FARMER_1",
+ "dynamic_line": "...",
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_RANCH_FARMER_1_JOB" },
+ { "text": "I'd like to hire your services.", "topic": "TALK_RANCH_FARMER_1_HIRE" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FARMER_1_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "...", "topic": "TALK_RANCH_FARMER_1" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FARMER_1_HIRE",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Oh.", "topic": "TALK_RANCH_FARMER_1" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_farmer2.json b/data/json/npcs/tacoma_ranch/NPC_ranch_farmer2.json
new file mode 100644
index 0000000000000..66e53f8f07cbf
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_farmer2.json
@@ -0,0 +1,35 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_farmer_2",
+ "//": "Flavor",
+ "name_suffix": "Farmer",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_FARMER_2",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FARMER_2",
+ "dynamic_line": "You mind?",
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_RANCH_FARMER_2_JOB" },
+ { "text": "I'd like to hire your services.", "topic": "TALK_RANCH_FARMER_2_HIRE" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FARMER_2_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "It could be worse...", "topic": "TALK_RANCH_FARMER_2" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FARMER_2_HIRE",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I'll talk with them then...", "topic": "TALK_RANCH_FARMER_2" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json b/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json
new file mode 100644
index 0000000000000..de9a5efbf0337
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json
@@ -0,0 +1,908 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_foreman",
+ "//": "Appears at the ranch after you progress in the refugee center quests. Faction critical.",
+ "name_suffix": "Foreman",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_FOREMAN",
+ "mission_offered": "MISSION_RANCH_FOREMAN_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "id": "TALK_RANCH_FOREMAN",
+ "type": "talk_topic",
+ "dynamic_line": {
+ "u_is_wearing": "badge_marshal",
+ "yes": "Can I help you, marshal?",
+ "no": { "u_male": true, "yes": "Morning sir, how can I help you?", "no": "Morning ma'am, how can I help you?" }
+ },
+ "responses": [
+ {
+ "text": "[MISSION] The merchant at the Refugee Center sent me to get a prospectus from you.",
+ "topic": "TALK_RANCH_FOREMAN_PROSPECTUS",
+ "condition": { "and": [ { "u_has_mission": "MISSION_FREE_MERCHANTS_EVAC_3" }, { "not": { "u_has_effect": "has_prospectus" } } ] }
+ },
+ { "text": "I heard you were setting up an outpost out here.", "topic": "TALK_RANCH_FOREMAN_OUTPOST" },
+ { "text": "What's your job here?", "topic": "TALK_RANCH_FOREMAN_JOB" },
+ { "text": "What do you need done?", "topic": "TALK_MISSION_LIST" },
+ {
+ "text": "I figured you might be looking for some help...",
+ "topic": "TALK_RANCH_FOREMAN",
+ "effect": { "companion_mission": "FOREMAN" }
+ },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "id": "TALK_RANCH_FOREMAN_PROSPECTUS",
+ "type": "talk_topic",
+ "dynamic_line": "I was starting to wonder if they were really interested in the project or were just trying to get rid of me.",
+ "responses": [
+ {
+ "text": "Thanks.",
+ "topic": "TALK_RANCH_FOREMAN",
+ "effect": [ { "u_buy_item": "commune_prospectus" }, { "u_add_effect": "has_prospectus", "duration": "PERMANENT" } ]
+ }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FOREMAN_OUTPOST",
+ "dynamic_line": "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. ",
+ "responses": [ { "text": "How many refugees are you expecting?", "topic": "TALK_RANCH_FOREMAN_REFUGEES" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FOREMAN_REFUGEES",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Hopefully moving out here was worth it...", "topic": "TALK_RANCH_FOREMAN" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_FOREMAN_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I'll keep that in mind.", "topic": "TALK_RANCH_FOREMAN" } ]
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_1",
+ "type": "mission_definition",
+ "name": "Cut 200 2x4's",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "2x4",
+ "count": 200,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_2",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Our first project is to enclose the barn so that new refugees have a safe place to sleep. Before we can begin serious improvements we need lumber to work with. Enclosing the four barn entrances will take nearly 400 2x4's... if you could provide half of that we should be able to take care of the other half and construction. If you don't have a truck, I'd make finding one your first priority. ",
+ "accepted": "The more men we can bring to the camp the quicker improvements can be made.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Avoid destroying the furniture, we'll be needing it.",
+ "inquire": "Do you have them?",
+ "success": "Great, I'll send word that we could use another set of hands or two to help out here.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_65",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 },
+ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 13, "y": 0 },
+ { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 15, "y": 0 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_74",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 },
+ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 13, "y": 0 },
+ { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 15, "y": 0 }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_2",
+ "type": "mission_definition",
+ "name": "Find 25 Blankets",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "blanket",
+ "count": 25,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_3",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "With the barn entrances enclosed the refugees moving into there should feel safer but the weather can be bitter here. We're going to need to build makeshift beds in the stalls to ward off disease and frostbite. We can take care of the frames but will need your help looting blankets. We'd need 25 blankets to provide the most basic sleeping accommodations.",
+ "accepted": "I'd start with looting hotels or you could sew them together... but that would be a last resort.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Avoid destroying the furniture here, we'll be needing it.",
+ "inquire": "Do you have them?",
+ "success": "Your assistance is always appreciated.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_65",
+ "om_special": "ranch_camp",
+ "//": "Beds in the barn",
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 1 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 5 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 7 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 11 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 13 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 17 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 19 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 23 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "//": "Beds in the barn",
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 1 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 5 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 7 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 11 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 13 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 17 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 19 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 19, "y": 23 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 1 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 5 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 19 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 9, "y": 23 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 1 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 5 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 19 },
+ { "chunks": [ "tacoma_commune_makeshift_bed" ], "x": 4, "y": 23 }
+ ],
+ "place_npcs": [ { "class": "ranch_construction_2", "x": 19, "y": 8 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_3",
+ "type": "mission_definition",
+ "name": "Gather 2500 Nails",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "nail",
+ "count": 2500,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Our supply of nails has been depleted. I'm going to have to ask you to get us a few more boxes. Hardware stores should have a few if they haven't been looted. I suppose you may be able to find handfuls of them in building rubble. We'd need 2500 to have enough that we won't be sending you back out too soon.",
+ "accepted": "Deconstructing furniture isn't going to be efficient, try looking for boxes or grabbing any sitting on top of rubble piles.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Avoid destroying the furniture here, we'll be needing it.",
+ "inquire": "Do you have them?",
+ "success": "Your assistance is always appreciated.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_46",
+ "om_special": "ranch_camp",
+ "//": "tilled soil in the fields",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "set": [
+ { "square": "terrain", "id": "t_dirt", "x": 7, "y": 4, "x2": 22, "y2": 23 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 8, "y": 5, "x2": 9, "y2": 22 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 11, "y": 5, "x2": 12, "y2": 22 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_55",
+ "om_special": "ranch_camp",
+ "//": "tilled soil in the fields",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "set": [
+ { "square": "terrain", "id": "t_dirt", "x": 7, "y": 0, "x2": 22, "y2": 18 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 8, "y": 2, "x2": 9, "y2": 17 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 11, "y": 2, "x2": 12, "y2": 17 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_56",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_vehicles": [ { "vehicle": "hippie_van", "x": 10, "y": 10, "rotation": 270, "chance": 100 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_65",
+ "om_special": "ranch_camp",
+ "place_furniture": [ { "furn": "f_bookcase", "x": 17, "y": 11 } ],
+ "place_npcs": [ { "class": "ranch_farmer_1", "x": 19, "y": 20 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "place_npcs": [ { "class": "ranch_woodcutter_1", "x": 4, "y": 11 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_4",
+ "type": "mission_definition",
+ "name": "Gather 300 Salt",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "salt",
+ "count": 300,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_5",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "I'm sure you've noticed the new workers that have started trickling in. The Free Merchant counsel is demanding that we immediately begin projects to become self-sufficient due to limited supplies. We are going to need to rapidly setup an agricultural industry before winter and starvation catches us unprepared and unsupported. In order to get a half dozen shovels and a couple of bags of seeds, we are going to have to trade for it. I've already got the deal lined up but the only thing they are willing to trade it for is salt. I negotiated them down from 500 units to 300... we were hoping you might have access to a source.",
+ "accepted": "Salt is key to preserving meat and other perishables... without any excess 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. ",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "If you can find a source of salt water you should be able to boil it down.",
+ "inquire": "Do you have the salt?",
+ "success": "We are going to begin preparing our fields immediately.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_46",
+ "om_special": "ranch_camp",
+ "//": "tilled soil in the fields",
+ "set": [
+ { "square": "terrain", "id": "t_dirtmound", "x": 14, "y": 5, "x2": 15, "y2": 22 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 17, "y": 5, "x2": 18, "y2": 22 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 20, "y": 5, "x2": 21, "y2": 22 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_55",
+ "om_special": "ranch_camp",
+ "//": "tilled soil in the fields",
+ "set": [
+ { "square": "terrain", "id": "t_dirtmound", "x": 14, "y": 2, "x2": 15, "y2": 17 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 17, "y": 2, "x2": 18, "y2": 17 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 20, "y": 2, "x2": 21, "y2": 17 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_56",
+ "om_special": "ranch_camp",
+ "place_vehicles": [ { "vehicle": "flatbed_truck", "x": 18, "y": 3, "rotation": 0, "chance": 100 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_57",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_npcs": [ { "class": "ranch_crop_overseer", "x": 12, "y": 7 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_58",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_4" ], "x": 0, "y": 2 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_67",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "set": [ { "square": "terrain", "id": "t_palisade", "x": 21, "y": 19, "x2": 23, "y2": 19 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_5",
+ "type": "mission_definition",
+ "name": "30 Liquid Fertilizer",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "fertilizer_liquid",
+ "count": 30,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_6",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Well, our first crop will be planted shortly but I'm starting to suspect that our profit margin is going to be much smaller than we expect. With limited seed for our original crop our next course of action is to increase the soil's fertility. Is there any way you could find or produce a basic liquid fertilizer for us? We'd need at least 30 units to make a significant improvement in our output. ",
+ "accepted": "I don't know the exact recipe but I'm sure you could make it from a commercial fertilizer or produce it from bonemeal.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "I'd look through a few basic chemistry books to find a simple recipe.",
+ "inquire": "Do you have the liquid fertilizer?",
+ "success": "This really should make the first winter easier to survive.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_56",
+ "om_special": "ranch_camp",
+ "place_vehicles": [ { "vehicle": "car_chassis", "x": 17, "y": 11, "rotation": 90, "chance": 100 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_58",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_5" ], "x": 0, "y": 2 } ],
+ "set": [ { "point": "terrain", "id": "t_pit", "x": 6, "y": 18 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "set": [ { "point": "terrain", "id": "t_palisade", "x": 23, "y": 22 } ],
+ "place_npcs": [ { "class": "ranch_farmer_2", "x": 9, "y": 22 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_67",
+ "om_special": "ranch_camp",
+ "set": [ { "square": "terrain", "id": "t_palisade", "x": 0, "y": 22, "x2": 5, "y2": 22 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_6",
+ "type": "mission_definition",
+ "name": "Gather 75 Stones",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "rock",
+ "count": 75,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_7",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Our current assessment for survivability has increased significantly thanks to your efforts. The next priority issue is securing a cleaner water source. Drinking from the pond on the back end of the ranch has led to an outbreak of dysentery. As quickly as possible we need to improve the sanitary conditions in the camp. To do so the first step is to dig a well and construct stone fireplaces in the barn for the migrants to boil water. We are going to need at least 75 large rocks from you if we hope to accomplish the task before we all get sick. After we have them installed you will have free access to them, guaranteed. ",
+ "accepted": "If you take a shovel to a pile of rubble you should be able to pull out structural grade stone.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Mining would always be an option if you had the resources.",
+ "inquire": "Do you have the stone?",
+ "success": "I appreciate the work you do.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_58",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_6" ], "x": 0, "y": 2 } ],
+ "set": [ { "point": "terrain", "id": "t_covered_well", "x": 6, "y": 18 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "set": [
+ { "point": "furniture", "id": "f_fireplace", "x": 6, "y": 12 },
+ { "point": "furniture", "id": "f_fireplace", "x": 8, "y": 12 }
+ ],
+ "place_item": [
+ { "item": "log", "x": 3, "y": 11 },
+ { "item": "log", "x": 3, "y": 12 },
+ { "item": "log", "x": 3, "y": 13 },
+ { "item": "log", "x": 11, "y": 11 },
+ { "item": "log", "x": 11, "y": 12 },
+ { "item": "log", "x": 11, "y": 13 }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_7",
+ "type": "mission_definition",
+ "name": "Gather 50 Pipes",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "pipe",
+ "count": 50,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_8",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "To fabricate the well's hand pump and construct components for several other projects we are going to need to find or fabricate a number of steel pipes. Plumbing is a distant possibility for now but some form of irrigation will eventually become desirable. You could assist us with procuring 50 steel pipes, if you so have the chance.",
+ "accepted": "Hopefully we will be able to assign new migrants to help fulfill our needs in the future.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Pipes are used in numerous metal constructions. Smashing abandoned furniture may provide the material we need.",
+ "inquire": "Do you have the pipes?",
+ "success": "I appreciate the work you do.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_56",
+ "om_special": "ranch_camp",
+ "//": "western palisade",
+ "set": [
+ { "square": "terrain", "id": "t_palisade", "x": 16, "y": 16, "x2": 16, "y2": 23 },
+ { "square": "terrain", "id": "t_palisade", "x": 16, "y": 14, "x2": 19, "y2": 14 },
+ { "square": "terrain", "id": "t_palisade", "x": 19, "y": 11, "x2": 19, "y2": 13 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_58",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_7" ], "x": 0, "y": 2 } ],
+ "//": "finish the well",
+ "set": [
+ { "square": "terrain", "id": "t_sidewalk", "x": 5, "y": 17, "x2": 7, "y2": 19 },
+ { "point": "terrain", "id": "t_water_pump", "x": 6, "y": 18 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_65",
+ "om_special": "ranch_camp",
+ "//": "untilled soil in the fields",
+ "set": [ { "square": "terrain", "id": "t_dirt", "x": 0, "y": 4, "x2": 12, "y2": 18 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_8",
+ "type": "mission_definition",
+ "name": "Gather 2 Motors",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "motor",
+ "count": 2,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_9",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "With the well's completion we are rapidly closing the sustainability gap. In order to expand from here we will need massive quantities of lumber to construct fortifications and new buildings. We have already begun work on a 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.",
+ "accepted": "Power for the motors will be provided by a salvaged truck battery, you need not bring additional mechanical components. ",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Mining would always be an option if you had the resources.",
+ "inquire": "Do you have the motors?",
+ "success": "I appreciate the work you do.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_56",
+ "om_special": "ranch_camp",
+ "//": "finish western palisade",
+ "set": [
+ { "square": "terrain", "id": "t_palisade", "x": 23, "y": 7, "x2": 23, "y2": 10 },
+ { "square": "terrain", "id": "t_palisade", "x": 20, "y": 11, "x2": 23, "y2": 11 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_58",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_lumbermill_8_done" ], "x": 0, "y": 2 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_59",
+ "om_special": "ranch_camp",
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_toolshed_8" ], "x": 13, "y": 17 },
+ { "chunks": [ "tacoma_commune_clinic_8" ], "x": 0, "y": 2 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_65",
+ "om_special": "ranch_camp",
+ "//": "tilled soil in the fields",
+ "set": [
+ { "square": "terrain", "id": "t_dirtmound", "x": 1, "y": 5, "x2": 2, "y2": 17 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 4, "y": 5, "x2": 5, "y2": 17 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 7, "y": 5, "x2": 8, "y2": 17 },
+ { "square": "terrain", "id": "t_dirtmound", "x": 10, "y": 5, "x2": 11, "y2": 17 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_68",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_outhouse_8" ], "x": 16, "y": 1 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_9",
+ "type": "mission_definition",
+ "name": "Gather 150 Bleach",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "bleach",
+ "count": 150,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_10",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Disease and infection remains a persistent problem among the refugees. Without dedicated medical personnel and facilities I doubt everyone will be willing to stick around when the next outbreak happens. Until we can get a former medic or nurse I'm just going to have to improvise. Sterilization would be the first step I imagine. Bring me 5 gallon jugs of bleach so we can get started.",
+ "accepted": "I'm sure you can find bleach in most homes...",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "If you can't find a large supply I'd recommend checking hospitals or research labs.",
+ "inquire": "Do you have the bleach?",
+ "success": "I appreciate it.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_59",
+ "om_special": "ranch_camp",
+ "place_nested": [
+ { "chunks": [ "tacoma_commune_toolshed_9_done" ], "x": 13, "y": 17 },
+ { "chunks": [ "tacoma_commune_clinic_9" ], "x": 0, "y": 2 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_68",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_outhouse_9_done" ], "x": 16, "y": 1 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_10",
+ "type": "mission_definition",
+ "name": "Gather 6 First Aid Kits",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "1st_aid",
+ "count": 6,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_11",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "We've started planning a medical clinic but we are going to need a lot more supplies if we hope to warrant sending one of the few people with medical experience from the refugee center to our outpost. I know first aid kits are rare but they have all the basic supplies that I'm uncertain of. If you could bring in 6 full kits I'm sure we could supplement them to make them last a bit longer.",
+ "accepted": "We'll do our best to make them last...",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Homes, hospitals, labs, and doctor offices would be where I'd check.",
+ "inquire": "Do you have the first aid kits?",
+ "success": "I appreciate it.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_59",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_clinic_10" ], "x": 0, "y": 2 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_60",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_chopshop_10" ], "x": 0, "y": 4 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_11",
+ "type": "mission_definition",
+ "name": "Find 2 Electric Welders",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "welder",
+ "count": 2,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_12",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The work you have done has swayed the leaders at the refugee center to send someone out to assist with our medical needs. The next step is for us to get a sort of chop-shop setup so that we can begin using scrap metal to build fortifications and equipment. We are going to need a pair of electric welders for our mechanics to use.",
+ "accepted": "With two, we should be able to repair one if it breaks.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "The only place I've seen them is garages but I imagine you could find them in some stores.",
+ "inquire": "Do you have the welders?",
+ "success": "I appreciate it.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_59",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_clinic_11" ], "x": 0, "y": 2 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_60",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_chopshop_11" ], "x": 0, "y": 4 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_61",
+ "om_special": "ranch_camp",
+ "place_vehicles": [
+ { "vehicle": "car", "chance": 100, "rotation": 270, "x": 1, "y": 20 },
+ { "vehicle": "cube_van_cheap", "chance": 100, "rotation": 90, "x": 10, "y": 10 },
+ { "vehicle": "car_sports", "chance": 100, "rotation": 90, "x": 3, "y": 9 },
+ { "vehicle": "flatbed_truck", "chance": 100, "rotation": 270, "x": 10, "y": 23 }
+ ]
+ },
+ {
+ "om_terrain": "ranch_camp_69",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_vehicles": [
+ { "vehicle": "car_chassis", "chance": 100, "rotation": 0, "x": 3, "y": 14 },
+ { "vehicle": "pickup", "chance": 100, "rotation": 0, "x": 8, "y": 15 },
+ { "vehicle": "schoolbus", "chance": 100, "rotation": 135, "x": 22, "y": 13 }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_12",
+ "type": "mission_definition",
+ "name": "Find 12 Car Batteries",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "battery_car",
+ "count": 12,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_13",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "We have the basic equipment that we need but without a functioning power grid we are forced to rely on the readily available vehicle batteries. This is going to be a chore but I'll need twelve car batteries to swap between charging and powering our equipment. The good news is that they don't need to be charged, we can take care of that.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Cars can be found in traffic jams along roads or in parking lots... I'm sure you can find a few.",
+ "inquire": "Do you have the car batteries?",
+ "success": "I'm impressed with your abilities.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_49",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_junk_shop_12" ], "x": 0, "y": 9 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_60",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_chopshop_12_done" ], "x": 0, "y": 4 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_69",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_vehicles": [ { "vehicle": "cube_van", "chance": 100, "rotation": 180, "x": 13, "y": 15 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_13",
+ "type": "mission_definition",
+ "name": "Find 2 Two-Way Radios",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "two_way_radio",
+ "count": 2,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_14",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Check with the nurse when you get a chance, I know she will need help setting up our clinic. On the construction front, we are going to need to get dedicated scavenger teams setup to bring in the miscellaneous supplies that we use in small quantities. We are going to start setting up a junk shop for them in the North end of the outpost so we could use your help with that. Communication is the biggest obstacle for the teams... could you bring in a pair of two-way radios?",
+ "accepted": "Organizing the scavenging missions is difficult enough without communication.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You should be able to find them in electronics stores or at a police station.",
+ "inquire": "Do you have the two-way radios?",
+ "success": "I'm sure the scavengers will find these useful.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_49",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_junk_shop_13" ], "x": 0, "y": 9 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_66",
+ "om_special": "ranch_camp",
+ "place_npcs": [ { "class": "ranch_barber", "x": 5, "y": 3 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_70",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_vehicles": [ { "vehicle": "car_mini", "chance": 100, "rotation": 45, "x": 8, "y": 3 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_14",
+ "type": "mission_definition",
+ "name": "Gather 5 Backpacks",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "backpack",
+ "count": 5,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_15",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The volunteers for the scavenging teams will need to be issued some basic equipment. When the boss sets up shop in the junk shed you should ask him what else he needs for his teams. In the meantime we can provide a few backpacks to get them started. Could you find five backpacks to give to the initial team?",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "It may be easier to make them if you can't find a school or something.",
+ "inquire": "Do you have the backpacks?",
+ "success": "Having at least basic equipment greatly increases survivability. Thanks.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_49",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_junk_shop_14_done" ], "x": 0, "y": 9 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_14" ], "x": 0, "y": 0 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_61",
+ "om_special": "ranch_camp",
+ "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ],
+ "place_vehicles": [ { "vehicle": "ambulance", "chance": 100, "rotation": 90, "x": 14, "y": 4 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_15",
+ "type": "mission_definition",
+ "name": "Find Homebrewer's Bible",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "brewing_cookbook",
+ "count": 1,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_16",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Growth has lately begun to stall, we have individuals passing through the outpost but the prospect of hard labor just to eke out an existence is driving them away. We've asked around and decided that, despite our pressing needs, building a bar ought to draw some of the less committed individuals to the outpost. Unlike other settlements, the more hands we have to more food we can produce... at least in the long term. Unfortunately, no one here has brewed alcoholic drinks before so we are going to need you to find a book called the 'Homebrewer's Bible' or something along those lines.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "I guess you should search homes or libraries?",
+ "inquire": "Do you have the book?",
+ "success": "I guarantee we will toast to your name when the bar is finished.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": {
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_15" ], "x": 0, "y": 0 } ]
+ }
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_16",
+ "type": "mission_definition",
+ "name": "Gather 80 Sugar",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "sugar",
+ "count": 80,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_FOREMAN_17",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Just flipping through the book I can tell that one ingredient in most of the alcoholic drinks that we don't have a large supply of is sugar. What alcohol we have been able to loot isn't going to last us long so starting 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.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You might get lucky finding it but you could always boil it out of fruit if you are familiar with the process.",
+ "inquire": "Do you have the sugar?",
+ "success": "There is a large group of thirsty individuals in our outpost that are truly thankful for your work.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_51",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_bar_16_done" ], "x": 0, "y": 0 } ]
+ },
+ {
+ "om_terrain": "ranch_camp_52",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_greenhouse_16" ], "x": 2, "y": 10 } ]
+ }
+ ]
+ }
+ },
+ {
+ "id": "MISSION_RANCH_FOREMAN_17",
+ "type": "mission_definition",
+ "name": "Collect 30 Glass Sheets",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "glass_sheet",
+ "count": 30,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_NULL",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Although we are an agricultural outpost, we are restricted to growing plants that are compatible with the New England climate during the warmer months. The easiest way to work around that is to build green houses to supplement our external fields. There isn't going to be an easy way to build these, 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.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Deconstructing existing windows is the only way I know of to keep the sheets intact.",
+ "inquire": "Do you have the glass sheets?",
+ "success": "We'll begin planting our first seeds as soon as we can get these installed.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ },
+ "end": {
+ "update_mapgen": [
+ {
+ "om_terrain": "ranch_camp_52",
+ "om_special": "ranch_camp",
+ "place_nested": [ { "chunks": [ "tacoma_commune_greenhouse_17_done" ], "x": 2, "y": 10 } ]
+ }
+ ]
+ }
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_guard.json b/data/json/npcs/tacoma_ranch/NPC_ranch_guard.json
new file mode 100644
index 0000000000000..c77fc2e1971f5
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_guard.json
@@ -0,0 +1,27 @@
+[
+ {
+ "type": "npc",
+ "id": "commune_guard",
+ "//": "A generic guard for the Tacoma Commune faction.",
+ "name_suffix": "Guard",
+ "class": "NC_BOUNTY_HUNTER",
+ "attitude": 0,
+ "mission": 8,
+ "chat": "TALK_RANCH_GUARD",
+ "faction": "tacoma_commune"
+ },
+ {
+ "id": "TALK_RANCH_GUARD",
+ "type": "talk_topic",
+ "dynamic_line": [
+ "I'm not in charge here, you're looking for someone else...",
+ "Keep civil or I'll bring the pain.",
+ "Just on watch, move along.",
+ {
+ "u_male": [ "Sir.", "Rough out there, isn't it?" ],
+ "no": [ "Ma'am", "Ma'am, you really shouldn't be traveling out there." ]
+ }
+ ],
+ "responses": [ { "text": "Don't mind me...", "topic": "TALK_DONE" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_nurse.json b/data/json/npcs/tacoma_ranch/NPC_ranch_nurse.json
new file mode 100644
index 0000000000000..6adc2e572ef44
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_nurse.json
@@ -0,0 +1,356 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_nurse_1",
+ "//": "Mission source for clinic. Provides medical attention.",
+ "name_suffix": "Nurse",
+ "gender": "female",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_NURSE",
+ "mission_offered": "MISSION_RANCH_NURSE_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_NURSE",
+ "dynamic_line": "How can I help you?",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_NURSE_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_NURSE_HIRE" },
+ { "text": "I could use your medical assistance.", "topic": "TALK_RANCH_NURSE_AID" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_NURSE_JOB",
+ "dynamic_line": "I was a practicing nurse so I've taken over the medical responsibilities of the outpost till we can locate a physician.",
+ "responses": [ { "text": "OK.", "topic": "TALK_RANCH_NURSE" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_NURSE_HIRE",
+ "dynamic_line": "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.",
+ "repeat_responses": {
+ "for_item": [
+ "1st_aid",
+ "antibiotics",
+ "aspirin",
+ "bandages",
+ "bfipowder",
+ "chem_hydrogen_peroxide",
+ "codeine",
+ "dayquil",
+ "disinfectant",
+ "flu_shot",
+ "morphine",
+ "nyquil",
+ "oxycodone",
+ "poppy_pain",
+ "poppysyrup",
+ "quikclot",
+ "thyme_oil",
+ "tramadol",
+ "vaccine_shot",
+ "weak_antibiotic",
+ "cattail_jelly"
+ ],
+ "response": { "text": "Delivering .", "topic": "TALK_DELIVER_ASK" }
+ },
+ "responses": [
+ { "text": "What kind of jobs do you have for me?", "topic": "TALK_MISSION_LIST" },
+ { "text": "Not now.", "topic": "TALK_RANCH_NURSE" }
+ ]
+ },
+ {
+ "id": "TALK_RANCH_NURSE_AID",
+ "type": "talk_topic",
+ "dynamic_line": {
+ "npc_has_effect": "currently_busy",
+ "yes": "Come back later, I need to take care of a few things first.",
+ "no": "I can take a look at you or your companions if you are injured."
+ },
+ "responses": [
+ {
+ "text": "[$200, 30m] I need you to patch me up.",
+ "topic": "TALK_RANCH_NURSE_AID_DONE",
+ "effect": [ "give_aid", { "u_spend_cash": 20000 } ],
+ "condition": { "npc_service": 20000 }
+ },
+ {
+ "text": "[$500, 1h] I need you to patch me up.",
+ "topic": "TALK_RANCH_NURSE_AID_DONE",
+ "effect": [ "give_all_aid", { "u_spend_cash": 50000 } ],
+ "condition": { "npc_service": 50000 }
+ },
+ { "text": "I should be fine.", "topic": "TALK_RANCH_NURSE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_NURSE_AID_DONE",
+ "dynamic_line": "That's the best I can do on short notice.",
+ "responses": [ { "text": "...", "topic": "TALK_DONE" } ]
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_1",
+ "type": "mission_definition",
+ "name": "Collect 100 Aspirin",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "aspirin",
+ "count": 100,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_2",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "I've got a handful of bandages and a few first aid kits to work with at the moment... in other words I'm completely unable to treat most serious medical emergencies. I'm supposed to have priority on any medical supplies that the scavengers bring in but I imagine the black market for the stuff will prevent me from ever seeing it. I could use your help getting a few bottles of aspirin to start with.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Aspirin is pretty common in homes and convenience stores.",
+ "inquire": "Do you have the aspirin?",
+ "success": "We'll go through this pretty quickly but it does help.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_2",
+ "type": "mission_definition",
+ "name": "Collect 3 Hotplates",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "hotplate",
+ "count": 3,
+ "start": "ranch_nurse_1",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_3",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "I was given a few bottles of bleach when I arrived but I need a number of 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.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "It should be a fairly common item, don't know what else to say.",
+ "inquire": "Do you have the hotplates?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_3",
+ "type": "mission_definition",
+ "name": "Collect 200 Multivitamin Pills",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "vitamins",
+ "count": 200,
+ "start": "ranch_nurse_2",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Disease is spreading rapidly due to poor nutrition and there is little that I can do about it. With food being scarce, people are willing to survive on whatever they can. I need to start supplementing the outpost's diet with vitamins to prevent potential deaths indirectly attributable to nutrition. I know it is a lot but if you could bring me 200 multivitamin pills I'd be able to treat the most vulnerable before they spread anything to the rest of us.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "It should be a fairly common item, don't know what else to say.",
+ "inquire": "Do you have the vitamins?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_4",
+ "type": "mission_definition",
+ "name": "Make 4 Charcoal Purifiers",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "char_purifier",
+ "count": 4,
+ "start": "ranch_nurse_3",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_5",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Despite my recommendations, we continue to have travelers come in with illnesses I've been able to trace back to contaminated drinking water. When boiling water isn't an option they need some form of charcoal water filter that they can use. If you could build me four charcoal water filters I'll distribute them to groups as they pass through.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "With some basic survival and crafting skills you should be able to make them with little effort.",
+ "inquire": "Do you have the charcoal water filters?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_5",
+ "type": "mission_definition",
+ "name": "Find a Chemistry Set",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "chemistry_set",
+ "start": "ranch_nurse_4",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_6",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "I've been working on producing some of our own medical supplies but I'm going to need a chemistry set to get everything that I need in order. Is there any way you could go through one of the school chemistry labs and steal me a chemistry set?",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You might be able to find one in a pharmacy if you can't find a school.",
+ "inquire": "Do you have the chemistry set?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_6",
+ "type": "mission_definition",
+ "name": "Find 10 Filter Masks",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "mask_filter",
+ "count": 10,
+ "start": "ranch_nurse_5",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_7",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The number of airway infections that I've encountered in the past week has 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.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You may be able to make one if you had the right guide.",
+ "inquire": "Do you have the filter masks?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_7",
+ "type": "mission_definition",
+ "name": "Find 4 Pairs of Rubber Gloves",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "gloves_rubber",
+ "count": 4,
+ "start": "ranch_nurse_6",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_8",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The bodily fluids that I often have to clean up and the caustic chemicals I deal with have done a number on my current pair of gloves. Could you find 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.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You should be able to find them in cleaning closets.",
+ "inquire": "Do you have the rubber gloves?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_8",
+ "type": "mission_definition",
+ "name": "Find 2 Scalpels",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "scalpel",
+ "count": 2,
+ "start": "ranch_nurse_7",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_9",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "I heard that we may have a physician on his way here. The workers have already begun expanding the clinic but I need you to locate a pair of scalpels to use in surgery when he arrives. I'm sure you should be able to find them in a hospital or craft shop.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Hospitals and crafting stores should have a few.",
+ "inquire": "Do you have the scalpels?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_9",
+ "type": "mission_definition",
+ "name": "Find Advanced Emergency Care",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "emergency_book",
+ "start": "ranch_nurse_8",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_10",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Have you heard of a book called the 'Guide to Advanced Emergency Care?' I 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.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Libraries are the only place I'd think to look.",
+ "inquire": "Do you have the Guide to Advanced Emergency Care?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_10",
+ "type": "mission_definition",
+ "name": "Find a Flu Shot",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "flu_shot",
+ "start": "ranch_nurse_9",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_NURSE_11",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "The doctor has some ideas on how to recreate a vaccination program for the common flu. If you come across an unused flu shot please bring it to me. We haven't had any fatalities from the flu yet but it is only a matter of time until one of the older or younger members of the outpost gets a bad case.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Hospitals or clinics might have a few that haven't been used.",
+ "inquire": "Do you have the flu shot?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_NURSE_11",
+ "type": "mission_definition",
+ "name": "Find 10 Syringes",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "syringe",
+ "count": 3,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_NULL",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "We are starting to isolate a few natural antibiotic serums but we don't have the supplies to administer the cocktails. I need you to bring me 10 empty syringes to use. I'll take care of cleaning them to prevent transferring infections.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Hospitals or clinics might have a few sitting around.",
+ "inquire": "Do you have the empty syringes?",
+ "success": "Thank you for your assistance.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_scavenger.json b/data/json/npcs/tacoma_ranch/NPC_ranch_scavenger.json
new file mode 100644
index 0000000000000..6ef7c9293058a
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_scavenger.json
@@ -0,0 +1,140 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_scavenger_1",
+ "//": "Mission source, shopkeep",
+ "name_suffix": "Scavenger Boss",
+ "class": "NC_JUNK_SHOPKEEP",
+ "attitude": 0,
+ "mission": 3,
+ "chat": "TALK_RANCH_SCAVENGER_1",
+ "mission_offered": "MISSION_RANCH_SCAVENGER_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "id": "TALK_RANCH_SCAVENGER_1",
+ "type": "talk_topic",
+ "dynamic_line": "Welcome to the junk shop.",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_SCAVENGER_1_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_SCAVENGER_1_HIRE" },
+ { "text": "Let's see what you've managed to find.", "topic": "TALK_RANCH_SCAVENGER_1", "effect": "start_trade" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_SCAVENGER_1_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "I'll think about it.", "topic": "TALK_RANCH_SCAVENGER_1" } ]
+ },
+ {
+ "id": "TALK_RANCH_SCAVENGER_1_HIRE",
+ "type": "talk_topic",
+ "dynamic_line": "Are you interested in the scavenging runs or one of the other tasks that I might have for you?",
+ "responses": [
+ {
+ "text": "Tell me more about the scavenging runs.",
+ "topic": "TALK_RANCH_SCAVENGER_1",
+ "effect": { "companion_mission": "SCAVENGER" }
+ },
+ { "text": "What kind of tasks do you have for me?", "topic": "TALK_MISSION_LIST" },
+ { "text": "No, thanks.", "topic": "TALK_RANCH_SCAVENGER_1" }
+ ]
+ },
+ {
+ "id": "MISSION_RANCH_SCAVENGER_1",
+ "type": "mission_definition",
+ "name": "Make 12 Knife Spears",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "spear_knife",
+ "count": 12,
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_SCAVENGER_2",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "I can usually use additional survival gear to kit-out the new recruits. The most basic weapon that everyone gets is the knife spear... it provides a good mix of range, power, and ease of use when engaging the more common monsters. Could you make me a dozen of them? I may need more later but that should help the first few teams.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You should be able to make them with the most basic of skills.",
+ "inquire": "Do you have the knife spears?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_SCAVENGER_2",
+ "type": "mission_definition",
+ "name": "Make 5 Wearable Flashlights",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "wearable_light",
+ "count": 5,
+ "start": "ranch_scavenger_1",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_SCAVENGER_3",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Night is the ideal time for my team to go on raids but they are going to need better light sources to speed up their missions. Could you craft a set of five headlamps for them? Keeping both hands free greatly helps during combat.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "You should be able to make them with the most basic of skills.",
+ "inquire": "Do you have the wearable flashlights?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_SCAVENGER_3",
+ "type": "mission_definition",
+ "name": "Make 3 Leather Body Armor",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "armor_larmor",
+ "count": 3,
+ "start": "ranch_scavenger_2",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_SCAVENGER_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "Clothing that can withstand the wear and tear of climbing through windows and fighting back wild animals is in high demand. The best that we have been able to field is leather body armor but it is difficult to make with our limited resources. Could you craft us three pairs of leather body armor? The life-expectancy of my scavengers would drastically increase if you did.",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Finding the leather might be easier in town rather than making it yourself.",
+ "inquire": "Do you have the leather armor?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ },
+ {
+ "id": "MISSION_RANCH_SCAVENGER_4",
+ "type": "mission_definition",
+ "name": "Make 12 Molotov Cocktails",
+ "goal": "MGOAL_FIND_ITEM",
+ "difficulty": 5,
+ "value": 50000,
+ "item": "molotov",
+ "count": 12,
+ "start": "ranch_scavenger_3",
+ "origins": [ "ORIGIN_SECONDARY" ],
+ "followup": "MISSION_RANCH_SCAVENGER_4",
+ "dialogue": {
+ "describe": "We need help...",
+ "offer": "When outnumbered or forced to pull back my scavengers have been taught to throw Molotov cocktails to keep monsters from chasing them. We go through one or two on every mission so we can always use a few more. Would you be willing to make us a dozen? I'm willing to pay you what I can for your assistance. ",
+ "accepted": "I'm counting on you.",
+ "rejected": "Come back when you get a chance. We need skilled survivors.",
+ "advice": "Alcohol or lamp oil is probably easier to refine rather than find in large quantities.",
+ "inquire": "Do you have the Molotov cocktails?",
+ "success": "Thank you for the delivery.",
+ "success_lie": "What good does this do us?",
+ "failure": "It was a lost cause anyways..."
+ }
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_scrapper.json b/data/json/npcs/tacoma_ranch/NPC_ranch_scrapper.json
new file mode 100644
index 0000000000000..bfc258974a5b7
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_scrapper.json
@@ -0,0 +1,35 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_scrapper_1",
+ "//": "Flavor",
+ "name_suffix": "Scrapper",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_SCRAPPER",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_SCRAPPER",
+ "dynamic_line": "Don't mind me.",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_SCRAPPER_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_SCRAPPER_HIRE" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_SCRAPPER_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Interesting.", "topic": "TALK_RANCH_SCRAPPER" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_SCRAPPER_HIRE",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "OK.", "topic": "TALK_RANCH_SCRAPPER" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_sickly_laborer.json b/data/json/npcs/tacoma_ranch/NPC_ranch_sickly_laborer.json
new file mode 100644
index 0000000000000..5f8a3a0c204dc
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_sickly_laborer.json
@@ -0,0 +1,42 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_ill_1",
+ "//": "Flavor",
+ "name_suffix": "Laborer",
+ "class": "NC_HUNTER",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_ILL_1",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1",
+ "dynamic_line": "Please leave me alone...",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_ILL_1_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_ILL_1_HIRE" },
+ { "text": "What's wrong?", "topic": "TALK_RANCH_ILL_1_SICK" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "That's sad.", "topic": "TALK_RANCH_ILL_1" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1_HIRE",
+ "dynamic_line": "I don't know what you could do. I've tried everything. Just give me time...",
+ "responses": [ { "text": "OK.", "topic": "TALK_RANCH_ILL_1" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_ILL_1_SICK",
+ "dynamic_line": "I keep getting sick! At first I thought it was something I ate but now it seems like I can't keep anything down...",
+ "responses": [ { "text": "Uhm.", "topic": "TALK_RANCH_ILL_1" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_woodcutter1.json b/data/json/npcs/tacoma_ranch/NPC_ranch_woodcutter1.json
new file mode 100644
index 0000000000000..194e5023eb3b4
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_woodcutter1.json
@@ -0,0 +1,54 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch_woodcutter_1",
+ "//": "Can purchase wood",
+ "name_suffix": "Lumberjack",
+ "class": "NC_COWBOY",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_WOODCUTTER",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_WOODCUTTER",
+ "dynamic_line": "You need something?",
+ "responses": [
+ { "text": "What are you doing here?", "topic": "TALK_RANCH_WOODCUTTER_JOB" },
+ { "text": "I'd like to hire your services.", "topic": "TALK_RANCH_WOODCUTTER_HIRE" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_WOODCUTTER_JOB",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Oh.", "topic": "TALK_RANCH_WOODCUTTER" } ]
+ },
+ {
+ "id": "TALK_RANCH_WOODCUTTER_HIRE",
+ "type": "talk_topic",
+ "dynamic_line": {
+ "npc_has_effect": "currently_busy",
+ "yes": "Come back later, I need to take care of a few things first.",
+ "no": "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."
+ },
+ "responses": [
+ {
+ "text": "[$2000, 1d] 10 logs",
+ "topic": "TALK_DONE",
+ "effect": [ "buy_10_logs", { "u_spend_cash": 200000 } ],
+ "condition": { "npc_service": 200000 }
+ },
+ {
+ "text": "[$12000, 7d] 100 logs",
+ "topic": "TALK_DONE",
+ "effect": [ "buy_100_logs", { "u_spend_cash": 1200000 } ],
+ "condition": { "npc_service": 1200000 }
+ },
+ { "text": "Maybe later.", "topic": "TALK_RANCH_WOODCUTTER", "condition": "npc_available" },
+ { "text": "I'll be back later.", "topic": "TALK_RANCH_WOODCUTTER" }
+ ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/NPC_ranch_woodcutter2.json b/data/json/npcs/tacoma_ranch/NPC_ranch_woodcutter2.json
new file mode 100644
index 0000000000000..49fc6b1759146
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_woodcutter2.json
@@ -0,0 +1,35 @@
+[
+ {
+ "type": "npc",
+ "id": "ranch__woodcutter_2",
+ "//": "Flavor",
+ "name_suffix": "Woodworker",
+ "class": "NC_COWBOY",
+ "attitude": 0,
+ "mission": 7,
+ "chat": "TALK_RANCH_WOODCUTTER_2",
+ "faction": "tacoma_commune"
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_WOODCUTTER_2",
+ "dynamic_line": "Don't have much time to talk.",
+ "responses": [
+ { "text": "What is your job here?", "topic": "TALK_RANCH_WOODCUTTER_2_JOB" },
+ { "text": "Do you need any help?", "topic": "TALK_RANCH_WOODCUTTER_2_HIRE" },
+ { "text": "I've got to go...", "topic": "TALK_DONE" }
+ ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_WOODCUTTER_2_JOB",
+ "dynamic_line": "I turn the logs that laborers bring in into lumber to expand the outpost. Maintaining the saw is a chore but breaks the monotony.",
+ "responses": [ { "text": "...", "topic": "TALK_RANCH_WOODCUTTER_2" } ]
+ },
+ {
+ "type": "talk_topic",
+ "id": "TALK_RANCH_WOODCUTTER_2_HIRE",
+ "dynamic_line": "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.",
+ "responses": [ { "text": "Oh.", "topic": "TALK_RANCH_WOODCUTTER_2" } ]
+ }
+]
diff --git a/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json b/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json
new file mode 100644
index 0000000000000..ebe45aa9e9f71
--- /dev/null
+++ b/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json
@@ -0,0 +1,907 @@
+[
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_west_wall_door",
+ "object": {
+ "mapgensize": [ 2, 2 ],
+ "rows": [
+ "q+",
+ " "
+ ],
+ "terrain": { "q": "t_wall_wood", "+": "t_door_c" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_east_wall_door",
+ "object": {
+ "mapgensize": [ 2, 2 ],
+ "rows": [
+ "+q",
+ " "
+ ],
+ "terrain": { "q": "t_wall_wood", "+": "t_door_c" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_makeshift_bed",
+ "object": {
+ "mapgensize": [ 2, 2 ],
+ "rows": [
+ "##",
+ " "
+ ],
+ "terrain": { "#": "t_dirt" },
+ "furniture": { "#": "f_makeshift_bed" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_14",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " w..wwwww ",
+ " w..w...w ",
+ " w..w...w ",
+ "wwwwwwww..ww.www..ww",
+ "w.............w....w",
+ "w..................w",
+ "w.............w....w",
+ "w.............wwwwww",
+ "w.............w ",
+ "w.............w ",
+ "wwww........www ",
+ " .........w ",
+ " .........w ",
+ " wwwwwwwwww "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_15",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " w..wwwww ",
+ " w..w...w ",
+ " w..w...w ",
+ "www00www..ww.www..ww",
+ "w.............w....w",
+ "w..................w",
+ "0.............w....w",
+ "0.............wwwwww",
+ "w.............w ",
+ "w.............w ",
+ "wwww........www ",
+ " .........w ",
+ " .........w ",
+ " wwww00wwww "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_dirt", "0": "t_window_frame" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_16_done",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " w++wwwww ",
+ " w..wr..w ",
+ " w..wr..w ",
+ "www]]www++ww+www++ww",
+ "w.............w....w",
+ "wCC..CtC...c..+....w",
+ "]tt........c.rwvvkkw",
+ "]tt........c.rwwwwww",
+ "wCC..CtC...c..w ",
+ "w.............w ",
+ "wwww..C..C..www ",
+ " +..t..t..w ",
+ " +..C..C..w ",
+ " wwww]]wwww "
+ ],
+ "terrain": {
+ "w": "t_wall",
+ ".": "t_floor",
+ "]": "t_window_boarded_noglass",
+ "c": "t_floor",
+ "C": "t_floor",
+ "t": "t_floor",
+ "r": "t_floor",
+ "k": "t_floor",
+ "v": "t_floor",
+ "+": "t_door_c"
+ },
+ "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" },
+ "//": "there used to be some logic to not place a bartender if there already was one, but it broke a lot and didn't place a bartender at all. Just place the bartender and sometimes the TC bar is so busy that they have two people on staff.",
+ "place_npcs": [ { "class": "ranch_bartender", "x": 12, "y": 12 }, { "class": "scavenger_merc", "x": 5, "y": 11 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_bartender_1",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ "qqqqqqqqqqqqqqq ",
+ ",,,,,,,,,,,,,,q ",
+ ",,,,,,,,,,,,,,q ",
+ "q,,,,,,,,,,,,,q ",
+ "q,,,,,,,,,,,,,q ",
+ "q,,,,,,,,,,,,,q ",
+ "qqqqqqqw++wwwww ",
+ " w..wr..w ",
+ " w..wr..w ",
+ "wwww]]ww++ww+www++ww",
+ "w.............w....w",
+ "wCC..CtC...c..+....w",
+ "]tt........c.rwvvkkw",
+ "]tt........c.rwwwwww",
+ "wCC..CtC...c..w ",
+ "w.............w ",
+ "wwww..C..C..www ",
+ " +..t..t..w ",
+ " +..C..C..w ",
+ " wwww]]wwww "
+ ],
+ "terrain": {
+ "w": "t_wall",
+ ".": "t_floor",
+ "]": "t_window_boarded_noglass",
+ "c": "t_floor",
+ "C": "t_floor",
+ "t": "t_floor",
+ "r": "t_floor",
+ "k": "t_floor",
+ "v": "t_floor",
+ "+": "t_door_c",
+ ",": "t_dirt",
+ "q": "t_wall_half"
+ },
+ "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_bartender_2",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ "wwww00www00wwww ",
+ "+,,,,,,,,,,,,,w ",
+ "+,,,,,,,,,,,,,wqqqqq",
+ "w,,,,,,,,,,,,,w,,,,q",
+ "0,,,,,,,,,,,,,w,,,,q",
+ "w,,,,,,,,,,,,,w,,,,q",
+ "wwwwwwww++wwwww,,,,q",
+ " w..wr..w,,,,q",
+ " w..wr..w,,,,q",
+ "wwww]]ww++ww+www++ww",
+ "w.............w...kw",
+ "wCC..CtC...c..+....w",
+ "]tt........c.rwvvkkw",
+ "]tt........c.rwwwwww",
+ "wCC..CtC...c..w ",
+ "w.............w ",
+ "wwww..C..C..www ",
+ " +..t..t..w ",
+ " +..C..C..w ",
+ " wwww]]wwww "
+ ],
+ "terrain": {
+ "w": "t_wall",
+ ".": "t_floor",
+ "]": "t_window_boarded_noglass",
+ "c": "t_floor",
+ "C": "t_floor",
+ "t": "t_floor",
+ "r": "t_floor",
+ "k": "t_floor",
+ "v": "t_floor",
+ "+": "t_door_c",
+ ",": "t_dirt",
+ "q": "t_wall_half",
+ "0": "t_window_frame"
+ },
+ "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_bartender_3",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ "wwww]]www]]wwww ",
+ "+.............w ",
+ "+.............wwwwww",
+ "w.............w....w",
+ "].............w....]",
+ "w.............w....w",
+ "wwwwwwww++wwwww....w",
+ " w..wr..w....w",
+ " w..wr..w....w",
+ "wwww]]ww++ww+www++ww",
+ "w.............w....w",
+ "wCC..CtC...c..+....w",
+ "]tt........c.rwvvkkw",
+ "]tt........c.rwwwwww",
+ "wCC..CtC...c..w ",
+ "w.............w ",
+ "wwww..C..C..www ",
+ " +..t..t..w ",
+ " +..C..C..w ",
+ " wwww]]wwww "
+ ],
+ "terrain": {
+ "w": "t_wall",
+ ".": "t_floor",
+ "]": "t_window_boarded_noglass",
+ "c": "t_floor",
+ "C": "t_floor",
+ "t": "t_floor",
+ "r": "t_floor",
+ "k": "t_floor",
+ "v": "t_floor",
+ "+": "t_door_c",
+ ",": "t_dirt",
+ "q": "t_wall_half",
+ "0": "t_window_frame"
+ },
+ "furniture": { "c": "f_counter", "C": "f_chair", "t": "f_table", "r": "f_rack", "k": "f_wood_keg", "v": "f_fvat_empty" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_bar_bartender_4",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ "wwww]]www]]wwww ",
+ "+.......CttC..w ",
+ "+.......CttC..wwwwww",
+ "w..CtC........wk...w",
+ "].........CtC.wk...]",
+ "w..CtC........wk..sw",
+ "wwwwwwww++wwwwwv..sw",
+ " w..wr..wv..sw",
+ " w..wr..wv..sw",
+ "wwww]]ww++ww+www++ww",
+ "w.............w...kw",
+ "wCC..CtC...c..+....w",
+ "]tt........c.rwvvkkw",
+ "]tt........c.rwwwwww",
+ "wCC..CtC...c..w ",
+ "w.............w ",
+ "wwww..C..C..www ",
+ " +..t..t..w ",
+ " +..C..C..w ",
+ " wwww]]wwww "
+ ],
+ "terrain": {
+ "w": "t_wall",
+ ".": "t_floor",
+ "]": "t_window_boarded_noglass",
+ "c": "t_floor",
+ "C": "t_floor",
+ "t": "t_floor",
+ "r": "t_floor",
+ "k": "t_floor",
+ "v": "t_floor",
+ "+": "t_door_c",
+ ",": "t_dirt",
+ "q": "t_wall_half",
+ "0": "t_window_frame",
+ "s": "t_floor"
+ },
+ "furniture": {
+ "c": "f_counter",
+ "C": "f_chair",
+ "t": "f_table",
+ "r": "f_rack",
+ "k": "f_wood_keg",
+ "v": "f_fvat_empty",
+ "s": "f_standing_tank"
+ }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_chopshop_10",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ "wwwwwwwwwwwwwwwwwwww",
+ "w..................w",
+ "....................",
+ "....................",
+ "....................",
+ "....................",
+ "....................",
+ "....................",
+ "w..................w",
+ "wwwwwww.www.wwwwwwww",
+ " w...w...w ",
+ " w...w...w ",
+ " wwwwww.ww ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_chopshop_11",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ "wwwwwwwwwwwwwwwwwwww",
+ "w..................w",
+ "....................",
+ "....................",
+ "....................",
+ "....................",
+ "....................",
+ "....................",
+ "w..................w",
+ "wwwwwww+www+wwwwwwww",
+ " w...w...w ",
+ " w...w...w ",
+ " wwwwww+ww ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_dirt", "+": "t_door_c" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_chopshop_12_done",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ " ",
+ "wwwwwwwwwwwwwwwwwwww",
+ "w..................w",
+ "....................",
+ "....................",
+ "..rrr...cccc........",
+ "....................",
+ "....................",
+ "....................",
+ "w..................w",
+ "wwwwwww+www+wwwwwwww",
+ " wr.bwr..w ",
+ " wr.bwr..w ",
+ " wwwwww+ww ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_dirtfloor", "+": "t_door_c", "r": "t_dirtfloor", "c": "t_dirtfloor", "b": "t_dirtfloor" },
+ "furniture": { "r": "f_rack", "c": "f_counter", "b": "f_makeshift_bed" },
+ "place_vehicles": [ { "vehicle": "armored_car", "chance": 100, "rotation": 0, "x": 15, "y": 7 } ],
+ "place_npcs": [ { "class": "ranch_scrapper_1", "x": 13, "y": 12 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_clinic_8",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ "........ .......",
+ "........ .......",
+ ".....................",
+ ".....................",
+ ".....................",
+ ".....................",
+ ".....................",
+ "........ .......",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_clinic_9",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ "wwwwwwww wwwwwww",
+ "w......w w.....w",
+ "w......wwwwwww.....w",
+ "w..................w",
+ "w..................w",
+ "w..................w",
+ "w......wwwwwww.....w",
+ "www..www wwwwwww",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_clinic_10",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ "wwwwwwww wwwwwww",
+ "w......w w.....w",
+ "[......wwwwwww.....[",
+ "w......w.....w.....w",
+ "w..................w",
+ "[......w.....w.....[",
+ "w......wwwwwww.....w",
+ "www..www wwwwwww",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_dirt", "[": "t_window_boarded_noglass" },
+ "place_item": [ { "item": "ax", "x": 13, "y": 18 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_clinic_11",
+ "object": {
+ "mapgensize": [ 20, 20 ],
+ "rows": [
+ " ",
+ " ",
+ " ",
+ "wwwwwwww wwwwwww",
+ "w......w wcccccw",
+ "[......wwwwwww.....[",
+ "w......w.....w.....w",
+ "w..............tt..w",
+ "[..... w.....w.....[",
+ "w......wwwwwww.....w",
+ "www++www wwwwwww",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_floor", "+": "t_door_c", "[": "t_window_boarded_noglass", "c": "t_floor", "t": "t_floor" },
+ "furniture": { "c": "f_cupboard", "t": "f_table" },
+ "place_npcs": [ { "class": "ranch_nurse_1", "x": 5, "y": 6 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_greenhouse_16",
+ "object": {
+ "mapgensize": [ 13, 13 ],
+ "rows": [
+ "wwwww.wwwww ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "wwwww.wwwww "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_greenhouse_17_done",
+ "object": {
+ "mapgensize": [ 13, 13 ],
+ "rows": [
+ "wwwww+wwwww ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "w.........w ",
+ "wwwww+wwwww "
+ ],
+ "terrain": { "w": "t_window", ".": "t_dirt", "+": "t_door_c" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_junk_shop_12",
+ "object": {
+ "mapgensize": [ 16, 16 ],
+ "rows": [
+ "wwwwww ",
+ "w....wwwwwwwwwww ",
+ "w....w.........w ",
+ "w..............w ",
+ "w....w.........w ",
+ "wwwwww.........w ",
+ " w.........w ",
+ " ..........w ",
+ " w.........w ",
+ " www.....www ",
+ " w.....w ",
+ " w.....w ",
+ " w...... ",
+ " w.....w ",
+ " wwwwwww ",
+ " "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_junk_shop_13",
+ "object": {
+ "mapgensize": [ 16, 16 ],
+ "rows": [
+ "wwwwww ",
+ "w....wwww000wwww ",
+ "0....w.........w ",
+ "0..............w ",
+ "w....w.........0 ",
+ "wwwwww.........0 ",
+ " w.........w ",
+ " ..........w ",
+ " w.........w ",
+ " www.....www ",
+ " w.....w ",
+ " w.....w ",
+ " 0...... ",
+ " w.....w ",
+ " wwwwwww ",
+ " "
+ ],
+ "terrain": { "w": "t_wall", ".": "t_dirtfloor", "0": "t_window_frame" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_junk_shop_14_done",
+ "object": {
+ "mapgensize": [ 16, 16 ],
+ "rows": [
+ "wwwwww ",
+ "w....wwww[[[wwww ",
+ "[....w........rw ",
+ "[.............rw ",
+ "w....w..cc.cc.r[ ",
+ "wwwwww..cc.cc.r[ ",
+ " w..cc.cc.rw ",
+ " +..cc.cc.rw ",
+ " w........rw ",
+ " www.....www ",
+ " w.....w ",
+ " w..c..w ",
+ " [..c..+ ",
+ " w..c..w ",
+ " wwwwwww ",
+ " "
+ ],
+ "terrain": {
+ "w": "t_wall",
+ ".": "t_dirtfloor",
+ "[": "t_window_boarded_noglass",
+ "+": "t_door_c",
+ "r": "t_dirtfloor",
+ "c": "t_dirtfloor"
+ },
+ "furniture": { "c": "f_counter", "r": "f_rack" },
+ "place_npcs": [ { "class": "ranch_scavenger_1", "x": 9, "y": 12 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_lumbermill_4",
+ "object": {
+ "mapgensize": [ 12, 12 ],
+ "rows": [
+ ".......... ",
+ ".......... ",
+ "WWW....... ",
+ "W......... ",
+ "W......... ",
+ ".......... ",
+ ".......... ",
+ ".......... ",
+ ".......... ",
+ ".......... ",
+ ".......... ",
+ ".......... "
+ ],
+ "terrain": { "W": "t_wall_log_half", ".": "t_dirt" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_lumbermill_5",
+ "object": {
+ "mapgensize": [ 12, 12 ],
+ "rows": [
+ " ",
+ " ",
+ "WWW....WWW ",
+ "W........W ",
+ "W........W ",
+ "W......... ",
+ "W......... ",
+ "W......... ",
+ "W......... ",
+ "W........W ",
+ "W........W ",
+ "WWW....WWW "
+ ],
+ "terrain": { "W": "t_wall_log", ".": "t_dirtfloor" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_lumbermill_6",
+ "object": {
+ "mapgensize": [ 12, 12 ],
+ "rows": [
+ " ",
+ " ",
+ "WWW....WWW ",
+ "W........W ",
+ "W........W ",
+ "W......... ",
+ "W......... ",
+ "W......... ",
+ "W......... ",
+ "W.......rW ",
+ "W.......rW ",
+ "WWW....WWW "
+ ],
+ "terrain": { "r": "t_dirtfloor", "W": "t_wall_log", ".": "t_dirtfloor" },
+ "furniture": { "r": "f_rack" },
+ "place_item": [ { "item": "frame", "x": 3, "y": 6 }, { "item": "frame", "x": 3, "y": 7 }, { "item": "frame", "x": 3, "y": 8 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_lumbermill_7",
+ "object": {
+ "mapgensize": [ 12, 12 ],
+ "rows": [
+ " ",
+ " ",
+ "WWWc...WWW ",
+ "W..c....rW ",
+ "W..c....rW ",
+ "W..c...... ",
+ "W......... ",
+ "W......... ",
+ "W......... ",
+ "W.......rW ",
+ "W.......rW ",
+ "WWW....WWW "
+ ],
+ "terrain": { "r": "t_dirtfloor", "W": "t_wall_log", ".": "t_dirtfloor", "c": "t_conveyor" },
+ "furniture": { "r": "f_rack" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_lumbermill_8_done",
+ "object": {
+ "mapgensize": [ 12, 12 ],
+ "rows": [
+ " ",
+ " ",
+ "WWWc...WWW ",
+ "W..c....rW ",
+ "W..c....rW ",
+ "W..c...... ",
+ "W..m...... ",
+ "W..m...... ",
+ "W..M...... ",
+ "W.......rW ",
+ "W.......rW ",
+ "WWW....WWW "
+ ],
+ "terrain": {
+ "r": "t_dirtfloor",
+ "W": "t_wall_log",
+ ".": "t_dirtfloor",
+ "c": "t_conveyor",
+ "m": "t_machinery_old",
+ "M": "t_machinery_heavy"
+ },
+ "furniture": { "r": "f_rack" },
+ "place_item": [
+ { "item": "log", "x": 3, "y": 0 },
+ { "item": "log", "x": 3, "y": 1 },
+ { "item": "log", "x": 3, "y": 1 },
+ { "item": "log", "x": 0, "y": 1, "amount": [ 1, 5 ] },
+ { "item": "log", "x": 1, "y": 1, "amount": [ 1, 5 ] },
+ { "item": "2x4", "x": 3, "y": 9, "amount": [ 1, 10 ] },
+ { "item": "log", "x": 3, "y": 2 }
+ ],
+ "place_npcs": [ { "class": "ranch_woodcutter_1", "x": 4, "y": 7 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_outhouse_8",
+ "object": {
+ "mapgensize": [ 5, 5 ],
+ "rows": [
+ "wwww ",
+ "..0w ",
+ "wwww ",
+ "..0w ",
+ "wwww "
+ ],
+ "terrain": { "w": "t_wall_half", "0": "t_pit", ".": "t_dirtfloor" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_outhouse_9_done",
+ "object": {
+ "mapgensize": [ 5, 5 ],
+ "rows": [
+ "wwww ",
+ "+.0w ",
+ "wwww ",
+ "+.0w ",
+ "wwww "
+ ],
+ "terrain": { "w": "t_wall", "+": "t_door_c", ".": "t_dirtfloor", "0": "t_pit" },
+ "place_npcs": [ { "class": "ranch_ill_1", "x": 2, "y": 1 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_toolshed_8",
+ "object": {
+ "mapgensize": [ 6, 6 ],
+ "rows": [
+ "wwwwww",
+ "w....w",
+ ".....w",
+ "w....w",
+ "wwwwww",
+ " "
+ ],
+ "terrain": { "w": "t_wall_half", ".": "t_dirtfloor" }
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "tacoma_commune_toolshed_9_done",
+ "object": {
+ "mapgensize": [ 6, 6 ],
+ "rows": [
+ "wwwwww",
+ "wccccw",
+ "+....W",
+ "wccccw",
+ "wwwwww",
+ " "
+ ],
+ "terrain": { "w": "t_wall", "+": "t_door_c", "W": "t_window_boarded_noglass", "c": "t_dirtfloor", ".": "t_dirtfloor" },
+ "furniture": { "c": "f_counter" }
+ }
+ }
+]
diff --git a/data/json/npcs/talk_tags.json b/data/json/npcs/talk_tags.json
index 898042b3f31e7..9eccbe9bb7886 100644
--- a/data/json/npcs/talk_tags.json
+++ b/data/json/npcs/talk_tags.json
@@ -477,6 +477,21 @@
"Thanks, !"
]
},
+ {
+ "type": "snippet",
+ "category": "",
+ "text": [
+ "Hey! I saw you take that ! Drop it. Now.",
+ "You best be dropping what you just picked up right now .",
+ "I've got eyes, you thief!",
+ "Hey! That belongs to us! Drop it.",
+ ", I've seen a thief!",
+ "I saw that! Drop what you just stole!",
+ "Thieves will not last long around me , please drop that.",
+ "Consider this a warning , thieves will not be tolerated, drop it.",
+ "You think I'm blind ? Don't touch our stuff."
+ ]
+ },
{
"type": "snippet",
"category": "",
diff --git a/data/json/obsolete.json b/data/json/obsolete.json
index 24d92a2630023..22240ab039c27 100644
--- a/data/json/obsolete.json
+++ b/data/json/obsolete.json
@@ -6,5 +6,13 @@
"description": "When this bionic is active, you can burn nearly any organic material as fuel (use 'E'), recharging your power level. Some materials will burn better than others.",
"occupied_bodyparts": [ [ "TORSO", 40 ] ],
"flags": [ "BIONIC_POWER_SOURCE", "BIONIC_TOGGLED" ]
+ },
+ {
+ "id": "bio_storage",
+ "type": "bionic",
+ "name": "Internal Storage",
+ "description": "Space inside your chest cavity has been surgically converted into a storage area. You may carry an extra 2 liters of volume.",
+ "occupied_bodyparts": [ [ "TORSO", 32 ] ],
+ "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ]
}
]
diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json
index add510c4905a9..86a7829c10000 100644
--- a/data/json/overmap/multitile_city_buildings.json
+++ b/data/json/overmap/multitile_city_buildings.json
@@ -25,6 +25,24 @@
{ "point": [ 0, 0, 2 ], "overmap": "furniture_upper_roof_north" }
]
},
+ {
+ "type": "city_building",
+ "id": "cs_sex_shop",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "cs_sex_shop_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "cs_sex_shop_roof_north" }
+ ]
+ },
+ {
+ "type": "city_building",
+ "id": "cs_private_park",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "cs_private_park_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "cs_private_park_roof_north" }
+ ]
+ },
{
"type": "city_building",
"id": "church",
@@ -50,6 +68,15 @@
{ "point": [ 0, 0, 3 ], "overmap": "church_roof_1_north" }
]
},
+ {
+ "type": "city_building",
+ "id": "cs_tire_shop",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "cs_tire_shop_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "cs_tire_shop_roof_north" }
+ ]
+ },
{
"type": "city_building",
"id": "s_bookstore",
@@ -585,7 +612,34 @@
{ "point": [ 2, 1, 0 ], "overmap": "school_1_4_north" },
{ "point": [ 0, 2, 0 ], "overmap": "school_1_9_north" },
{ "point": [ 1, 2, 0 ], "overmap": "school_1_8_north" },
- { "point": [ 2, 2, 0 ], "overmap": "school_1_7_north" }
+ { "point": [ 2, 2, 0 ], "overmap": "school_1_7_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "school_2_3_north" },
+ { "point": [ 1, 0, 1 ], "overmap": "school_2_2_north" },
+ { "point": [ 2, 0, 1 ], "overmap": "school_2_1_north" },
+ { "point": [ 0, 1, 1 ], "overmap": "school_2_6_north" },
+ { "point": [ 1, 1, 1 ], "overmap": "school_2_5_north" },
+ { "point": [ 2, 1, 1 ], "overmap": "school_2_4_north" },
+ { "point": [ 0, 2, 1 ], "overmap": "school_2_9_north" },
+ { "point": [ 1, 2, 1 ], "overmap": "school_2_8_north" },
+ { "point": [ 2, 2, 1 ], "overmap": "school_2_7_north" },
+ { "point": [ 0, 0, 2 ], "overmap": "school_3_3_north" },
+ { "point": [ 1, 0, 2 ], "overmap": "school_3_2_north" },
+ { "point": [ 2, 0, 2 ], "overmap": "school_3_1_north" },
+ { "point": [ 0, 1, 2 ], "overmap": "school_3_6_north" },
+ { "point": [ 1, 1, 2 ], "overmap": "school_3_5_north" },
+ { "point": [ 2, 1, 2 ], "overmap": "school_3_4_north" },
+ { "point": [ 0, 2, 2 ], "overmap": "school_3_9_north" },
+ { "point": [ 1, 2, 2 ], "overmap": "school_3_8_north" },
+ { "point": [ 2, 2, 2 ], "overmap": "school_3_7_north" },
+ { "point": [ 0, 0, 3 ], "overmap": "school_4_3_north" },
+ { "point": [ 1, 0, 3 ], "overmap": "school_4_2_north" },
+ { "point": [ 2, 0, 3 ], "overmap": "school_4_1_north" },
+ { "point": [ 0, 1, 3 ], "overmap": "school_4_6_north" },
+ { "point": [ 1, 1, 3 ], "overmap": "school_4_5_north" },
+ { "point": [ 2, 1, 3 ], "overmap": "school_4_4_north" },
+ { "point": [ 0, 2, 3 ], "overmap": "school_4_9_north" },
+ { "point": [ 1, 2, 3 ], "overmap": "school_4_8_north" },
+ { "point": [ 2, 2, 3 ], "overmap": "school_4_7_north" }
]
},
{
@@ -596,125 +650,186 @@
{ "point": [ 8, 9, 0 ], "overmap": "mall_a_1_south" },
{ "point": [ 7, 9, 0 ], "overmap": "mall_a_2_south" },
{ "point": [ 6, 9, 0 ], "overmap": "mall_a_3_south" },
- { "point": [ 6, 9, 1 ], "overmap": "mall_a_3_roof_south" },
+ { "point": [ 6, 9, 1 ], "overmap": "mall_b_3_south" },
+ { "point": [ 6, 9, 2 ], "overmap": "mall_a_3_roof_south" },
+ { "point": [ 6, 9, 3 ], "overmap": "mall_upper_roof_3_south" },
{ "point": [ 5, 9, 0 ], "overmap": "mall_a_4_south" },
- { "point": [ 5, 9, 1 ], "overmap": "mall_a_4_roof_south" },
+ { "point": [ 5, 9, 1 ], "overmap": "mall_b_4_south" },
+ { "point": [ 5, 9, 2 ], "overmap": "mall_a_4_roof_south" },
+ { "point": [ 5, 9, 3 ], "overmap": "mall_upper_roof_4_south" },
{ "point": [ 4, 9, 0 ], "overmap": "mall_a_5_south" },
- { "point": [ 4, 9, 1 ], "overmap": "mall_a_5_roof_south" },
+ { "point": [ 4, 9, 1 ], "overmap": "mall_b_5_south" },
+ { "point": [ 4, 9, 2 ], "overmap": "mall_a_5_roof_south" },
{ "point": [ 3, 9, 0 ], "overmap": "mall_a_6_south" },
{ "point": [ 2, 9, 0 ], "overmap": "mall_a_7_south" },
{ "point": [ 1, 9, 0 ], "overmap": "mall_a_8_south" },
{ "point": [ 0, 9, 0 ], "overmap": "mall_a_9_south" },
{ "point": [ 8, 8, 0 ], "overmap": "mall_a_10_south" },
- { "point": [ 8, 8, 1 ], "overmap": "mall_a_10_roof_south" },
+ { "point": [ 8, 8, 1 ], "overmap": "mall_b_10_south" },
+ { "point": [ 8, 8, 2 ], "overmap": "mall_a_10_roof_south" },
{ "point": [ 7, 8, 0 ], "overmap": "mall_a_11_south" },
- { "point": [ 7, 8, 1 ], "overmap": "mall_a_11_roof_south" },
+ { "point": [ 7, 8, 1 ], "overmap": "mall_b_11_south" },
+ { "point": [ 7, 8, 2 ], "overmap": "mall_a_11_roof_south" },
{ "point": [ 6, 8, 0 ], "overmap": "mall_a_12_south" },
- { "point": [ 6, 8, 1 ], "overmap": "mall_a_12_roof_south" },
+ { "point": [ 6, 8, 1 ], "overmap": "mall_b_12_south" },
+ { "point": [ 6, 8, 2 ], "overmap": "mall_a_12_roof_south" },
+ { "point": [ 6, 8, 3 ], "overmap": "mall_upper_roof_12_south" },
{ "point": [ 5, 8, 0 ], "overmap": "mall_a_13_south" },
- { "point": [ 5, 8, 1 ], "overmap": "mall_a_13_roof_south" },
+ { "point": [ 5, 8, 1 ], "overmap": "mall_b_13_south" },
+ { "point": [ 5, 8, 2 ], "overmap": "mall_a_13_roof_south" },
+ { "point": [ 5, 8, 3 ], "overmap": "mall_upper_roof_13_south" },
{ "point": [ 4, 8, 0 ], "overmap": "mall_a_14_south" },
- { "point": [ 4, 8, 1 ], "overmap": "mall_a_14_roof_south" },
+ { "point": [ 4, 8, 1 ], "overmap": "mall_b_14_south" },
+ { "point": [ 4, 8, 2 ], "overmap": "mall_a_14_roof_south" },
{ "point": [ 3, 8, 0 ], "overmap": "mall_a_15_south" },
{ "point": [ 2, 8, 0 ], "overmap": "mall_a_16_south" },
{ "point": [ 1, 8, 0 ], "overmap": "mall_a_17_south" },
{ "point": [ 0, 8, 0 ], "overmap": "mall_a_18_south" },
{ "point": [ 8, 7, 0 ], "overmap": "mall_a_19_south" },
- { "point": [ 8, 7, 1 ], "overmap": "mall_a_19_roof_south" },
+ { "point": [ 8, 7, 1 ], "overmap": "mall_b_19_south" },
+ { "point": [ 8, 7, 2 ], "overmap": "mall_a_19_roof_south" },
{ "point": [ 7, 7, 0 ], "overmap": "mall_a_20_south" },
- { "point": [ 7, 7, 1 ], "overmap": "mall_a_20_roof_south" },
+ { "point": [ 7, 7, 1 ], "overmap": "mall_b_20_south" },
+ { "point": [ 7, 7, 2 ], "overmap": "mall_a_20_roof_south" },
{ "point": [ 6, 7, 0 ], "overmap": "mall_a_21_south" },
- { "point": [ 6, 7, 1 ], "overmap": "mall_a_21_roof_south" },
+ { "point": [ 6, 7, 1 ], "overmap": "mall_b_21_south" },
+ { "point": [ 6, 7, 2 ], "overmap": "mall_a_21_roof_south" },
{ "point": [ 5, 7, 0 ], "overmap": "mall_a_22_south" },
- { "point": [ 5, 7, 1 ], "overmap": "mall_a_22_roof_south" },
+ { "point": [ 5, 7, 1 ], "overmap": "mall_b_22_south" },
+ { "point": [ 5, 7, 2 ], "overmap": "mall_a_22_roof_south" },
{ "point": [ 4, 7, 0 ], "overmap": "mall_a_23_south" },
- { "point": [ 4, 7, 1 ], "overmap": "mall_a_23_roof_south" },
+ { "point": [ 4, 7, 1 ], "overmap": "mall_b_23_south" },
+ { "point": [ 4, 7, 2 ], "overmap": "mall_a_23_roof_south" },
{ "point": [ 3, 7, 0 ], "overmap": "mall_a_24_south" },
- { "point": [ 3, 7, 1 ], "overmap": "mall_a_24_roof_south" },
+ { "point": [ 3, 7, 1 ], "overmap": "mall_b_24_south" },
+ { "point": [ 3, 7, 2 ], "overmap": "mall_a_24_roof_south" },
{ "point": [ 2, 7, 0 ], "overmap": "mall_a_25_south" },
- { "point": [ 2, 7, 1 ], "overmap": "mall_a_25_roof_south" },
+ { "point": [ 2, 7, 1 ], "overmap": "mall_b_25_south" },
+ { "point": [ 2, 7, 2 ], "overmap": "mall_a_25_roof_south" },
{ "point": [ 1, 7, 0 ], "overmap": "mall_a_26_south" },
- { "point": [ 1, 7, 1 ], "overmap": "mall_a_26_roof_south" },
+ { "point": [ 1, 7, 1 ], "overmap": "mall_b_26_south" },
+ { "point": [ 1, 7, 2 ], "overmap": "mall_a_26_roof_south" },
{ "point": [ 0, 7, 0 ], "overmap": "mall_a_27_south" },
{ "point": [ 8, 6, 0 ], "overmap": "mall_a_28_south" },
{ "point": [ 7, 6, 0 ], "overmap": "mall_a_29_south" },
- { "point": [ 7, 6, 1 ], "overmap": "mall_a_29_roof_south" },
+ { "point": [ 7, 6, 1 ], "overmap": "mall_b_29_south" },
+ { "point": [ 7, 6, 2 ], "overmap": "mall_a_29_roof_south" },
{ "point": [ 6, 6, 0 ], "overmap": "mall_a_30_south" },
- { "point": [ 6, 6, 1 ], "overmap": "mall_a_30_roof_south" },
+ { "point": [ 6, 6, 1 ], "overmap": "mall_b_30_south" },
+ { "point": [ 6, 6, 2 ], "overmap": "mall_a_30_roof_south" },
{ "point": [ 5, 6, 0 ], "overmap": "mall_a_31_south" },
- { "point": [ 5, 6, 1 ], "overmap": "mall_a_31_roof_south" },
+ { "point": [ 5, 6, 1 ], "overmap": "mall_b_31_south" },
+ { "point": [ 5, 6, 2 ], "overmap": "mall_a_31_roof_south" },
{ "point": [ 4, 6, 0 ], "overmap": "mall_a_32_south" },
- { "point": [ 4, 6, 1 ], "overmap": "mall_a_32_roof_south" },
+ { "point": [ 4, 6, 1 ], "overmap": "mall_b_32_south" },
+ { "point": [ 4, 6, 2 ], "overmap": "mall_a_32_roof_south" },
{ "point": [ 3, 6, 0 ], "overmap": "mall_a_33_south" },
- { "point": [ 3, 6, 1 ], "overmap": "mall_a_33_roof_south" },
+ { "point": [ 3, 6, 1 ], "overmap": "mall_b_33_south" },
+ { "point": [ 3, 6, 2 ], "overmap": "mall_a_33_roof_south" },
{ "point": [ 2, 6, 0 ], "overmap": "mall_a_34_south" },
- { "point": [ 2, 6, 1 ], "overmap": "mall_a_34_roof_south" },
+ { "point": [ 2, 6, 1 ], "overmap": "mall_b_34_south" },
+ { "point": [ 2, 6, 2 ], "overmap": "mall_a_34_roof_south" },
+ { "point": [ 2, 6, 3 ], "overmap": "mall_upper_roof_34_south" },
{ "point": [ 1, 6, 0 ], "overmap": "mall_a_35_south" },
- { "point": [ 1, 6, 1 ], "overmap": "mall_a_35_roof_south" },
+ { "point": [ 1, 6, 1 ], "overmap": "mall_b_35_south" },
+ { "point": [ 1, 6, 2 ], "overmap": "mall_a_35_roof_south" },
+ { "point": [ 1, 6, 3 ], "overmap": "mall_upper_roof_35_south" },
{ "point": [ 0, 6, 0 ], "overmap": "mall_a_36_south" },
{ "point": [ 8, 5, 0 ], "overmap": "mall_a_37_south" },
{ "point": [ 7, 5, 0 ], "overmap": "mall_a_38_south" },
- { "point": [ 7, 5, 1 ], "overmap": "mall_a_38_roof_south" },
+ { "point": [ 7, 5, 1 ], "overmap": "mall_b_38_south" },
+ { "point": [ 7, 5, 2 ], "overmap": "mall_a_38_roof_south" },
{ "point": [ 6, 5, 0 ], "overmap": "mall_a_39_south" },
- { "point": [ 6, 5, 1 ], "overmap": "mall_a_39_roof_south" },
+ { "point": [ 6, 5, 1 ], "overmap": "mall_b_39_south" },
+ { "point": [ 6, 5, 2 ], "overmap": "mall_a_39_roof_south" },
{ "point": [ 5, 5, 0 ], "overmap": "mall_a_40_south" },
- { "point": [ 5, 5, 1 ], "overmap": "mall_a_40_roof_south" },
+ { "point": [ 5, 5, 1 ], "overmap": "mall_b_40_south" },
+ { "point": [ 5, 5, 2 ], "overmap": "mall_a_40_roof_south" },
{ "point": [ 4, 5, 0 ], "overmap": "mall_a_41_south" },
- { "point": [ 4, 5, 1 ], "overmap": "mall_a_41_roof_south" },
+ { "point": [ 4, 5, 1 ], "overmap": "mall_b_41_south" },
+ { "point": [ 4, 5, 2 ], "overmap": "mall_a_41_roof_south" },
{ "point": [ 3, 5, 0 ], "overmap": "mall_a_42_south" },
- { "point": [ 3, 5, 1 ], "overmap": "mall_a_42_roof_south" },
+ { "point": [ 3, 5, 1 ], "overmap": "mall_b_42_south" },
+ { "point": [ 3, 5, 2 ], "overmap": "mall_a_42_roof_south" },
{ "point": [ 2, 5, 0 ], "overmap": "mall_a_43_south" },
- { "point": [ 2, 5, 1 ], "overmap": "mall_a_43_roof_south" },
+ { "point": [ 2, 5, 1 ], "overmap": "mall_b_43_south" },
+ { "point": [ 2, 5, 2 ], "overmap": "mall_a_43_roof_south" },
{ "point": [ 1, 5, 0 ], "overmap": "mall_a_44_south" },
- { "point": [ 1, 5, 1 ], "overmap": "mall_a_44_roof_south" },
+ { "point": [ 1, 5, 1 ], "overmap": "mall_b_44_south" },
+ { "point": [ 1, 5, 2 ], "overmap": "mall_a_44_roof_south" },
{ "point": [ 0, 5, 0 ], "overmap": "mall_a_45_south" },
{ "point": [ 8, 4, 0 ], "overmap": "mall_a_46_south" },
{ "point": [ 7, 4, 0 ], "overmap": "mall_a_47_south" },
- { "point": [ 7, 4, 1 ], "overmap": "mall_a_47_roof_south" },
+ { "point": [ 7, 4, 1 ], "overmap": "mall_b_47_south" },
+ { "point": [ 7, 4, 2 ], "overmap": "mall_a_47_roof_south" },
{ "point": [ 6, 4, 0 ], "overmap": "mall_a_48_south" },
- { "point": [ 6, 4, 1 ], "overmap": "mall_a_48_roof_south" },
+ { "point": [ 6, 4, 1 ], "overmap": "mall_b_48_south" },
+ { "point": [ 6, 4, 2 ], "overmap": "mall_a_48_roof_south" },
+ { "point": [ 6, 4, 3 ], "overmap": "mall_upper_roof_48_south" },
{ "point": [ 5, 4, 0 ], "overmap": "mall_a_49_south" },
- { "point": [ 5, 4, 1 ], "overmap": "mall_a_49_roof_south" },
+ { "point": [ 5, 4, 1 ], "overmap": "mall_b_49_south" },
+ { "point": [ 5, 4, 2 ], "overmap": "mall_a_49_roof_south" },
+ { "point": [ 5, 4, 3 ], "overmap": "mall_upper_roof_49_south" },
{ "point": [ 4, 4, 0 ], "overmap": "mall_a_50_south" },
- { "point": [ 4, 4, 1 ], "overmap": "mall_a_50_roof_south" },
+ { "point": [ 4, 4, 1 ], "overmap": "mall_b_50_south" },
+ { "point": [ 4, 4, 2 ], "overmap": "mall_a_50_roof_south" },
+ { "point": [ 4, 4, 3 ], "overmap": "mall_upper_roof_50_south" },
{ "point": [ 3, 4, 0 ], "overmap": "mall_a_51_south" },
- { "point": [ 3, 4, 1 ], "overmap": "mall_a_51_roof_south" },
+ { "point": [ 3, 4, 1 ], "overmap": "mall_b_51_south" },
+ { "point": [ 3, 4, 2 ], "overmap": "mall_a_51_roof_south" },
+ { "point": [ 3, 4, 3 ], "overmap": "mall_upper_roof_51_south" },
{ "point": [ 2, 4, 0 ], "overmap": "mall_a_52_south" },
- { "point": [ 2, 4, 1 ], "overmap": "mall_a_52_roof_south" },
+ { "point": [ 2, 4, 1 ], "overmap": "mall_b_52_south" },
+ { "point": [ 2, 4, 2 ], "overmap": "mall_a_52_roof_south" },
{ "point": [ 1, 4, 0 ], "overmap": "mall_a_53_south" },
- { "point": [ 1, 4, 1 ], "overmap": "mall_a_53_roof_south" },
+ { "point": [ 1, 4, 1 ], "overmap": "mall_b_53_south" },
+ { "point": [ 1, 4, 2 ], "overmap": "mall_a_53_roof_south" },
{ "point": [ 0, 4, 0 ], "overmap": "mall_a_54_south" },
{ "point": [ 8, 3, 0 ], "overmap": "mall_a_55_south" },
{ "point": [ 7, 3, 0 ], "overmap": "mall_a_56_south" },
- { "point": [ 7, 3, 1 ], "overmap": "mall_a_56_roof_south" },
+ { "point": [ 7, 3, 1 ], "overmap": "mall_b_56_south" },
+ { "point": [ 7, 3, 2 ], "overmap": "mall_a_56_roof_south" },
{ "point": [ 6, 3, 0 ], "overmap": "mall_a_57_south" },
- { "point": [ 6, 3, 1 ], "overmap": "mall_a_57_roof_south" },
+ { "point": [ 6, 3, 1 ], "overmap": "mall_b_57_south" },
+ { "point": [ 6, 3, 2 ], "overmap": "mall_a_57_roof_south" },
{ "point": [ 5, 3, 0 ], "overmap": "mall_a_58_south" },
- { "point": [ 5, 3, 1 ], "overmap": "mall_a_58_roof_south" },
+ { "point": [ 5, 3, 1 ], "overmap": "mall_b_58_south" },
+ { "point": [ 5, 3, 2 ], "overmap": "mall_a_58_roof_south" },
{ "point": [ 4, 3, 0 ], "overmap": "mall_a_59_south" },
- { "point": [ 4, 3, 1 ], "overmap": "mall_a_59_roof_south" },
+ { "point": [ 4, 3, 1 ], "overmap": "mall_b_59_south" },
+ { "point": [ 4, 3, 2 ], "overmap": "mall_a_59_roof_south" },
{ "point": [ 3, 3, 0 ], "overmap": "mall_a_60_south" },
- { "point": [ 3, 3, 1 ], "overmap": "mall_a_60_roof_south" },
+ { "point": [ 3, 3, 1 ], "overmap": "mall_b_60_south" },
+ { "point": [ 3, 3, 2 ], "overmap": "mall_a_60_roof_south" },
{ "point": [ 2, 3, 0 ], "overmap": "mall_a_61_south" },
- { "point": [ 2, 3, 1 ], "overmap": "mall_a_61_roof_south" },
+ { "point": [ 2, 3, 1 ], "overmap": "mall_b_61_south" },
+ { "point": [ 2, 3, 2 ], "overmap": "mall_a_61_roof_south" },
{ "point": [ 1, 3, 0 ], "overmap": "mall_a_62_south" },
- { "point": [ 1, 3, 1 ], "overmap": "mall_a_62_roof_south" },
+ { "point": [ 1, 3, 1 ], "overmap": "mall_b_62_south" },
+ { "point": [ 1, 3, 2 ], "overmap": "mall_a_62_roof_south" },
{ "point": [ 0, 3, 0 ], "overmap": "mall_a_63_south" },
{ "point": [ 8, 2, 0 ], "overmap": "mall_a_64_south" },
{ "point": [ 7, 2, 0 ], "overmap": "mall_a_65_south" },
- { "point": [ 7, 2, 1 ], "overmap": "mall_a_65_roof_south" },
+ { "point": [ 7, 2, 1 ], "overmap": "mall_b_65_south" },
+ { "point": [ 7, 2, 2 ], "overmap": "mall_a_65_roof_south" },
{ "point": [ 6, 2, 0 ], "overmap": "mall_a_66_south" },
- { "point": [ 6, 2, 1 ], "overmap": "mall_a_66_roof_south" },
+ { "point": [ 6, 2, 1 ], "overmap": "mall_b_66_south" },
+ { "point": [ 6, 2, 2 ], "overmap": "mall_a_66_roof_south" },
{ "point": [ 5, 2, 0 ], "overmap": "mall_a_67_south" },
- { "point": [ 5, 2, 1 ], "overmap": "mall_a_67_roof_south" },
+ { "point": [ 5, 2, 1 ], "overmap": "mall_b_67_south" },
+ { "point": [ 5, 2, 2 ], "overmap": "mall_a_67_roof_south" },
{ "point": [ 4, 2, 0 ], "overmap": "mall_a_68_south" },
- { "point": [ 4, 2, 1 ], "overmap": "mall_a_68_roof_south" },
+ { "point": [ 4, 2, 1 ], "overmap": "mall_b_68_south" },
+ { "point": [ 4, 2, 2 ], "overmap": "mall_a_68_roof_south" },
{ "point": [ 3, 2, 0 ], "overmap": "mall_a_69_south" },
- { "point": [ 3, 2, 1 ], "overmap": "mall_a_69_roof_south" },
+ { "point": [ 3, 2, 1 ], "overmap": "mall_b_69_south" },
+ { "point": [ 3, 2, 2 ], "overmap": "mall_a_69_roof_south" },
{ "point": [ 2, 2, 0 ], "overmap": "mall_a_70_south" },
- { "point": [ 2, 2, 1 ], "overmap": "mall_a_70_roof_south" },
+ { "point": [ 2, 2, 1 ], "overmap": "mall_b_70_south" },
+ { "point": [ 2, 2, 2 ], "overmap": "mall_a_70_roof_south" },
{ "point": [ 1, 2, 0 ], "overmap": "mall_a_71_south" },
- { "point": [ 1, 2, 1 ], "overmap": "mall_a_71_roof_south" },
+ { "point": [ 1, 2, 1 ], "overmap": "mall_b_71_south" },
+ { "point": [ 1, 2, 2 ], "overmap": "mall_a_71_roof_south" },
{ "point": [ 0, 2, 0 ], "overmap": "mall_a_72_south" },
{ "point": [ 8, 1, 0 ], "overmap": "mall_a_73_south" },
{ "point": [ 7, 1, 0 ], "overmap": "mall_a_74_south" },
@@ -1302,6 +1417,67 @@
{ "point": [ 0, 0, 1 ], "overmap": "candy_shop_roof_1_north" }
]
},
+ {
+ "type": "city_building",
+ "id": "s_clothes",
+ "locations": [ "land" ],
+ "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_north" } ]
+ },
+ {
+ "type": "city_building",
+ "id": "s_clothes_1",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_1_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_1_north" }
+ ]
+ },
+ {
+ "type": "city_building",
+ "id": "s_clothes_2",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_2_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_2_north" }
+ ]
+ },
+ {
+ "type": "city_building",
+ "id": "s_clothes_3",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_3_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_3_north" }
+ ]
+ },
+ {
+ "type": "city_building",
+ "id": "s_clothes_4",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_4_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_4_north" },
+ { "point": [ 0, 0, 2 ], "overmap": "s_clothes_upper_roof_4_north" }
+ ]
+ },
+ {
+ "type": "city_building",
+ "id": "s_clothes_5",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_5_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_5_north" }
+ ]
+ },
+ {
+ "type": "city_building",
+ "id": "s_clothes_6",
+ "locations": [ "land" ],
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "s_clothes_6_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "s_clothes_roof_6_north" }
+ ]
+ },
{
"type": "city_building",
"id": "s_bike_shop",
diff --git a/data/json/overmap/specials.json b/data/json/overmap/specials.json
index a3d8ec077037b..e0062880a610d 100644
--- a/data/json/overmap/specials.json
+++ b/data/json/overmap/specials.json
@@ -43,6 +43,25 @@
"occurrences": [ 0, 3 ],
"flags": [ "CLASSIC" ]
},
+ {
+ "type": "overmap_special",
+ "id": "Boat Rental",
+ "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "boat_rental_north" } ],
+ "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ],
+ "locations": [ "water" ],
+ "city_distance": [ 5, 15 ],
+ "city_sizes": [ 0, 12 ],
+ "occurrences": [ 0, 5 ]
+ },
+ {
+ "type": "overmap_special",
+ "id": "Riverside Dwelling",
+ "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "riverside_dwelling_north" } ],
+ "locations": [ "water" ],
+ "city_distance": [ -1, 25 ],
+ "city_sizes": [ 0, 20 ],
+ "occurrences": [ 0, 12 ]
+ },
{
"type": "overmap_special",
"id": "farm_abandoned",
@@ -279,6 +298,40 @@
"occurrences": [ 0, 5 ],
"flags": [ "CLASSIC" ]
},
+ {
+ "type": "overmap_special",
+ "id": "farm_horse",
+ "overmaps": [
+ { "point": [ 0, 0, 0 ], "overmap": "horse_farm_1_north" },
+ { "point": [ 1, 0, 0 ], "overmap": "horse_farm_2_north" },
+ { "point": [ 2, 0, 0 ], "overmap": "horse_farm_3_north" },
+ { "point": [ 3, 0, 0 ], "overmap": "horse_farm_4_north" },
+ { "point": [ 3, 0, 1 ], "overmap": "horse_farm_4_roof_north" },
+ { "point": [ 0, 1, 0 ], "overmap": "horse_farm_5_north" },
+ { "point": [ 1, 1, 0 ], "overmap": "horse_farm_6_north" },
+ { "point": [ 2, 1, 0 ], "overmap": "horse_farm_7_north" },
+ { "point": [ 2, 1, 1 ], "overmap": "horse_farm_7_hayloft_north" },
+ { "point": [ 2, 1, 2 ], "overmap": "horse_farm_7_roof_north" },
+ { "point": [ 3, 1, 0 ], "overmap": "horse_farm_8_north" },
+ { "point": [ 0, 2, 0 ], "overmap": "horse_farm_9_north" },
+ { "point": [ 0, 2, 1 ], "overmap": "horse_farm_9_roof_north" },
+ { "point": [ 1, 2, 0 ], "overmap": "horse_farm_10_north" },
+ { "point": [ 1, 2, 1 ], "overmap": "horse_farm_10_roof_north" },
+ { "point": [ 2, 2, 0 ], "overmap": "horse_farm_11_north" },
+ { "point": [ 3, 2, 0 ], "overmap": "horse_farm_12_north" },
+ { "point": [ 0, 3, 0 ], "overmap": "horse_farm_13_north" },
+ { "point": [ 0, 3, 1 ], "overmap": "horse_farm_13_2ndfloor_north" },
+ { "point": [ 0, 3, 2 ], "overmap": "horse_farm_13_roof_north" },
+ { "point": [ 1, 3, 0 ], "overmap": "horse_farm_14_north" },
+ { "point": [ 2, 3, 0 ], "overmap": "horse_farm_15_north" },
+ { "point": [ 3, 3, 0 ], "overmap": "horse_farm_16_north" }
+ ],
+ "connections": [ { "point": [ 1, 4, 0 ], "terrain": "road" } ],
+ "locations": [ "wilderness" ],
+ "city_distance": [ 10, -1 ],
+ "city_sizes": [ 1, 20 ],
+ "occurrences": [ 0, 5 ]
+ },
{
"type": "overmap_special",
"id": "Strangle Temple",
@@ -488,6 +541,67 @@
"occurrences": [ 1, 1 ],
"flags": [ "CLASSIC" ]
},
+ {
+ "type": "overmap_special",
+ "id": "Alcatraz Prison",
+ "overmaps": [
+ { "point": [ -1, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 0, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 1, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 2, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 3, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 4, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 5, -1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 5, 0, 0 ], "overmap": "lake_surface" },
+ { "point": [ 5, 1, 0 ], "overmap": "lake_surface" },
+ { "point": [ 5, 2, 0 ], "overmap": "lake_surface" },
+ { "point": [ 5, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ 4, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ 3, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ 2, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ 1, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ 0, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ -1, 3, 0 ], "overmap": "lake_surface" },
+ { "point": [ -1, 2, 0 ], "overmap": "lake_surface" },
+ { "point": [ -1, 1, 0 ], "overmap": "lake_surface" },
+ { "point": [ -1, 0, 0 ], "overmap": "lake_surface" },
+ { "point": [ 4, 0, 0 ], "overmap": "prison_alcatraz_1_north" },
+ { "point": [ 3, 0, 0 ], "overmap": "prison_alcatraz_2_north" },
+ { "point": [ 2, 0, 0 ], "overmap": "prison_alcatraz_3_north" },
+ { "point": [ 1, 0, 0 ], "overmap": "prison_alcatraz_4_north" },
+ { "point": [ 0, 0, 0 ], "overmap": "prison_alcatraz_5_north" },
+ { "point": [ 4, 1, 0 ], "overmap": "prison_alcatraz_6_north" },
+ { "point": [ 3, 1, 0 ], "overmap": "prison_alcatraz_7_north" },
+ { "point": [ 2, 1, 0 ], "overmap": "prison_alcatraz_8_north" },
+ { "point": [ 1, 1, 0 ], "overmap": "prison_alcatraz_9_north" },
+ { "point": [ 0, 1, 0 ], "overmap": "prison_alcatraz_10_north" },
+ { "point": [ 4, 2, 0 ], "overmap": "prison_alcatraz_11_north" },
+ { "point": [ 3, 2, 0 ], "overmap": "prison_alcatraz_12_north" },
+ { "point": [ 2, 2, 0 ], "overmap": "prison_alcatraz_13_north" },
+ { "point": [ 1, 2, 0 ], "overmap": "prison_alcatraz_14_north" },
+ { "point": [ 0, 2, 0 ], "overmap": "prison_alcatraz_15_north" },
+ { "point": [ 4, 0, 1 ], "overmap": "prison_alcatraz_1_2f_north" },
+ { "point": [ 3, 0, 1 ], "overmap": "prison_alcatraz_2_2f_north" },
+ { "point": [ 2, 0, 1 ], "overmap": "prison_alcatraz_3_2f_north" },
+ { "point": [ 1, 0, 1 ], "overmap": "prison_alcatraz_4_2f_north" },
+ { "point": [ 0, 0, 1 ], "overmap": "prison_alcatraz_5_2f_north" },
+ { "point": [ 4, 1, 1 ], "overmap": "prison_alcatraz_6_2f_north" },
+ { "point": [ 3, 1, 1 ], "overmap": "prison_alcatraz_7_2f_north" },
+ { "point": [ 2, 1, 1 ], "overmap": "prison_alcatraz_8_2f_north" },
+ { "point": [ 1, 1, 1 ], "overmap": "prison_alcatraz_9_2f_north" },
+ { "point": [ 0, 1, 1 ], "overmap": "prison_alcatraz_10_2f_north" },
+ { "point": [ 4, 2, 1 ], "overmap": "prison_alcatraz_11_2f_north" },
+ { "point": [ 3, 2, 1 ], "overmap": "prison_alcatraz_12_2f_north" },
+ { "point": [ 2, 2, 1 ], "overmap": "prison_alcatraz_13_2f_north" },
+ { "point": [ 1, 2, 1 ], "overmap": "prison_alcatraz_14_2f_north" },
+ { "point": [ 0, 2, 1 ], "overmap": "prison_alcatraz_15_2f_north" }
+ ],
+ "locations": [ "lake_surface" ],
+ "city_distance": [ 3, -1 ],
+ "city_sizes": [ 4, 12 ],
+ "occurrences": [ 0, 1 ],
+ "flags": [ "CLASSIC", "LAKE" ]
+ },
{
"type": "overmap_special",
"id": "Prison Hidden Lab",
@@ -1229,6 +1343,9 @@
{ "point": [ 0, 6, 0 ], "overmap": "ranch_camp_55" },
{ "point": [ 1, 6, 0 ], "overmap": "ranch_camp_56" },
{ "point": [ 2, 6, 0 ], "overmap": "ranch_camp_57" },
+ { "point": [ 2, 6, 1 ], "overmap": "ranch_camp_57_roof" },
+ { "point": [ 2, 6, 2 ], "overmap": "ranch_camp_57_silo" },
+ { "point": [ 2, 6, 3 ], "overmap": "ranch_camp_57_silocap" },
{ "point": [ 3, 6, 0 ], "overmap": "ranch_camp_58" },
{ "point": [ 4, 6, 0 ], "overmap": "ranch_camp_59" },
{ "point": [ 5, 6, 0 ], "overmap": "ranch_camp_60" },
@@ -1237,16 +1354,22 @@
{ "point": [ 8, 6, 0 ], "overmap": "ranch_camp_63" },
{ "point": [ 0, 7, 0 ], "overmap": "ranch_camp_64" },
{ "point": [ 1, 7, 0 ], "overmap": "ranch_camp_65" },
+ { "point": [ 1, 7, 1 ], "overmap": "ranch_camp_65_roof" },
{ "point": [ 2, 7, 0 ], "overmap": "ranch_camp_66" },
+ { "point": [ 2, 7, 1 ], "overmap": "ranch_camp_66_roof" },
{ "point": [ 3, 7, 0 ], "overmap": "ranch_camp_67" },
+ { "point": [ 3, 7, 1 ], "overmap": "ranch_camp_67_roof" },
{ "point": [ 4, 7, 0 ], "overmap": "ranch_camp_68" },
+ { "point": [ 4, 7, 1 ], "overmap": "ranch_camp_68_roof" },
{ "point": [ 5, 7, 0 ], "overmap": "ranch_camp_69" },
{ "point": [ 6, 7, 0 ], "overmap": "ranch_camp_70" },
{ "point": [ 7, 7, 0 ], "overmap": "ranch_camp_71" },
{ "point": [ 8, 7, 0 ], "overmap": "ranch_camp_72" },
{ "point": [ 0, 8, 0 ], "overmap": "ranch_camp_73" },
{ "point": [ 1, 8, 0 ], "overmap": "ranch_camp_74" },
+ { "point": [ 1, 8, 1 ], "overmap": "ranch_camp_74_roof" },
{ "point": [ 2, 8, 0 ], "overmap": "ranch_camp_75" },
+ { "point": [ 2, 8, 1 ], "overmap": "ranch_camp_75_roof" },
{ "point": [ 3, 8, 0 ], "overmap": "ranch_camp_76" },
{ "point": [ 4, 8, 0 ], "overmap": "ranch_camp_77" },
{ "point": [ 5, 8, 0 ], "overmap": "ranch_camp_78" },
diff --git a/data/json/overmap_terrain.json b/data/json/overmap_terrain.json
index a0d4baba7a953..d77a963c7e2f9 100644
--- a/data/json/overmap_terrain.json
+++ b/data/json/overmap_terrain.json
@@ -47,6 +47,26 @@
"sym": "O",
"color": "white"
},
+ {
+ "type": "overmap_terrain",
+ "id": "boat_rental",
+ "name": "boat rental",
+ "sym": "#",
+ "color": "white",
+ "see_cost": 5,
+ "extras": "build",
+ "mondensity": 1
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "riverside_dwelling",
+ "name": "riverside dwelling",
+ "sym": "+",
+ "color": "i_yellow",
+ "see_cost": 5,
+ "extras": "build",
+ "mondensity": 1
+ },
{
"type": "overmap_terrain",
"id": "cabin_strange",
@@ -78,16 +98,6 @@
"mondensity": 2,
"flags": [ "NO_ROTATE" ]
},
- {
- "type": "overmap_terrain",
- "id": "dirtlot",
- "name": "dirt lot",
- "sym": "O",
- "color": "brown",
- "see_cost": 5,
- "extras": "field",
- "flags": [ "NO_ROTATE" ]
- },
{
"type": "overmap_terrain",
"id": "dirtroad1_aban1",
diff --git a/data/json/overmap_terrain_agricultural.json b/data/json/overmap_terrain_agricultural.json
index c05f317c6fd9c..428ba6bd97bfb 100644
--- a/data/json/overmap_terrain_agricultural.json
+++ b/data/json/overmap_terrain_agricultural.json
@@ -479,5 +479,235 @@
"see_cost": 5,
"extras": "field",
"mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_1",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_2",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "build",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_3",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_4",
+ "name": "carriage house",
+ "sym": "o",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_4_roof",
+ "name": "carriage house roof",
+ "sym": "o",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_5",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_6",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_7",
+ "name": "horse stable",
+ "sym": "&",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_7_hayloft",
+ "name": "horse stable hayloft",
+ "sym": "&",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_7_roof",
+ "name": "horse stable roof",
+ "sym": "&",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_8",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_9",
+ "name": "green house",
+ "sym": "o",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_9_roof",
+ "name": "green house roof",
+ "sym": "o",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_10",
+ "name": "chicken coop",
+ "sym": "o",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_10_roof",
+ "name": "chicken coop roof",
+ "sym": "o",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_11",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_12",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_13",
+ "name": "farm house",
+ "sym": "^",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_13_2ndfloor",
+ "name": "farm house 2nd floor",
+ "sym": "^",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_13_roof",
+ "name": "farm house roof",
+ "sym": "^",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_14",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_15",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "horse_farm_16",
+ "name": "farm field",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 5,
+ "extras": "field",
+ "mondensity": 2
}
]
diff --git a/data/json/overmap_terrain_commercial.json b/data/json/overmap_terrain_commercial.json
index 1fb1af176f79f..ddbef007f68ed 100644
--- a/data/json/overmap_terrain_commercial.json
+++ b/data/json/overmap_terrain_commercial.json
@@ -284,6 +284,104 @@
"copy-from": "generic_city_building",
"color": "blue"
},
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_1",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof_1",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_2",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof_2",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_3",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof_3",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_4",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof_4",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_upper_roof_4",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_5",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof_5",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_6",
+ "name": "clothing store",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "s_clothes_roof_6",
+ "name": "clothing store roof",
+ "copy-from": "generic_city_building",
+ "color": "blue"
+ },
{
"type": "overmap_terrain",
"id": "s_bookstore",
@@ -1661,6 +1759,14 @@
"sym": "x",
"color": "i_pink"
},
+ {
+ "type": "overmap_terrain",
+ "id": "cs_sex_shop_roof",
+ "copy-from": "generic_city_building",
+ "name": "sex shop roof",
+ "sym": "x",
+ "color": "i_pink"
+ },
{
"type": "overmap_terrain",
"id": "cs_internet_cafe",
@@ -1733,6 +1839,14 @@
"sym": "O",
"color": "white"
},
+ {
+ "type": "overmap_terrain",
+ "id": "cs_tire_shop_roof",
+ "copy-from": "generic_city_building",
+ "name": "tire shop roof",
+ "sym": "O",
+ "color": "white"
+ },
{
"type": "overmap_terrain",
"id": "headshop",
diff --git a/data/json/overmap_terrain_industrial.json b/data/json/overmap_terrain_industrial.json
index 628a1eccfdc73..9e1ac7ce25d03 100644
--- a/data/json/overmap_terrain_industrial.json
+++ b/data/json/overmap_terrain_industrial.json
@@ -344,39 +344,39 @@
"id": "large_storage_units_3",
"copy-from": "generic_city_building",
"name": "storage units",
- "sym": "M",
- "color": "white"
+ "sym": "#",
+ "color": "i_yellow"
},
{
"type": "overmap_terrain",
"id": "large_storage_units_2",
"copy-from": "generic_city_building",
"name": "storage units",
- "sym": "M",
- "color": "white"
+ "sym": "#",
+ "color": "i_yellow"
},
{
"type": "overmap_terrain",
"id": "large_storage_units_1",
"copy-from": "generic_city_building",
"name": "storage units",
- "sym": "M",
- "color": "white"
+ "sym": "#",
+ "color": "i_yellow"
},
{
"type": "overmap_terrain",
"id": "medium_storage_units_1",
"copy-from": "generic_city_building",
"name": "storage units",
- "sym": "M",
- "color": "white"
+ "sym": "#",
+ "color": "i_yellow"
},
{
"type": "overmap_terrain",
"id": "medium_storage_units_2",
"copy-from": "generic_city_building",
"name": "storage units",
- "sym": "M",
- "color": "white"
+ "sym": "#",
+ "color": "i_yellow"
}
]
diff --git a/data/json/overmap_terrain_mall.json b/data/json/overmap_terrain_mall.json
index 329856da12c09..5f3653866d6eb 100644
--- a/data/json/overmap_terrain_mall.json
+++ b/data/json/overmap_terrain_mall.json
@@ -31,6 +31,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_3",
+ "name": "mall - loading bay",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_3_roof",
@@ -39,6 +47,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_3",
+ "name": "mall - loading bay roof",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_4",
@@ -47,6 +63,22 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_4",
+ "name": "mall - loading bay roof",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_4",
+ "name": "mall - utilities",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_4_roof",
@@ -63,6 +95,14 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_5",
+ "name": "mall - utilities",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_5_roof",
@@ -111,6 +151,14 @@
"sym": "│",
"color": "dark_gray"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_10",
+ "name": "road",
+ "copy-from": "generic_mall",
+ "sym": "│",
+ "color": "dark_gray"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_10_roof",
@@ -126,6 +174,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_11",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_11_roof",
@@ -140,6 +195,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_12",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_12_roof",
@@ -147,6 +209,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_12",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_13",
@@ -154,6 +223,20 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_13",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_13",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_13_roof",
@@ -169,6 +252,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_14",
+ "name": "mall - entrance",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_14_roof",
@@ -217,6 +308,14 @@
"sym": "│",
"color": "dark_gray"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_19",
+ "name": "road",
+ "copy-from": "generic_mall",
+ "sym": "│",
+ "color": "dark_gray"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_19_roof",
@@ -233,6 +332,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_20",
+ "name": "mall - food court roof",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_20_roof",
@@ -248,6 +355,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_21",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_21_roof",
@@ -262,6 +376,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_22",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_22_roof",
@@ -276,6 +397,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_23",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_23_roof",
@@ -290,6 +418,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_24",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_24_roof",
@@ -304,6 +439,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_25",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_25_roof",
@@ -318,6 +460,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_26",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_26_roof",
@@ -349,6 +498,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_29",
+ "name": "mall - food court",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_29_roof",
@@ -364,6 +521,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_30",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_30_roof",
@@ -378,6 +542,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_31",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_31_roof",
@@ -392,6 +563,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_32",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_32_roof",
@@ -406,6 +584,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_33",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_33_roof",
@@ -420,6 +605,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_34",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_34_roof",
@@ -427,6 +619,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_34",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_35",
@@ -434,6 +633,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_35",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_35_roof",
@@ -441,6 +647,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_35",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_36",
@@ -464,6 +677,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_38",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_38_roof",
@@ -478,6 +698,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_39",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_39_roof",
@@ -492,6 +719,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_40",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_40_roof",
@@ -506,6 +740,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_41",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_41_roof",
@@ -520,6 +761,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_42",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_42_roof",
@@ -534,6 +782,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_43",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_43_roof",
@@ -548,6 +803,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_44",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_44_roof",
@@ -579,6 +841,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_47",
+ "name": "mall - entrance",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_47_roof",
@@ -594,6 +864,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_48",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_48_roof",
@@ -601,6 +878,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_48",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_49",
@@ -608,6 +892,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_49",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_49_roof",
@@ -615,6 +906,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_49",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_50",
@@ -622,6 +920,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_50",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_50_roof",
@@ -629,6 +934,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_50",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_51",
@@ -636,6 +948,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_51",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_51_roof",
@@ -643,6 +962,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_upper_roof_51",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_52",
@@ -650,6 +976,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_52",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_52_roof",
@@ -665,6 +998,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_53",
+ "name": "mall - entrance",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_53_roof",
@@ -696,6 +1037,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_56",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_56_roof",
@@ -710,6 +1058,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_57",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_57_roof",
@@ -724,6 +1079,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_58",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_58_roof",
@@ -738,6 +1100,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_59",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_59_roof",
@@ -752,6 +1121,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_60",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_60_roof",
@@ -766,6 +1142,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_61",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_61_roof",
@@ -780,6 +1163,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_62",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_62_roof",
@@ -810,6 +1200,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_65",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_65_roof",
@@ -824,6 +1221,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_66",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_66_roof",
@@ -838,6 +1242,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_67",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_67_roof",
@@ -853,6 +1264,14 @@
"sym": "M",
"color": "i_light_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_68",
+ "name": "mall - entrance",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_light_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_68_roof",
@@ -868,6 +1287,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_69",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_69_roof",
@@ -882,6 +1308,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_70",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_70_roof",
@@ -896,6 +1329,13 @@
"sym": "M",
"color": "i_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "mall_b_71",
+ "copy-from": "generic_mall",
+ "sym": "M",
+ "color": "i_red"
+ },
{
"type": "overmap_terrain",
"id": "mall_a_71_roof",
diff --git a/data/json/overmap_terrain_public_institutional.json b/data/json/overmap_terrain_public_institutional.json
index 6e997f0a5ee1f..1262d23fcce95 100644
--- a/data/json/overmap_terrain_public_institutional.json
+++ b/data/json/overmap_terrain_public_institutional.json
@@ -325,6 +325,249 @@
"mondensity": 2,
"flags": [ "SIDEWALK" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_1",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_2",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_3",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_4",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_5",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_6",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_7",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_8",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_2_9",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_1",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_2",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_3",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_4",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_5",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_6",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_7",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_8",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_3_9",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_1",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_2",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_3",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_4",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_5",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_6",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_7",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_8",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "school_4_9",
+ "name": "regional school",
+ "sym": "s",
+ "color": "light_blue",
+ "see_cost": 5,
+ "mondensity": 2
+ },
{
"type": "overmap_terrain",
"id": "prison_1_1",
@@ -502,6 +745,246 @@
"color": "i_light_blue",
"see_cost": 5
},
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_1",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_2",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_3",
+ "name": "prison",
+ "sym": "P",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_4",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_5",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_6",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_7",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_8",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_9",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_10",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_11",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_12",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_13",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_14",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_15",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_1_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_2_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_3_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_4_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_5_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_6_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_7_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_8_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_9_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_10_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_11_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_12_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_13_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_14_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "prison_alcatraz_15_2f",
+ "name": "prison",
+ "sym": "p",
+ "color": "i_light_blue",
+ "see_cost": 5
+ },
{
"type": "overmap_terrain",
"id": "post_office",
diff --git a/data/json/overmap_terrain_ranch_camp.json b/data/json/overmap_terrain_ranch_camp.json
index 6bcbd4c193e01..4f873b014d762 100644
--- a/data/json/overmap_terrain_ranch_camp.json
+++ b/data/json/overmap_terrain_ranch_camp.json
@@ -512,6 +512,33 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_57_roof",
+ "name": "field",
+ "sym": "│",
+ "color": "brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_57_silo",
+ "name": "silo",
+ "sym": "│",
+ "color": "brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_57_silocap",
+ "name": "silo cap",
+ "sym": "│",
+ "color": "brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_58",
@@ -584,6 +611,15 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_65_roof",
+ "name": "barn roof",
+ "sym": "#",
+ "color": "brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_66",
@@ -593,6 +629,15 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_66_roof",
+ "name": "barn roof",
+ "sym": "#",
+ "color": "i_brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_67",
@@ -602,6 +647,15 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_67_roof",
+ "name": "garage roof",
+ "sym": "O",
+ "color": "white",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_68",
@@ -611,6 +665,15 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_68_roof",
+ "name": "ranch roof",
+ "sym": "v",
+ "color": "light_green",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_69",
@@ -665,6 +728,15 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_74_roof",
+ "name": "field",
+ "sym": "─",
+ "color": "brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_75",
@@ -674,6 +746,15 @@
"see_cost": 2,
"flags": [ "NO_ROTATE" ]
},
+ {
+ "type": "overmap_terrain",
+ "id": "ranch_camp_75_roof",
+ "name": "field",
+ "sym": "┘",
+ "color": "brown",
+ "see_cost": 2,
+ "flags": [ "NO_ROTATE" ]
+ },
{
"type": "overmap_terrain",
"id": "ranch_camp_76",
diff --git a/data/json/overmap_terrain_recreational.json b/data/json/overmap_terrain_recreational.json
index 516201f02e86c..7117eee1b2b24 100644
--- a/data/json/overmap_terrain_recreational.json
+++ b/data/json/overmap_terrain_recreational.json
@@ -919,7 +919,7 @@
"copy-from": "generic_city_building",
"name": "music venue",
"sym": "M",
- "color": "white"
+ "color": "i_light_blue"
},
{
"type": "overmap_terrain",
@@ -1004,6 +1004,14 @@
"sym": "p",
"color": "light_green_red"
},
+ {
+ "type": "overmap_terrain",
+ "id": "cs_private_park_roof",
+ "copy-from": "generic_city_building",
+ "name": "private park roof",
+ "sym": "p",
+ "color": "light_green_red"
+ },
{
"type": "overmap_terrain",
"id": "cs_public_art_piece",
diff --git a/data/json/overmap_terrain_residential.json b/data/json/overmap_terrain_residential.json
index 7a2fce25d1a65..055d87b896221 100644
--- a/data/json/overmap_terrain_residential.json
+++ b/data/json/overmap_terrain_residential.json
@@ -308,7 +308,7 @@
"copy-from": "generic_city_building_no_sidewalk",
"name": "trailer park",
"sym": "#",
- "color": "white"
+ "color": "i_white"
},
{
"type": "overmap_terrain",
@@ -324,7 +324,7 @@
"copy-from": "generic_city_building_no_sidewalk",
"name": "trailer park",
"sym": "#",
- "color": "white"
+ "color": "i_white"
},
{
"type": "overmap_terrain",
diff --git a/data/json/player_activities.json b/data/json/player_activities.json
index bb95649ded7ef..bb25900f9f7bf 100644
--- a/data/json/player_activities.json
+++ b/data/json/player_activities.json
@@ -166,7 +166,8 @@
"activity_level": "LIGHT_EXERCISE",
"stop_phrase": "Stop fishing?",
"rooted": true,
- "based_on": "time"
+ "based_on": "speed",
+ "suspendable": false
},
{
"id": "ACT_PICKAXE",
@@ -582,6 +583,25 @@
"based_on": "neither",
"no_resume": true
},
+ {
+ "id": "ACT_SPELLCASTING",
+ "type": "activity_type",
+ "activity_level": "LIGHT_EXERCISE",
+ "stop_phrase": "Stop casting?",
+ "suspendable": false,
+ "based_on": "speed",
+ "no_resume": true
+ },
+ {
+ "id": "ACT_STUDY_SPELL",
+ "type": "activity_type",
+ "activity_level": "NO_EXERCISE",
+ "stop_phrase": "Stop studying?",
+ "suspendable": false,
+ "rooted": true,
+ "based_on": "time",
+ "no_resume": true
+ },
{
"id": "ACT_CONSUME_DRINK_MENU",
"type": "activity_type",
@@ -600,6 +620,14 @@
"based_on": "neither",
"no_resume": true
},
+ {
+ "id": "ACT_MIND_SPLICER",
+ "type": "activity_type",
+ "activity_level": "NO_EXERCISE",
+ "stop_phrase": "Stop using the mind splicer?",
+ "based_on": "speed",
+ "no_resume": true
+ },
{
"id": "ACT_HACK_DOOR",
"type": "activity_type",
diff --git a/data/json/professions.json b/data/json/professions.json
index 4bda786f68693..068ea3c7a0381 100644
--- a/data/json/professions.json
+++ b/data/json/professions.json
@@ -11,6 +11,14 @@
"id": "army_mags_mp5",
"entries": [ { "item": "mp5mag", "ammo-item": "9mm", "charges": 30 }, { "item": "mp5mag", "ammo-item": "9mm", "charges": 30 } ]
},
+ {
+ "type": "item_group",
+ "subtype": "collection",
+ "id": "charged_cell_phone",
+ "ammo": 100,
+ "magazine": 100,
+ "entries": [ { "item": "cell_phone" } ]
+ },
{
"type": "item_group",
"subtype": "collection",
@@ -176,26 +184,28 @@
{ "level": 1, "name": "cooking" }
],
"items": {
- "both": [
- "jeans",
- "tshirt",
- "gloves_light",
- "hat_ball",
- "duffelbag",
- "backpack",
- "long_underpants",
- "boots",
- "socks_wool",
- "socks",
- "hoodie",
- "folding_poncho_on",
- "knit_scarf",
- "jug_plastic",
- "can_beans",
- "pockknife",
- "cell_phone",
- "matches"
- ],
+ "both": {
+ "items": [
+ "jeans",
+ "tshirt",
+ "gloves_light",
+ "hat_ball",
+ "duffelbag",
+ "backpack",
+ "long_underpants",
+ "boots",
+ "socks_wool",
+ "socks",
+ "hoodie",
+ "folding_poncho_on",
+ "knit_scarf",
+ "jug_plastic",
+ "can_beans",
+ "pockknife",
+ "matches"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_briefs" ],
"female": [ "bra", "panties" ]
}
@@ -261,19 +271,21 @@
"description": "Some would say that there's nothing particularly notable about you. But you've survived, and that's more than most could say right now.",
"points": 0,
"items": {
- "both": [
- "jeans",
- "longshirt",
- "socks",
- "coat_winter",
- "boots_winter",
- "knit_scarf",
- "pockknife",
- "water_clean",
- "matches",
- "cell_phone",
- "wristwatch"
- ],
+ "both": {
+ "items": [
+ "jeans",
+ "longshirt",
+ "socks",
+ "coat_winter",
+ "boots_winter",
+ "knit_scarf",
+ "pockknife",
+ "water_clean",
+ "matches",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -294,7 +306,10 @@
{ "level": 2, "name": "fabrication" }
],
"items": {
- "both": [ "pants", "tshirt", "socks", "sweater", "sneakers", "multitool", "water_clean", "matches", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "pants", "tshirt", "socks", "sweater", "sneakers", "multitool", "water_clean", "matches", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
},
@@ -344,19 +359,21 @@
"//": "Tailoring kit makes an already decent class for careful folks much more powerful.",
"skills": [ { "level": 4, "name": "tailor" } ],
"items": {
- "both": [
- "polo_shirt",
- "blazer",
- "pants",
- "socks",
- "dress_shoes",
- "knit_scarf",
- "tailors_kit",
- "thread",
- "scissors",
- "wristwatch",
- "cell_phone"
- ],
+ "both": {
+ "items": [
+ "polo_shirt",
+ "blazer",
+ "pants",
+ "socks",
+ "dress_shoes",
+ "knit_scarf",
+ "tailors_kit",
+ "thread",
+ "scissors",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -370,8 +387,8 @@
"skills": [ { "name": "cooking", "level": 4 } ],
"items": {
"both": {
- "items": [ "hat_chef", "jacket_chef", "pants_checkered", "socks", "dress_shoes", "cell_phone" ],
- "entries": [ { "item": "knife_butcher", "container-item": "sheath" } ]
+ "items": [ "hat_chef", "jacket_chef", "pants_checkered", "socks", "dress_shoes" ],
+ "entries": [ { "group": "charged_cell_phone" }, { "item": "knife_butcher", "container-item": "sheath" } ]
},
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
@@ -448,12 +465,11 @@
"wrench",
"duct_tape",
"screwdriver",
- "cell_phone",
"wristwatch",
"mag_cars",
"welder"
],
- "entries": [ { "item": "goggles_welding", "custom-flags": [ "no_auto_equip" ] } ]
+ "entries": [ { "item": "goggles_welding", "custom-flags": [ "no_auto_equip" ] }, { "group": "charged_cell_phone" } ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
@@ -484,11 +500,10 @@
"tobacco",
"rolling_paper",
"switchblade",
- "cell_phone",
"wristwatch",
"picklocks"
],
- "entries": [ { "item": "lighter", "charges": 100 } ]
+ "entries": [ { "group": "charged_cell_phone" }, { "item": "lighter", "charges": 100 } ]
},
"male": [ "boxer_briefs" ],
"female": [ "boxer_shorts" ]
@@ -502,19 +517,21 @@
"points": 2,
"skills": [ { "name": "survival", "level": 2 }, { "name": "fabrication", "level": 1 } ],
"items": {
- "both": [
- "honey_scraper",
- "beekeeping_hood",
- "beekeeping_suit",
- "beekeeping_gloves",
- "socks",
- "boots",
- "tank_top",
- "cell_phone",
- "honeycomb",
- "honey_bottled",
- "honey_bottled"
- ],
+ "both": {
+ "items": [
+ "honey_scraper",
+ "beekeeping_hood",
+ "beekeeping_suit",
+ "beekeeping_gloves",
+ "socks",
+ "boots",
+ "tank_top",
+ "honeycomb",
+ "honey_bottled",
+ "honey_bottled"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_briefs" ],
"female": [ "bra", "panties" ]
}
@@ -527,7 +544,10 @@
"points": 1,
"skills": [ { "level": 2, "name": "dodge" }, { "level": 3, "name": "throw" } ],
"items": {
- "both": [ "tank_top", "jersey", "b_shorts", "socks", "sneakers", "basketball", "cell_phone", "sports_drink" ],
+ "both": {
+ "items": [ "tank_top", "jersey", "b_shorts", "socks", "sneakers", "basketball", "sports_drink" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "sports_bra", "panties" ]
}
@@ -540,19 +560,21 @@
"points": 3,
"skills": [ { "level": 3, "name": "driving" }, { "level": 2, "name": "dodge" } ],
"items": {
- "both": [
- "helmet_bike",
- "folding_bicycle",
- "under_armor_shorts",
- "under_armor",
- "socks",
- "sneakers",
- "sports_drink",
- "cell_phone",
- "wristwatch",
- "fanny",
- "fancy_sunglasses"
- ],
+ "both": {
+ "items": [
+ "helmet_bike",
+ "folding_bicycle",
+ "under_armor_shorts",
+ "under_armor",
+ "socks",
+ "sneakers",
+ "sports_drink",
+ "wristwatch",
+ "fanny",
+ "fancy_sunglasses"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "panties", "sports_bra" ]
}
@@ -653,7 +675,7 @@
"points": 1,
"skills": [ { "level": 2, "name": "cooking" }, { "level": 1, "name": "driving" }, { "level": 2, "name": "tailor" } ],
"items": {
- "both": [ "pocketwatch", "knife_steak", "cell_phone" ],
+ "both": { "items": [ "pocketwatch", "knife_steak" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs", "socks", "dress_shoes", "tux" ],
"female": [ "panties", "bra", "stockings", "dress_shoes", "maid_dress", "maid_hat" ]
}
@@ -667,21 +689,23 @@
"skills": [ { "level": 4, "name": "firstaid" } ],
"traits": [ "PROF_MED" ],
"items": {
- "both": [
- "pants",
- "dress_shirt",
- "gloves_medical",
- "socks",
- "dress_shoes",
- "coat_lab",
- "wristwatch",
- "cell_phone",
- "water_clean",
- "bandages",
- "aspirin",
- "1st_aid",
- "stethoscope"
- ],
+ "both": {
+ "items": [
+ "pants",
+ "dress_shirt",
+ "gloves_medical",
+ "socks",
+ "dress_shoes",
+ "coat_lab",
+ "wristwatch",
+ "water_clean",
+ "bandages",
+ "aspirin",
+ "1st_aid",
+ "stethoscope"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -702,20 +726,9 @@
],
"items": {
"both": {
- "items": [
- "suit",
- "bowhat",
- "socks",
- "dress_shoes",
- "knit_scarf",
- "cig",
- "switchblade",
- "mag_porn",
- "sunglasses",
- "cell_phone",
- "wristwatch"
- ],
+ "items": [ "suit", "bowhat", "socks", "dress_shoes", "knit_scarf", "cig", "switchblade", "mag_porn", "sunglasses", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "glock_19", "ammo-item": "9mm", "container-item": "sholster", "charges": 15 },
{ "item": "9mm", "charges": 35 },
{ "item": "lighter", "charges": 100 }
@@ -743,10 +756,13 @@
"baton",
"knife_folding",
"hat_ball",
- "cell_phone",
"wristwatch"
],
- "entries": [ { "item": "m9", "ammo-item": "9mm", "charges": 15, "container-item": "holster" }, { "item": "9mm", "charges": 35 } ]
+ "entries": [
+ { "group": "charged_cell_phone" },
+ { "item": "m9", "ammo-item": "9mm", "charges": 15, "container-item": "holster" },
+ { "item": "9mm", "charges": 35 }
+ ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
@@ -823,11 +839,14 @@
"backpack",
"rope_30",
"whistle",
- "cell_phone",
"wristwatch",
"canteen"
],
- "entries": [ { "item": "lighter", "charges": 100 }, { "item": "knife_rambo", "container-item": "scabbard" } ]
+ "entries": [
+ { "group": "charged_cell_phone" },
+ { "item": "lighter", "charges": 100 },
+ { "item": "knife_rambo", "container-item": "scabbard" }
+ ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "boxer_shorts" ]
@@ -841,8 +860,8 @@
"points": -1,
"items": {
"both": {
- "items": [ "pants", "dress_shirt", "socks", "dress_shoes", "knit_scarf", "cig", "cell_phone", "wristwatch" ],
- "entries": [ { "item": "lighter", "charges": 100 } ]
+ "items": [ "pants", "dress_shirt", "socks", "dress_shoes", "knit_scarf", "cig", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" }, { "item": "lighter", "charges": 100 } ]
},
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
@@ -892,21 +911,12 @@
"points": 4,
"skills": [ { "level": 2, "name": "gun" }, { "level": 2, "name": "pistol" }, { "level": 2, "name": "survival" } ],
"traits": [ "PROF_POLICE" ],
- "pet": "mon_dog_gshepherd",
+ "pets": [ { "name": "mon_dog_gshepherd", "amount": 1 } ],
"items": {
"both": {
- "items": [
- "pants_army",
- "socks",
- "badge_deputy",
- "sheriffshirt",
- "boots",
- "dog_whistle",
- "two_way_radio",
- "cell_phone",
- "wristwatch"
- ],
+ "items": [ "pants_army", "socks", "badge_deputy", "sheriffshirt", "boots", "dog_whistle", "two_way_radio", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
{ "item": "usp_45", "ammo-item": "45_acp", "charges": 12, "container-item": "holster" },
{ "item": "legpouch_large", "contents-group": "army_mags_usp45" }
@@ -916,6 +926,33 @@
"female": [ "bra", "boy_shorts" ]
}
},
+ {
+ "type": "profession",
+ "ident": "crazy_cat_lady",
+ "name": { "male": "Crazy Cat Dude", "female": "Crazy Cat Lady" },
+ "description": "Everyone is dead? Well, it doesn't matter... your cats are all the friends you need!",
+ "points": 5,
+ "skills": [ { "level": 1, "name": "survival" }, { "level": 1, "name": "cooking" }, { "level": 1, "name": "tailor" } ],
+ "pets": [ { "name": "mon_cat", "amount": 30 } ],
+ "items": {
+ "both": {
+ "items": [
+ "jeans",
+ "longshirt",
+ "socks",
+ "coat_winter",
+ "boots_winter",
+ "knit_scarf",
+ "pockknife",
+ "water_clean",
+ "matches",
+ "wristwatch"
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "bra", "panties" ]
+ }
+ },
{
"type": "profession",
"ident": "cop",
@@ -926,18 +963,9 @@
"traits": [ "PROF_POLICE" ],
"items": {
"both": {
- "items": [
- "pants_army",
- "socks",
- "badge_deputy",
- "sheriffshirt",
- "boots",
- "whistle",
- "two_way_radio",
- "cell_phone",
- "wristwatch"
- ],
+ "items": [ "pants_army", "socks", "badge_deputy", "sheriffshirt", "boots", "whistle", "two_way_radio", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
{ "item": "usp_45", "ammo-item": "45_acp", "charges": 12, "container-item": "holster" },
{ "item": "legpouch_large", "contents-group": "army_mags_usp45" }
@@ -970,11 +998,11 @@
"socks",
"dress_shoes",
"two_way_radio",
- "cell_phone",
"cig",
"ref_lighter"
],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "l_enforcer_45", "ammo-item": "45_acp", "charges": 6, "container-item": "sholster" },
{ "item": "45_acp", "charges": 24 }
]
@@ -1140,7 +1168,10 @@
"points": 0,
"skills": [ { "level": 4, "name": "barter" } ],
"items": {
- "both": [ "suit", "knit_scarf", "socks", "dress_shoes", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "suit", "knit_scarf", "socks", "dress_shoes", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -1163,10 +1194,10 @@
"jacket_flannel",
"recurbow",
"hat_hunting",
- "wristwatch",
- "cell_phone"
+ "wristwatch"
],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "quiver", "charges": 8, "contents-item": "arrow_cf" },
{ "item": "sheath", "contents-item": "knife_hunting" }
]
@@ -1184,18 +1215,9 @@
"skills": [ { "level": 2, "name": "rifle" } ],
"items": {
"both": {
- "items": [
- "army_top",
- "knit_scarf",
- "socks",
- "boots_steel",
- "pants_cargo",
- "jacket_flannel",
- "hat_hunting",
- "wristwatch",
- "cell_phone"
- ],
+ "items": [ "army_top", "knit_scarf", "socks", "boots_steel", "pants_cargo", "jacket_flannel", "hat_hunting", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "crossbow", "ammo-item": "bolt_metal", "charges": 1, "contents-item": "shoulder_strap" },
{ "item": "bolt_metal", "charges": 9, "container-item": "quiver" },
{ "item": "sheath", "contents-item": "knife_hunting" }
@@ -1214,18 +1236,9 @@
"skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "shotgun" } ],
"items": {
"both": {
- "items": [
- "army_top",
- "knit_scarf",
- "socks",
- "boots_steel",
- "pants_cargo",
- "jacket_flannel",
- "hat_hunting",
- "wristwatch",
- "cell_phone"
- ],
+ "items": [ "army_top", "knit_scarf", "socks", "boots_steel", "pants_cargo", "jacket_flannel", "hat_hunting", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
{ "item": "shotgun_d", "ammo-item": "shot_00", "charges": 2, "contents-item": "shoulder_strap" },
{ "item": "shot_00", "charges": 12, "container-item": "bandolier_shotgun" },
@@ -1246,18 +1259,9 @@
"skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "rifle" } ],
"items": {
"both": {
- "items": [
- "army_top",
- "knit_scarf",
- "socks",
- "boots_steel",
- "pants_cargo",
- "jacket_flannel",
- "hat_hunting",
- "wristwatch",
- "cell_phone"
- ],
+ "items": [ "army_top", "knit_scarf", "socks", "boots_steel", "pants_cargo", "jacket_flannel", "hat_hunting", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
{ "item": "remington_700", "ammo-item": "270", "charges": 4, "contents-item": "shoulder_strap" },
{ "item": "270", "charges": 16, "container-item": "bandolier_rifle" },
@@ -1277,8 +1281,9 @@
"skills": [ { "level": 2, "name": "fabrication" } ],
"items": {
"both": {
- "items": [ "tank_top", "socks", "boots_steel", "jeans", "multitool", "cell_phone", "wristwatch" ],
+ "items": [ "tank_top", "socks", "boots_steel", "jeans", "multitool", "wristwatch" ],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "nailgun", "ammo-item": "nail", "charges": 20 },
{ "item": "nail", "charges": 180 },
{ "item": "tool_belt", "contents-item": "hammer" }
@@ -1295,7 +1300,10 @@
"description": "You're a lumberjack, and you're okay. You felled trees before the world ended, but suspect the undead aren't nearly as tough.",
"points": 0,
"items": {
- "both": [ "jeans", "socks", "boots", "hat_hunting", "jacket_flannel", "knit_scarf", "vest", "ax", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "jeans", "socks", "boots", "hat_hunting", "jacket_flannel", "knit_scarf", "vest", "ax", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "boxer_shorts" ]
}
@@ -1307,7 +1315,10 @@
"description": "You've traveled for a living, sightseeing here and there, and living off your parents' trust fund. But now they're gone, and the only thing between you and death is the open road and your backpack.",
"points": 0,
"items": {
- "both": [ "backpack_leather", "jeans", "sneakers", "tshirt", "knit_scarf", "socks", "cell_phone", "wristwatch", "fun_survival" ],
+ "both": {
+ "items": [ "backpack_leather", "jeans", "sneakers", "tshirt", "knit_scarf", "socks", "wristwatch", "fun_survival" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
}
@@ -1320,7 +1331,7 @@
"points": 0,
"skills": [ { "level": 1, "name": "cooking" } ],
"items": {
- "both": [ "pants", "sneakers", "tshirt", "socks", "cell_phone", "knife_steak" ],
+ "both": { "items": [ "pants", "sneakers", "tshirt", "socks", "knife_steak" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -1342,10 +1353,10 @@
"boots",
"tool_belt",
"flashlight",
- "cell_phone",
"wristwatch",
{ "item": "light_battery_cell", "charges": 100 }
- ]
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
},
"male": [ "boxer_briefs" ],
"female": [ "bra", "panties" ]
@@ -1381,20 +1392,22 @@
"description": "You were a high school student, but the tests you'll face now will have much higher stakes. There might even be something useful in one of these books you've been lugging around all year.",
"points": 1,
"items": {
- "both": [
- "pants",
- "tshirt",
- "socks",
- "sneakers",
- "ZSG",
- "backpack",
- "cell_phone",
- "wristwatch",
- "textbook_speech",
- "story_book",
- "howto_computer",
- "novel_coa"
- ],
+ "both": {
+ "items": [
+ "pants",
+ "tshirt",
+ "socks",
+ "sneakers",
+ "ZSG",
+ "backpack",
+ "wristwatch",
+ "textbook_speech",
+ "story_book",
+ "howto_computer",
+ "novel_coa"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
}
@@ -1416,8 +1429,8 @@
"skills": [ { "level": 4, "name": "driving" }, { "level": 1, "name": "mechanics" } ],
"items": {
"both": {
- "items": [ "jeans", "tank_top", "chaps_leather", "socks", "boots", "bandana", "jacket_leather", "cell_phone", "wristwatch" ],
- "entries": [ { "item": "sheath", "contents-item": "knife_trench" } ]
+ "items": [ "jeans", "tank_top", "chaps_leather", "socks", "boots", "bandana", "jacket_leather", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" }, { "item": "sheath", "contents-item": "knife_trench" } ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
@@ -1431,7 +1444,7 @@
"points": 0,
"skills": [ { "level": 2, "name": "dodge" } ],
"items": {
- "both": [ "socks", "knit_scarf", "dance_shoes", "cell_phone" ],
+ "both": { "items": [ "socks", "knit_scarf", "dance_shoes" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs", "tux" ],
"female": [ "bra", "panties", "dress" ]
}
@@ -1442,7 +1455,7 @@
"name": "Bionic Thief",
"description": "You have done many high profile heists, but your gains mean nothing in this world. All you have left are the tools of your trade and your impeccable style.",
"points": 4,
- "CBMs": [ "bio_batteries", "bio_lockpick", "bio_fingerhack", "bio_storage", "bio_power_storage_mkII" ],
+ "CBMs": [ "bio_batteries", "bio_lockpick", "bio_fingerhack", "bio_power_storage_mkII" ],
"skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "smg" } ],
"items": {
"both": {
@@ -1461,7 +1474,7 @@
"points": 5,
"CBMs": [ "bio_leukocyte", "bio_blood_anal", "bio_blood_filter", "bio_nanobots", "bio_metabolics", "bio_power_storage_mkII" ],
"items": {
- "both": [ "jeans", "tshirt", "socks", "sneakers", "cell_phone", "wristwatch" ],
+ "both": { "items": [ "jeans", "tshirt", "socks", "sneakers", "wristwatch" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -1473,7 +1486,7 @@
"description": "When the diagnosis came back positive, you were willing to fight to keep living. Now, you must renew your vow of tenacity in these new times.",
"points": -2,
"items": {
- "both": [ "jeans", "tshirt", "socks", "sneakers", "cell_phone", "wristwatch" ],
+ "both": { "items": [ "jeans", "tshirt", "socks", "sneakers", "wristwatch" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
},
@@ -1938,12 +1951,11 @@
"knit_scarf",
"beartrap",
"wristwatch",
- "cell_phone",
"tobacco",
"rolling_paper",
"matches"
],
- "entries": [ { "item": "knife_hunting", "container-item": "sheath" } ]
+ "entries": [ { "group": "charged_cell_phone" }, { "item": "knife_hunting", "container-item": "sheath" } ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "boxer_shorts" ]
@@ -1957,7 +1969,10 @@
"points": 1,
"skills": [ { "level": 4, "name": "fabrication" } ],
"items": {
- "both": [ "jeans", "socks", "boots", "tank_top", "apron_leather", "fire_gauntlets", "wristwatch", "cell_phone", "hammer" ],
+ "both": {
+ "items": [ "jeans", "socks", "boots", "tank_top", "apron_leather", "fire_gauntlets", "wristwatch", "hammer" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -1969,7 +1984,7 @@
"description": "All you ever wanted was to make people laugh. Dropping out of school and performing at kids' parties was a dream come true until the world ended. There's precious few balloon animals in your future now.",
"points": -1,
"items": {
- "both": [ "clown_suit", "socks", "clownshoes", "cell_phone", "airhorn" ],
+ "both": { "items": [ "clown_suit", "socks", "clownshoes", "airhorn" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2002,21 +2017,23 @@
"points": 1,
"skills": [ { "level": 1, "name": "tailor" } ],
"items": {
- "both": [
- "shorts",
- "socks",
- "sneakers",
- "tank_top",
- "sewing_kit",
- "mbag",
- "fur_cat_ears",
- "fur_cat_tail",
- "fur_collar",
- "wristwatch",
- "cell_phone",
- "mag_animecon",
- "cheeseburger"
- ],
+ "both": {
+ "items": [
+ "shorts",
+ "socks",
+ "sneakers",
+ "tank_top",
+ "sewing_kit",
+ "mbag",
+ "fur_cat_ears",
+ "fur_cat_tail",
+ "fur_collar",
+ "wristwatch",
+ "mag_animecon",
+ "cheeseburger"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2028,7 +2045,7 @@
"description": "The cataclysm struck on the big day and you escaped with nothing but your wedding attire. Cold feet? You'd just like to keep your feet attached!",
"points": -1,
"items": {
- "both": [ "cell_phone" ],
+ "both": { "items": [ ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "tux", "socks", "dress_shoes", "briefs" ],
"female": [ "veil_wedding", "dress_wedding", "stockings", "dress_shoes", "bra", "panties" ]
}
@@ -2040,25 +2057,27 @@
"description": "The apocalypse has been your psychotic dream come true. Now that the system is dead, it's time to party among the bones of the world!",
"points": 0,
"items": {
- "both": [
- "trenchcoat",
- "gloves_fingerless",
- "socks",
- "boots_combat",
- "weed",
- "tobacco",
- "rolling_paper",
- "mp3",
- "ref_lighter",
- "cell_phone",
- "wristwatch"
- ],
- "male": [ "pants_cargo", "tank_top", "boxer_shorts" ],
- "female": [ "skirt", "corset", "boxer_shorts" ]
- }
- },
- {
- "type": "profession",
+ "both": {
+ "items": [
+ "trenchcoat",
+ "gloves_fingerless",
+ "socks",
+ "boots_combat",
+ "weed",
+ "tobacco",
+ "rolling_paper",
+ "mp3",
+ "ref_lighter",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
+ "male": [ "pants_cargo", "tank_top", "boxer_shorts" ],
+ "female": [ "skirt", "corset", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
"ident": "firefighter",
"name": "Firefighter",
"description": "As a first responder you were direct witness to the gut-wrenching horrors of the apocalypse. Separated from most of your equipment and your unit while on call, you were forced to fight your way to safety with little more than your trusty iron and bunker gear to protect you.",
@@ -2092,20 +2111,22 @@
"description": "Your ska band broke up after the drummer became a zombie, now you're alone in the cataclysm with some cigarettes and your mp3 player.",
"points": 0,
"items": {
- "both": [
- "dress_shirt",
- "skinny_tie",
- "sunglasses",
- "pants",
- "socks",
- "dress_shoes",
- "rolling_paper",
- "tobacco",
- "cell_phone",
- "wristwatch",
- "mp3",
- "ref_lighter"
- ],
+ "both": {
+ "items": [
+ "dress_shirt",
+ "skinny_tie",
+ "sunglasses",
+ "pants",
+ "socks",
+ "dress_shoes",
+ "rolling_paper",
+ "tobacco",
+ "wristwatch",
+ "mp3",
+ "ref_lighter"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2118,19 +2139,21 @@
"points": 1,
"skills": [ { "level": 1, "name": "driving" }, { "level": 1, "name": "dodge" } ],
"items": {
- "both": [
- "postman_hat",
- "postman_shirt",
- "mbag",
- "dog_whistle",
- "wristwatch",
- "cell_phone",
- "leather_belt",
- "postman_shorts",
- "knit_scarf",
- "socks",
- "sneakers"
- ],
+ "both": {
+ "items": [
+ "postman_hat",
+ "postman_shirt",
+ "mbag",
+ "dog_whistle",
+ "wristwatch",
+ "leather_belt",
+ "postman_shorts",
+ "knit_scarf",
+ "socks",
+ "sneakers"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2226,18 +2249,10 @@
],
"skills": [ { "level": 1, "name": "electronics" }, { "level": 1, "name": "firstaid" }, { "level": 1, "name": "computer" } ],
"items": {
- "both": [
- "tank_top",
- "shorts",
- "socks",
- "lowtops",
- "aspirin",
- "anesthesia",
- "pockknife",
- "backpack",
- "wristwatch",
- "cell_phone"
- ],
+ "both": {
+ "items": [ "tank_top", "shorts", "socks", "lowtops", "aspirin", "anesthesia", "pockknife", "backpack", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "camisole", "panties" ]
}
@@ -2321,7 +2336,10 @@
"points": 0,
"skills": [ { "level": 3, "name": "speech" } ],
"items": {
- "both": [ "pants", "longshirt", "socks", "cassock", "dress_shoes", "holy_symbol", "holybook_bible1", "cell_phone" ],
+ "both": {
+ "items": [ "pants", "longshirt", "socks", "cassock", "dress_shoes", "holy_symbol", "holybook_bible1" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2334,7 +2352,10 @@
"points": 0,
"skills": [ { "level": 1, "name": "fabrication" }, { "level": 1, "name": "tailor" } ],
"items": {
- "both": [ "kariginu", "eboshi", "pants", "tabi_dress", "geta", "holy_symbol", "holybook_kojiki", "cell_phone" ],
+ "both": {
+ "items": [ "kariginu", "eboshi", "pants", "tabi_dress", "geta", "holy_symbol", "holybook_kojiki" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2348,7 +2369,10 @@
"//": "No knife, fire, or decent storage/armor. Skill points are countered.",
"skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "barter" } ],
"items": {
- "both": [ "pants", "tshirt", "socks", "kufi", "thawb", "lowtops", "holybook_quran", "cell_phone" ],
+ "both": {
+ "items": [ "pants", "tshirt", "socks", "kufi", "thawb", "lowtops", "holybook_quran" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2361,19 +2385,21 @@
"points": 0,
"skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "firstaid" } ],
"items": {
- "both": [
- "pants",
- "leather_belt",
- "dress_shirt",
- "socks",
- "kittel",
- "kippah",
- "dress_shoes",
- "cell_phone",
- "holy_symbol",
- "holybook_talmud",
- "holybook_tanakh"
- ],
+ "both": {
+ "items": [
+ "pants",
+ "leather_belt",
+ "dress_shirt",
+ "socks",
+ "kittel",
+ "kippah",
+ "dress_shoes",
+ "holy_symbol",
+ "holybook_talmud",
+ "holybook_tanakh"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2387,20 +2413,22 @@
"//": "1.5 pts skills, cutting implement, and plenty of storage, so lack of fire only goes so far.",
"skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "survival" } ],
"items": {
- "both": [
- "jeans",
- "tshirt",
- "socks",
- "robe",
- "turban",
- "waterskin",
- "pockknife",
- "mbag",
- "leathersandals",
- "holy_symbol",
- "cell_phone",
- "wristwatch"
- ],
+ "both": {
+ "items": [
+ "jeans",
+ "tshirt",
+ "socks",
+ "robe",
+ "turban",
+ "waterskin",
+ "pockknife",
+ "mbag",
+ "leathersandals",
+ "holy_symbol",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "panties" ]
}
@@ -2414,20 +2442,22 @@
"//": "Storage + 2 points in skills, - no knife or fire.",
"skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "driving" }, { "level": 1, "name": "computer" } ],
"items": {
- "both": [
- "dress_shirt",
- "pants",
- "socks",
- "dress_shoes",
- "wristwatch",
- "cell_phone",
- "backpack",
- "laptop",
- "flyer",
- "flyer",
- "flyer",
- "holy_symbol"
- ],
+ "both": {
+ "items": [
+ "dress_shirt",
+ "pants",
+ "socks",
+ "dress_shoes",
+ "wristwatch",
+ "backpack",
+ "laptop",
+ "flyer",
+ "flyer",
+ "flyer",
+ "holy_symbol"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -2504,20 +2534,22 @@
"points": 1,
"skills": [ { "level": 4, "name": "driving" }, { "level": 1, "name": "barter" }, { "level": 1, "name": "speech" } ],
"items": {
- "both": [
- "hat_ball",
- "tshirt",
- "jeans",
- "jacket_light",
- "socks",
- "sneakers",
- "pizza_veggy",
- "pizza_meat",
- "money_bundle",
- "cell_phone",
- "wristwatch",
- "mbag"
- ],
+ "both": {
+ "items": [
+ "hat_ball",
+ "tshirt",
+ "jeans",
+ "jacket_light",
+ "socks",
+ "sneakers",
+ "pizza_veggy",
+ "pizza_meat",
+ "money_bundle",
+ "wristwatch",
+ "mbag"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "boy_shorts" ]
}
@@ -2531,7 +2563,6 @@
"skills": [ { "level": 2, "name": "melee" }, { "level": 2, "name": "gun" } ],
"items": {
"both": {
- "ammo": 100,
"items": [
"undershirt",
"leather_belt",
@@ -2543,11 +2574,11 @@
"bullwhip",
"mbag",
"fedora",
- "cell_phone",
"wristwatch",
"spiral_stone"
],
"entries": [
+ { "group": "charged_cell_phone" },
{ "item": "sw_619", "ammo-item": "38_special", "container-item": "holster" },
{ "item": "38_special", "charges": 33 }
]
@@ -2564,26 +2595,28 @@
"points": 3,
"skills": [ { "level": 3, "name": "driving" }, { "level": 3, "name": "throw" }, { "level": 1, "name": "speech" } ],
"items": {
- "both": [
- "hat_newsboy",
- "sweatshirt",
- "pants",
- "peacoat",
- "socks",
- "boots_winter",
- "gloves_wool",
- "knit_scarf",
- "mbag",
- "dog_whistle",
- "cell_phone",
- "wristwatch",
- "newest_newspaper",
- "newest_newspaper",
- "newest_newspaper",
- "newest_newspaper",
- "newest_newspaper",
- "folding_bicycle"
- ],
+ "both": {
+ "items": [
+ "hat_newsboy",
+ "sweatshirt",
+ "pants",
+ "peacoat",
+ "socks",
+ "boots_winter",
+ "gloves_wool",
+ "knit_scarf",
+ "mbag",
+ "dog_whistle",
+ "wristwatch",
+ "newest_newspaper",
+ "newest_newspaper",
+ "newest_newspaper",
+ "newest_newspaper",
+ "newest_newspaper",
+ "folding_bicycle"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "boy_shorts" ]
}
@@ -2597,19 +2630,21 @@
"skills": [ { "level": 1, "name": "melee" }, { "level": 1, "name": "unarmed" }, { "level": 1, "name": "dodge" } ],
"traits": [ "PROF_SKATER" ],
"items": {
- "both": [
- "under_armor_shorts",
- "under_armor",
- "socks",
- "elbow_pads",
- "knee_pads",
- "mouthpiece",
- "gloves_fingerless",
- "helmet_skid",
- "cell_phone",
- "wristwatch",
- "rollerskates"
- ],
+ "both": {
+ "items": [
+ "under_armor_shorts",
+ "under_armor",
+ "socks",
+ "elbow_pads",
+ "knee_pads",
+ "mouthpiece",
+ "gloves_fingerless",
+ "helmet_skid",
+ "wristwatch",
+ "rollerskates"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "sports_bra", "panties" ]
}
@@ -2621,25 +2656,27 @@
"description": "You were making a living by raising crops, when the cataclysm struck. Now, with your trusty hoe and some seeds it's time to rebuild the Earth, one plant at a time.",
"points": 1,
"items": {
- "both": [
- "jeans",
- "tshirt",
- "backpack",
- "knit_scarf",
- "multitool",
- "hoe",
- "socks",
- "boots",
- "cell_phone",
- "wristwatch",
- "seed_blueberries",
- "seed_strawberries",
- "seed_wheat",
- "seed_hops",
- "seed_barley",
- "seed_sugar_beet",
- "seed_tomato"
- ],
+ "both": {
+ "items": [
+ "jeans",
+ "tshirt",
+ "backpack",
+ "knit_scarf",
+ "multitool",
+ "hoe",
+ "socks",
+ "boots",
+ "wristwatch",
+ "seed_blueberries",
+ "seed_strawberries",
+ "seed_wheat",
+ "seed_hops",
+ "seed_barley",
+ "seed_sugar_beet",
+ "seed_tomato"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -2653,8 +2690,8 @@
"skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "firstaid" } ],
"items": {
"both": {
- "items": [ "shorts", "tshirt", "socks", "lowtops", "cell_phone", "wristwatch" ],
- "entries": [ { "item": "gobag", "custom-flags": [ "FIT" ] } ]
+ "items": [ "shorts", "tshirt", "socks", "lowtops", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" }, { "item": "gobag", "custom-flags": [ "FIT" ] } ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
@@ -2930,20 +2967,22 @@
"description": "A mall security guard. You don't have any useful skills, other than some basic training for your job. You do however have your trusty tazer, baton, and pocket knife.",
"points": 0,
"items": {
- "both": [
- "pants",
- "socks",
- "boots",
- "flashlight",
- "longshirt",
- "jacket_light",
- "baton",
- "tazer",
- "medium_battery_cell",
- "pockknife",
- "wristwatch",
- "cell_phone"
- ],
+ "both": {
+ "items": [
+ "pants",
+ "socks",
+ "boots",
+ "flashlight",
+ "longshirt",
+ "jacket_light",
+ "baton",
+ "tazer",
+ "medium_battery_cell",
+ "pockknife",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
}
@@ -3015,11 +3054,14 @@
"fish_trap",
"vest",
"hat_boonie",
- "cell_phone",
"wristwatch",
"jacket_flannel"
],
- "entries": [ { "item": "lighter", "charges": 100 }, { "item": "knife_hunting", "container-item": "sheath" } ]
+ "entries": [
+ { "group": "charged_cell_phone" },
+ { "item": "lighter", "charges": 100 },
+ { "item": "knife_hunting", "container-item": "sheath" }
+ ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
@@ -3038,7 +3080,10 @@
{ "level": 1, "name": "cooking" }
],
"items": {
- "both": [ "stockings", "pockknife", "matches", "pipe_tobacco", "tobacco", "cell_phone" ],
+ "both": {
+ "items": [ "stockings", "pockknife", "matches", "pipe_tobacco", "tobacco" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [
"knee_high_boots",
"breeches",
@@ -3083,7 +3128,10 @@
{ "level": 1, "name": "cooking" }
],
"items": {
- "both": [ "stockings", "pockknife", "matches", "pipe_tobacco", "tobacco", "cell_phone" ],
+ "both": {
+ "items": [ "stockings", "pockknife", "matches", "pipe_tobacco", "tobacco" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [
"dress",
"apron_leather",
@@ -3124,7 +3172,7 @@
"CBMs": [ "bio_batteries", "bio_power_storage", "bio_remote" ],
"skills": [ { "level": 2, "name": "computer" } ],
"items": {
- "both": [ "jumpsuit", "socks", "boots", "cell_phone", "wristwatch" ],
+ "both": { "items": [ "jumpsuit", "socks", "boots", "wristwatch" ], "entries": [ { "group": "charged_cell_phone" } ] },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -3138,20 +3186,22 @@
"skills": [ { "level": 1, "name": "dodge" } ],
"traits": [ "PROF_SKATER" ],
"items": {
- "both": [
- "tshirt",
- "hoodie",
- "jeans",
- "socks",
- "elbow_pads",
- "knee_pads",
- "gloves_fingerless",
- "helmet_skid",
- "roller_blades",
- "cell_phone",
- "wristwatch",
- "sports_drink"
- ],
+ "both": {
+ "items": [
+ "tshirt",
+ "hoodie",
+ "jeans",
+ "socks",
+ "elbow_pads",
+ "knee_pads",
+ "gloves_fingerless",
+ "helmet_skid",
+ "roller_blades",
+ "wristwatch",
+ "sports_drink"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "boy_shorts" ]
}
@@ -3164,24 +3214,26 @@
"points": 2,
"skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "dodge" }, { "level": 1, "name": "melee" } ],
"items": {
- "both": [
- "tshirt",
- "hoodie",
- "jeans",
- "socks",
- "sneakers",
- "gloves_fingerless",
- "slingpack",
- "matches",
- "hairpin",
- "hairpin",
- "mag_comic",
- "cell_phone",
- "wristwatch",
- "marble",
- "marble",
- "slingshot"
- ],
+ "both": {
+ "items": [
+ "tshirt",
+ "hoodie",
+ "jeans",
+ "socks",
+ "sneakers",
+ "gloves_fingerless",
+ "slingpack",
+ "matches",
+ "hairpin",
+ "hairpin",
+ "mag_comic",
+ "wristwatch",
+ "marble",
+ "marble",
+ "slingshot"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "boy_shorts" ]
}
@@ -3194,24 +3246,26 @@
"points": 3,
"skills": [ { "level": 1, "name": "survival" }, { "level": 1, "name": "fabrication" }, { "level": 1, "name": "firstaid" } ],
"items": {
- "both": [
- "tshirt",
- "jacket_light",
- "pants_cargo",
- "socks",
- "boots",
- "knit_scarf",
- "backpack",
- "granola",
- "water_clean",
- "scissors",
- "magnifying_glass",
- "flashlight",
- "1st_aid",
- "cell_phone",
- "wristwatch",
- "whistle"
- ],
+ "both": {
+ "items": [
+ "tshirt",
+ "jacket_light",
+ "pants_cargo",
+ "socks",
+ "boots",
+ "knit_scarf",
+ "backpack",
+ "granola",
+ "water_clean",
+ "scissors",
+ "magnifying_glass",
+ "flashlight",
+ "1st_aid",
+ "wristwatch",
+ "whistle"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "boy_shorts" ]
}
@@ -3252,7 +3306,10 @@
"points": 1,
"skills": [ { "level": 1, "name": "dodge" }, { "level": 1, "name": "throw" } ],
"items": {
- "both": [ "tshirt", "jacket_light", "jeans", "socks", "lowtops", "slingpack", "juice", "cell_phone" ],
+ "both": {
+ "items": [ "tshirt", "jacket_light", "jeans", "socks", "lowtops", "slingpack", "juice" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "boy_shorts" ]
}
@@ -3265,18 +3322,10 @@
"points": 1,
"skills": [ { "level": 1, "name": "cooking" }, { "level": 1, "name": "mechanics" } ],
"items": {
- "both": [
- "tshirt",
- "jacket_light",
- "jeans",
- "socks",
- "sneakers",
- "knit_scarf",
- "backpack",
- "textbook_chemistry",
- "cell_phone",
- "wristwatch"
- ],
+ "both": {
+ "items": [ "tshirt", "jacket_light", "jeans", "socks", "sneakers", "knit_scarf", "backpack", "textbook_chemistry", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "panties" ]
}
@@ -3289,18 +3338,20 @@
"points": 1,
"skills": [ { "level": 1, "name": "electronics" }, { "level": 1, "name": "computer" } ],
"items": {
- "both": [
- "linuxtshirt",
- "jacket_light",
- "jeans",
- "socks",
- "sneakers",
- "knit_scarf",
- "backpack",
- "mag_electronics",
- "cell_phone",
- "wristwatch"
- ],
+ "both": {
+ "items": [
+ "linuxtshirt",
+ "jacket_light",
+ "jeans",
+ "socks",
+ "sneakers",
+ "knit_scarf",
+ "backpack",
+ "mag_electronics",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "panties" ]
}
@@ -3313,19 +3364,21 @@
"points": 0,
"skills": [ { "level": 3, "name": "speech" } ],
"items": {
- "both": [
- "dress_shirt",
- "blazer",
- "pants",
- "socks",
- "dress_shoes",
- "skinny_tie",
- "tieclip",
- "poetry_book",
- "permanent_marker",
- "cell_phone",
- "wristwatch"
- ],
+ "both": {
+ "items": [
+ "dress_shirt",
+ "blazer",
+ "pants",
+ "socks",
+ "dress_shoes",
+ "skinny_tie",
+ "tieclip",
+ "poetry_book",
+ "permanent_marker",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -3337,7 +3390,10 @@
"description": "You were a freelance photojournalist before the end. You have a chance to be the first journalist to cover the apocalypse, though finding a publisher seems more difficult a prospect than usual. You managed to hold onto your camera, hopefully you can get some fantastic shots.",
"points": 0,
"items": {
- "both": [ "pants", "dress_shirt", "blazer", "socks", "dress_shoes", "camera_pro", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "pants", "dress_shirt", "blazer", "socks", "dress_shoes", "camera_pro", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "boy_shorts", "bra" ]
}
@@ -3350,7 +3406,10 @@
"points": 3,
"skills": [ { "level": 2, "name": "dodge" }, { "level": 2, "name": "speech" } ],
"items": {
- "both": [ "baseball", "bat", "whistle", "tank_top", "shorts", "socks", "sneakers", "runner_bag", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "baseball", "bat", "whistle", "tank_top", "shorts", "socks", "sneakers", "runner_bag", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "sports_bra", "boy_shorts" ]
}
@@ -3363,32 +3422,34 @@
"points": 6,
"skills": [ { "level": 1, "name": "survival" }, { "level": 1, "name": "swimming" }, { "level": 1, "name": "firstaid" } ],
"items": {
- "both": [
- "tshirt",
- "socks",
- "jeans",
- "jacket_windbreaker",
- "boots_hiking",
- "gloves_light",
- "hat_cotton",
- "knit_scarf",
- "backpack",
- "ref_lighter",
- "hatchet",
- "e_tool",
- "tent_kit",
- "rollmat",
- "sleeping_bag_roll",
- "knife_swissarmy",
- "mess_kit",
- "gasoline_lantern",
- "canteen",
- "granola",
- "pur_tablets",
- "cell_phone",
- "wristwatch",
- "1st_aid"
- ],
+ "both": {
+ "items": [
+ "tshirt",
+ "socks",
+ "jeans",
+ "jacket_windbreaker",
+ "boots_hiking",
+ "gloves_light",
+ "hat_cotton",
+ "knit_scarf",
+ "backpack",
+ "ref_lighter",
+ "hatchet",
+ "e_tool",
+ "tent_kit",
+ "rollmat",
+ "sleeping_bag_roll",
+ "knife_swissarmy",
+ "mess_kit",
+ "gasoline_lantern",
+ "canteen",
+ "granola",
+ "pur_tablets",
+ "wristwatch",
+ "1st_aid"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "sports_bra", "boy_shorts" ]
}
@@ -3437,7 +3498,10 @@
"traits": [ "PARKOUR" ],
"skills": [ { "level": 4, "name": "dodge" } ],
"items": {
- "both": [ "tshirt", "hoodie", "pants_cargo", "socks", "sneakers", "runner_bag", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "tshirt", "hoodie", "pants_cargo", "socks", "sneakers", "runner_bag", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "sports_bra", "boy_shorts" ]
}
@@ -3449,22 +3513,24 @@
"description": "You came here to get a taste of New England; Now you hope New England won't get a taste of you!",
"points": 1,
"items": {
- "both": [
- "hat_ball",
- "knit_scarf",
- "tshirt",
- "jacket_light",
- "gloves_light",
- "pants",
- "fanny",
- "socks",
- "sneakers",
- "roadmap",
- "touristmap",
- "cell_phone",
- "wristwatch",
- "camera"
- ],
+ "both": {
+ "items": [
+ "hat_ball",
+ "knit_scarf",
+ "tshirt",
+ "jacket_light",
+ "gloves_light",
+ "pants",
+ "fanny",
+ "socks",
+ "sneakers",
+ "roadmap",
+ "touristmap",
+ "wristwatch",
+ "camera"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -3486,20 +3552,22 @@
"skills": [ { "level": 4, "name": "firstaid" }, { "level": 4, "name": "electronics" } ],
"traits": [ "PROF_AUTODOC" ],
"items": {
- "both": [
- "pants",
- "dress_shirt",
- "gloves_medical",
- "socks",
- "dress_shoes",
- "coat_lab",
- "bandages",
- "anesthesia",
- "1st_aid",
- "cell_phone",
- "wristwatch",
- "stethoscope"
- ],
+ "both": {
+ "items": [
+ "pants",
+ "dress_shirt",
+ "gloves_medical",
+ "socks",
+ "dress_shoes",
+ "coat_lab",
+ "bandages",
+ "anesthesia",
+ "1st_aid",
+ "wristwatch",
+ "stethoscope"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -3513,7 +3581,10 @@
"traits": [ "PROF_DICEMASTER" ],
"skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "survival" } ],
"items": {
- "both": [ "jeans", "tshirt", "socks", "sneakers", "mbag", "pizza_cheese", "cola", "dnd_handbook", "cell_phone", "wristwatch" ],
+ "both": {
+ "items": [ "jeans", "tshirt", "socks", "sneakers", "mbag", "pizza_cheese", "cola", "dnd_handbook", "wristwatch" ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "bra", "panties" ]
}
@@ -3551,18 +3622,20 @@
"traits": [ "ANIMALEMPATH" ],
"skills": [ { "level": 1, "name": "firstaid" }, { "level": 1, "name": "survival" } ],
"items": {
- "both": [
- "shorts_cargo",
- "technician_shirt_gray",
- "socks",
- "boots",
- "hat_boonie",
- "slingpack",
- "bucket",
- "shovel",
- "cell_phone",
- "wristwatch"
- ],
+ "both": {
+ "items": [
+ "shorts_cargo",
+ "technician_shirt_gray",
+ "socks",
+ "boots",
+ "hat_boonie",
+ "slingpack",
+ "bucket",
+ "shovel",
+ "wristwatch"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -3576,7 +3649,7 @@
"skills": [ { "level": 2, "name": "bashing" }, { "level": 1, "name": "melee" }, { "level": 1, "name": "driving" } ],
"items": {
"both": {
- "items": [ "shorts", "polo_shirt", "socks", "golf_shoes", "hat_golf", "gloves_golf", "cell_phone", "wristwatch" ],
+ "items": [ "shorts", "polo_shirt", "socks", "golf_shoes", "hat_golf", "gloves_golf", "wristwatch" ],
"entries": [
{ "item": "golf_club", "container-item": "golf_bag" },
{ "item": "golf_tee" },
@@ -3586,7 +3659,8 @@
{ "item": "golf_tee" },
{ "item": "golf_ball" },
{ "item": "golf_ball" },
- { "item": "golf_ball" }
+ { "item": "golf_ball" },
+ { "group": "charged_cell_phone" }
]
},
"male": [ "boxer_shorts" ],
diff --git a/data/json/recipes/ammo/components.json b/data/json/recipes/ammo/components.json
index 82b98772208ed..c27d89b2192a3 100644
--- a/data/json/recipes/ammo/components.json
+++ b/data/json/recipes/ammo/components.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_AMMO_COMPONENTS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "textbook_chemistry", 4 ], [ "recipe_bullets", 3 ], [ "textbook_anarch", 0 ] ],
"using": [ [ "surface_heat", 25 ] ],
"qualities": [ { "id": "CHEM", "level": 1 } ],
@@ -20,7 +20,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 4 ],
- "time": 3000,
+ "time": "3 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 5 ], [ "recipe_bullets", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "DRILL", "level": 2 } ],
@@ -35,7 +35,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 3 ],
- "time": 2100,
+ "time": "2 m",
"batch_time_factors": [ 80, 5 ],
"book_learn": [ [ "manual_pistol", 5 ], [ "recipe_bullets", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "DRILL", "level": 2 } ],
diff --git a/data/json/recipes/ammo/grenades.json b/data/json/recipes/ammo/grenades.json
index 153d978a84e4a..18f7cda00b535 100644
--- a/data/json/recipes/ammo/grenades.json
+++ b/data/json/recipes/ammo/grenades.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 2 ],
- "time": 3750,
+ "time": "3 m",
"batch_time_factors": [ 50, 10 ],
"reversible": true,
"book_learn": [ [ "manual_launcher", 4 ], [ "manual_shotgun", 6 ] ],
@@ -24,7 +24,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 2 ],
- "time": 3750,
+ "time": "3 m",
"batch_time_factors": [ 50, 10 ],
"reversible": true,
"book_learn": [ [ "manual_launcher", 4 ], [ "manual_shotgun", 6 ] ],
diff --git a/data/json/recipes/ammo/pistol.json b/data/json/recipes/ammo/pistol.json
index bb13dd33ffa3a..ccac11db2cffe 100644
--- a/data/json/recipes/ammo/pistol.json
+++ b/data/json/recipes/ammo/pistol.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 1000,
+ "time": "1 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
@@ -27,7 +27,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 1000,
+ "time": "1 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
@@ -47,7 +47,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -62,7 +62,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 5 ] ],
"charges": 1,
@@ -77,7 +77,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 2 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
@@ -92,7 +92,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 1 ], [ "recipe_bullets", 2 ] ],
"charges": 1,
@@ -107,7 +107,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ] ],
"charges": 1,
@@ -122,7 +122,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 4 ] ],
"charges": 1,
@@ -137,7 +137,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 2 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
@@ -152,7 +152,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -167,7 +167,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -182,7 +182,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ], [ "manual_smg", 3 ], [ "recipe_bullets", 4 ] ],
"charges": 1,
@@ -197,7 +197,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 2 ], [ "manual_smg", 2 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
@@ -212,7 +212,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 4 ], [ "manual_smg", 4 ] ],
"charges": 1,
@@ -227,7 +227,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 6 ], [ "manual_pistol", 7 ] ],
"charges": 1,
@@ -242,7 +242,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -257,7 +257,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -272,7 +272,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -287,7 +287,7 @@
"skill_used": "fabrication",
"difficulty": 9,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 7 ], [ "manual_pistol", 8 ] ],
"charges": 1,
@@ -302,7 +302,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -317,7 +317,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 3 ] ],
"charges": 1,
@@ -332,7 +332,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 1 ], [ "manual_smg", 1 ], [ "recipe_bullets", 2 ] ],
"charges": 1,
@@ -347,7 +347,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ], [ "manual_smg", 3 ], [ "recipe_bullets", 4 ] ],
"charges": 1,
@@ -362,7 +362,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 4 ], [ "manual_smg", 4 ] ],
"charges": 1,
@@ -377,7 +377,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 2 ], [ "manual_smg", 2 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
@@ -392,7 +392,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 1 ], [ "manual_pistol", 2 ] ],
"charges": 1,
@@ -407,7 +407,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -422,7 +422,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_pistol", 4 ] ],
"charges": 1,
@@ -437,7 +437,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 1 ], [ "manual_smg", 1 ], [ "recipe_bullets", 2 ] ],
"charges": 1,
@@ -452,7 +452,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 3 ], [ "manual_smg", 3 ], [ "recipe_bullets", 4 ] ],
"charges": 1,
@@ -467,7 +467,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "manual_pistol", 2 ], [ "manual_smg", 2 ], [ "recipe_bullets", 3 ] ],
"charges": 1,
diff --git a/data/json/recipes/ammo/rifle.json b/data/json/recipes/ammo/rifle.json
index 39b90edf9aeca..0b72256fc9c8e 100644
--- a/data/json/recipes/ammo/rifle.json
+++ b/data/json/recipes/ammo/rifle.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 1000,
+ "time": "1 m",
"batch_time_factors": [ 60, 5 ],
"autolearn": true,
"charges": 1,
@@ -23,7 +23,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 1000,
+ "time": "1 m",
"batch_time_factors": [ 60, 5 ],
"autolearn": true,
"charges": 1,
@@ -39,7 +39,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 1 ], [ "manual_pistol", 2 ] ],
"charges": 1,
@@ -54,7 +54,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 1 ], [ "manual_pistol", 2 ] ],
"charges": 1,
@@ -69,7 +69,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 1 ], [ "mag_rifle", 2 ] ],
"charges": 1,
@@ -84,7 +84,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 1 ], [ "mag_rifle", 3 ] ],
"charges": 1,
@@ -99,7 +99,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 4 ], [ "mag_rifle", 5 ] ],
"charges": 1,
@@ -114,7 +114,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -129,7 +129,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -144,7 +144,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ] ],
"charges": 1,
@@ -165,7 +165,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -177,6 +177,72 @@
[ [ "copper", 3 ] ]
]
},
+ {
+ "result": "reloaded_4570_sp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+ "skill_used": "fabrication",
+ "difficulty": 5,
+ "skills_required": [ "gun", 5 ],
+ "time": 2000,
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+ "components": [
+ [ [ "4570_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+ [ [ "gunpowder", 15 ] ],
+ [ [ "lead", 5 ] ],
+ [ [ "copper", 2 ] ]
+ ]
+ },
+ {
+ "result": "reloaded_4570_pen",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+ "skill_used": "fabrication",
+ "difficulty": 7,
+ "skills_required": [ "gun", 7 ],
+ "time": 2000,
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ], [ [ "copper", 7 ] ] ]
+ },
+ {
+ "result": "reloaded_4570_low",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+ "skill_used": "fabrication",
+ "difficulty": 4,
+ "skills_required": [ "gun", 4 ],
+ "time": 2000,
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ], [ [ "lead", 9 ] ] ]
+ },
+ {
+ "result": "reloaded_4570_bp",
+ "type": "recipe",
+ "category": "CC_AMMO",
+ "subcategory": "CSC_AMMO_RIFLE",
+ "skill_used": "fabrication",
+ "difficulty": 4,
+ "skills_required": [ "gun", 4 ],
+ "time": 2000,
+ "batch_time_factors": [ 60, 5 ],
+ "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
+ "charges": 1,
+ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "chem_black_powder", 12 ] ], [ [ "lead", 9 ] ] ]
+ },
{
"result": "reloaded_5x50dart",
"type": "recipe",
@@ -185,7 +251,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_caseless", 4 ] ],
"charges": 1,
@@ -207,7 +273,7 @@
"skill_used": "fabrication",
"difficulty": 8,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 6 ] ],
"charges": 1,
@@ -222,7 +288,7 @@
"skill_used": "fabrication",
"difficulty": 8,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 8 ] ],
"charges": 1,
@@ -243,7 +309,7 @@
"skill_used": "fabrication",
"difficulty": 8,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 7 ] ],
"charges": 1,
@@ -264,7 +330,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 2 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"charges": 1,
@@ -279,7 +345,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 3 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"charges": 1,
@@ -294,7 +360,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -309,7 +375,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 5 ] ],
"charges": 1,
@@ -330,7 +396,7 @@
"skill_used": "fabrication",
"difficulty": 9,
"skills_required": [ "gun", 7 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 7 ] ],
"charges": 1,
@@ -345,7 +411,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -365,7 +431,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 5 ] ],
"charges": 1,
@@ -386,7 +452,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "gun", 4 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -401,7 +467,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"charges": 1,
@@ -416,7 +482,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "gun", 5 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "mag_rifle", 4 ] ],
"charges": 1,
diff --git a/data/json/recipes/ammo/shot.json b/data/json/recipes/ammo/shot.json
index 8fc93cb3e1aaf..3badad1a608d0 100644
--- a/data/json/recipes/ammo/shot.json
+++ b/data/json/recipes/ammo/shot.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "manual_shotgun", 2 ] ],
"charges": 1,
@@ -22,7 +22,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 1 ], [ "manual_shotgun", 1 ] ],
"charges": 1,
@@ -37,7 +37,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 4 ], [ "manual_shotgun", 4 ] ],
"charges": 1,
@@ -53,7 +53,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_shotgun", 3 ] ],
"charges": 1,
@@ -68,7 +68,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 2000,
+ "time": "2 m",
"batch_time_factors": [ 50, 5 ],
"autolearn": true,
"charges": 2,
@@ -84,7 +84,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 100,
+ "time": "0 m",
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 3 ], [ "manual_shotgun", 2 ], [ "pocket_survival", 2 ], [ "mag_survival", 2 ] ],
"charges": 1,
diff --git a/data/json/recipes/armor/arms.json b/data/json/recipes/armor/arms.json
index d07ac1a06adf6..aa83d96699d54 100644
--- a/data/json/recipes/armor/arms.json
+++ b/data/json/recipes/armor/arms.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 4 ] ],
@@ -20,7 +20,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -32,7 +32,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"components": [ [ [ "string_36", 1 ], [ "string_6", 4 ] ], [ [ "chitin_piece", 4 ] ] ]
},
@@ -44,7 +44,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ] ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "CUT_FINE", "level": 1 }, { "id": "SEW", "level": 1 } ],
"components": [ [ [ "string_36", 1 ], [ "string_6", 4 ] ], [ [ "acidchitin_piece", 6 ] ] ]
@@ -56,7 +56,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 4 ], [ "tailor_portfolio", 3 ] ],
"using": [ [ "sewing_standard", 25 ] ],
"tools": [ [ [ "soldering_iron", 15 ], [ "welder", 15 ], [ "hotplate", 15 ], [ "toolset", 15 ] ] ],
@@ -69,7 +69,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 16 ] ],
"components": [ [ [ "leather", 12 ], [ "tanned_hide", 2 ], [ "fur", 12 ], [ "tanned_pelt", 2 ] ] ]
@@ -81,7 +81,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 180000,
+ "time": "180 m",
"book_learn": [ [ "textbook_armwest", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -97,7 +97,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_melee", 3 ] ],
"using": [ [ "cordage", 1 ] ],
@@ -110,7 +110,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "survival",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [ [ [ "paper", 60 ] ], [ [ "duct_tape", 10 ] ] ],
"flags": [ "BLIND_HARD" ]
@@ -122,7 +122,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 4 ], [ "tailor_portfolio", 3 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"tools": [ [ [ "soldering_iron", 10 ], [ "welder", 10 ], [ "hotplate", 10 ], [ "toolset", 10 ] ] ],
@@ -135,7 +135,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 15, "LIST" ] ] ],
@@ -148,7 +148,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 32 ] ],
"components": [ [ [ "rag", 40 ] ] ]
@@ -161,7 +161,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "stockings", 4 ] ], [ [ "rag", 8 ] ] ]
@@ -173,7 +173,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "leather", 4 ], [ "tanned_hide", 1 ], [ "fur", 4 ], [ "tanned_pelt", 1 ] ] ]
@@ -185,7 +185,7 @@
"subcategory": "CSC_ARMOR_ARMS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ],
"using": [ [ "chainmail_standard", 3 ] ],
"components": [ [ [ "link_sheet", 3 ] ], [ [ "chain_link", 75 ] ], [ [ "wire", 1 ] ], [ [ "rag", 6 ] ] ]
diff --git a/data/json/recipes/armor/feet.json b/data/json/recipes/armor/feet.json
index ad6819c95307b..1b287e255daa2 100644
--- a/data/json/recipes/armor/feet.json
+++ b/data/json/recipes/armor/feet.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "filament", 140, "LIST" ] ] ]
@@ -18,7 +18,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "leather", 10 ], [ "tanned_hide", 2 ] ] ]
@@ -30,7 +30,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
"components": [ [ [ "chitin_piece", 8 ] ], [ [ "leather", 4 ], [ "fur", 4 ], [ "rag", 4 ] ] ]
@@ -43,7 +43,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
"qualities": [ { "id": "CUT_FINE", "level": 1 }, { "id": "SEW", "level": 1 } ],
@@ -57,7 +57,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ "fabrication", 6 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -77,7 +77,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"book_learn": [ [ "textbook_survival", 1 ] ],
"using": [ [ "sewing_standard", 13 ] ],
@@ -91,7 +91,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 6 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -111,7 +111,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 5 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 60 ] ],
"tools": [ [ [ "welder", 42 ], [ "welder_crude", 63 ], [ "soldering_iron", 63 ], [ "toolset", 63 ] ] ],
@@ -131,7 +131,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 2,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 24 ] ],
"components": [ [ [ "leather", 18 ], [ "tanned_hide", 3 ], [ "fur", 18 ], [ "tanned_pelt", 3 ] ] ]
@@ -144,7 +144,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 3 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -162,7 +162,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_armwest", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ],
@@ -179,7 +179,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -197,7 +197,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 5,
- "time": 35000,
+ "time": "35 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "tailor_portfolio", 5 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "leather", 9 ], [ "tanned_hide", 2 ] ] ]
@@ -209,7 +209,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 6,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"components": [ [ [ "felt_patch", 20 ] ], [ [ "bag_plastic", 8 ] ] ]
@@ -222,7 +222,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 5 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -241,7 +241,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "sewing_standard", 160 ] ],
"tools": [ [ [ "welder", 42 ], [ "welder_crude", 63 ], [ "soldering_iron", 63 ], [ "toolset", 63 ] ] ],
@@ -260,7 +260,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 2 ], [ "stick", 2 ] ] ]
@@ -272,7 +272,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "tailor_japanese", 2 ] ],
"qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 1 ] ], [ [ "string_6", 1 ] ] ]
@@ -283,7 +283,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 6 ] ] ],
@@ -295,7 +295,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "fur", 9 ] ] ],
@@ -307,7 +307,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "leather", 9 ] ] ],
@@ -319,7 +319,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "felt_patch", 6 ] ] ],
@@ -332,7 +332,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "sewing_standard", 5 ] ],
"components": [ [ [ "leather", 3 ] ] ]
@@ -344,7 +344,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "textbook_survival", 0 ], [ "pocket_survival", 0 ] ],
"using": [ [ "sewing_standard", 5 ] ],
@@ -357,7 +357,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "textbook_fireman", 6 ], [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ] ],
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "nomex", 9 ] ] ]
@@ -369,7 +369,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"book_learn": [ [ "textbook_survival", 1 ], [ "pocket_survival", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -381,7 +381,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
"components": [ [ [ "rag", 2 ] ] ]
@@ -392,7 +392,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "survival",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [ [ [ "plastic_shopping_bag", 2 ] ] ],
"flags": [ "BLIND_HARD" ]
@@ -404,7 +404,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 1,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
"components": [ [ [ "yarn", 75 ] ] ]
@@ -416,7 +416,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "sewing_standard", 6 ] ],
"components": [ [ [ "rag", 8 ] ] ]
@@ -428,7 +428,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 1,
- "time": 28000,
+ "time": "28 m",
"autolearn": true,
"components": [ [ [ "straw_pile", 4 ], [ "birchbark", 6 ] ] ]
},
@@ -440,7 +440,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "mag_swimming", 3 ], [ "manual_swimming", 2 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"tools": [ [ [ "welder", 42 ], [ "welder_crude", 63 ], [ "soldering_iron", 63 ], [ "toolset", 63 ] ] ],
@@ -454,7 +454,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "tailor_portfolio", 4 ], [ "textbook_tailor", 3 ], [ "atomic_survival", 3 ] ],
"using": [ [ "sewing_standard", 6 ] ],
"tools": [ [ [ "soldering_iron", 20 ], [ "toolset", 20 ] ] ],
@@ -467,7 +467,7 @@
"subcategory": "CSC_ARMOR_FEET",
"skill_used": "tailor",
"difficulty": 4,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "soldering_iron", 5 ], [ "welder", 5 ], [ "hotplate", 5 ], [ "toolset", 5 ] ] ],
diff --git a/data/json/recipes/armor/hands.json b/data/json/recipes/armor/hands.json
index ae3e641ec3ffe..5ff933aed951c 100644
--- a/data/json/recipes/armor/hands.json
+++ b/data/json/recipes/armor/hands.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"components": [ [ [ "string_36", 1 ], [ "string_6", 4 ] ], [ [ "chitin_piece", 4 ] ] ]
},
@@ -18,7 +18,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ] ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "CUT_FINE", "level": 1 }, { "id": "SEW", "level": 1 } ],
"components": [ [ [ "string_36", 1 ], [ "string_6", 4 ] ], [ [ "acidchitin_piece", 6 ] ] ]
@@ -30,7 +30,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ], [ "fur", 6 ], [ "tanned_pelt", 1 ] ] ]
@@ -41,7 +41,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "survival",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [ [ [ "plastic_shopping_bag", 2 ] ] ],
"flags": [ "BLIND_HARD" ]
@@ -52,7 +52,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "gloves_leather", 1 ] ] ]
@@ -65,7 +65,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"book_learn": [ [ "manual_tailor", 2 ], [ "textbook_tailor", 2 ], [ "recipe_melee", 2 ] ],
"using": [ [ "sewing_standard", 5 ] ],
@@ -79,7 +79,7 @@
"skill_used": "tailor",
"difficulty": 1,
"skills_required": [ "fabrication", 1 ],
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -93,7 +93,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"tools": [ [ [ "welder", 14 ], [ "welder_crude", 21 ], [ "soldering_iron", 21 ], [ "toolset", 21 ] ] ],
@@ -113,7 +113,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"book_learn": [ [ "manual_tailor", 1 ], [ "textbook_survival", 1 ], [ "pocket_survival", 1 ] ],
"using": [ [ "sewing_standard", 6 ] ],
@@ -127,7 +127,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"tools": [ [ [ "welder", 14 ], [ "welder_crude", 21 ], [ "soldering_iron", 21 ], [ "toolset", 21 ] ] ],
@@ -146,7 +146,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 5 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -172,7 +172,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"book_learn": [ [ "manual_tailor", 1 ], [ "mag_tailor", 0 ], [ "textbook_survival", 1 ], [ "pocket_survival", 1 ] ],
"using": [ [ "sewing_standard", 6 ] ],
@@ -185,7 +185,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -197,7 +197,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "manual_tailor", 1 ], [ "mag_tailor", 0 ], [ "textbook_survival", 2 ], [ "pocket_survival", 2 ] ],
"using": [ [ "sewing_standard", 2 ] ],
"components": [ [ [ "rag", 2 ] ] ]
@@ -210,7 +210,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 3 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"tools": [ [ [ "welder", 14 ], [ "welder_crude", 21 ], [ "soldering_iron", 21 ], [ "toolset", 21 ] ] ],
@@ -235,7 +235,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_armwest", 5 ] ],
"using": [ [ "forging_standard", 15 ], [ "steel_standard", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -250,7 +250,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"tools": [ [ [ "welder", 14 ], [ "welder_crude", 21 ], [ "soldering_iron", 21 ], [ "toolset", 21 ] ] ],
@@ -275,7 +275,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "felt_patch", 4 ] ] ]
@@ -287,7 +287,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "manual_tailor", 2 ], [ "mag_tailor", 3 ], [ "textbook_survival", 2 ] ],
"using": [ [ "sewing_standard", 6 ] ],
"components": [ [ [ "leather", 2 ], [ "gloves_leather", 1 ] ], [ [ "rag", 2 ], [ "gloves_light", 1 ] ] ]
@@ -298,7 +298,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 4 ] ] ],
@@ -310,7 +310,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "fur", 6 ] ] ],
@@ -322,7 +322,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "leather", 6 ] ] ],
@@ -334,7 +334,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "felt_patch", 4 ] ] ],
@@ -348,7 +348,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 5 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"tools": [ [ [ "welder", 14 ], [ "welder_crude", 21 ], [ "soldering_iron", 21 ], [ "toolset", 21 ] ] ],
@@ -374,7 +374,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -393,7 +393,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
"components": [ [ [ "yarn", 250 ] ] ]
@@ -405,7 +405,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "textbook_fireman", 6 ], [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ] ],
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "nomex", 6 ] ] ]
@@ -416,7 +416,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "survival",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [ [ [ "socks", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
@@ -429,7 +429,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 80000,
+ "time": "80 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "tailor_portfolio", 4 ], [ "textbook_tailor", 3 ], [ "atomic_survival", 3 ] ],
"using": [ [ "sewing_standard", 8 ], [ "soldering_standard", 20 ] ],
"components": [ [ [ "rag", 4 ], [ "gloves_light", 1 ], [ "gloves_liner", 1 ] ], [ [ "element", 2 ] ], [ [ "cable", 2 ] ] ]
@@ -441,7 +441,7 @@
"subcategory": "CSC_ARMOR_HANDS",
"skill_used": "tailor",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 5 ] ],
"tools": [ [ [ "soldering_iron", 3 ], [ "welder", 3 ], [ "hotplate", 3 ], [ "toolset", 3 ] ] ],
diff --git a/data/json/recipes/armor/head.json b/data/json/recipes/armor/head.json
index b39afb01dbd11..82322fa522d4b 100644
--- a/data/json/recipes/armor/head.json
+++ b/data/json/recipes/armor/head.json
@@ -7,7 +7,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"using": [ [ "sewing_standard", 3 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -18,7 +18,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 2 ] ],
@@ -31,7 +31,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "felt_patch", 4 ] ] ]
@@ -44,7 +44,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "duct_tape", 10 ] ] ],
@@ -56,7 +56,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -90,7 +90,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 16 ] ],
"components": [ [ [ "leather", 8 ], [ "tanned_hide", 1 ] ] ]
@@ -102,7 +102,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 4,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"components": [ [ [ "felt_patch", 8 ] ] ]
@@ -114,7 +114,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 600000,
+ "time": "600 m",
"book_learn": [ [ "jewelry_book", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -127,7 +127,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -140,7 +140,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -153,7 +153,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "string_36", 1 ], [ "string_6", 2 ] ], [ [ "bottle_plastic", 1 ], [ "bottle_plastic_small", 2 ] ] ]
@@ -166,7 +166,7 @@
"skill_used": "electronics",
"difficulty": 6,
"skills_required": [ "tailor", 1 ],
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_fireman", 6 ], [ "advanced_electronics", 5 ], [ "textbook_electronics", 6 ] ],
@@ -187,7 +187,7 @@
"skill_used": "electronics",
"difficulty": 5,
"skills_required": [ "tailor", 1 ],
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_fireman", 7 ], [ "advanced_electronics", 4 ], [ "textbook_electronics", 4 ] ],
@@ -206,7 +206,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"components": [
[ [ "goggles_ski", 1 ], [ "goggles_welding", 1 ], [ "glasses_safety", 1 ] ],
@@ -222,7 +222,7 @@
"skill_used": "mechanics",
"difficulty": 2,
"skills_required": [ "fabrication", 1 ],
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 3 ], [ "welding_book", 3 ] ],
"components": [
@@ -238,7 +238,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -250,7 +250,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 2,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "rag", 3 ] ] ]
@@ -263,7 +263,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "fur", 3 ] ] ]
@@ -275,7 +275,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 2,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "textbook_tailor", 2 ], [ "recipe_fauxfur", 1 ] ],
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "faux_fur", 3 ] ] ]
@@ -287,7 +287,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 15, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 10 ] ] ]
@@ -298,7 +298,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 45000,
+ "time": "45 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 1 ], [ "bandana", 1 ] ], [ [ "hat_hard", 1 ] ] ]
@@ -310,7 +310,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"components": [ [ [ "felt_patch", 10 ] ] ]
@@ -322,7 +322,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
@@ -335,7 +335,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 8 ], [ "cordage", 2 ] ],
@@ -348,7 +348,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 540000,
+ "time": "540 m",
"book_learn": [ [ "textbook_armwest", 5 ] ],
"using": [ [ "forging_standard", 15 ], [ "steel_standard", 10 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -362,7 +362,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 6,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"components": [ [ [ "string_36", 1 ], [ "string_6", 5 ] ], [ [ "chitin_piece", 5 ] ] ]
},
@@ -373,7 +373,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 432000,
+ "time": "432 m",
"book_learn": [ [ "textbook_armschina", 5 ] ],
"using": [ [ "sewing_standard", 18 ], [ "forging_standard", 3 ], [ "steel_standard", 2 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -388,7 +388,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ] ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "CUT_FINE", "level": 1 }, { "id": "SEW", "level": 1 } ],
"components": [ [ [ "string_36", 1 ], [ "string_6", 5 ] ], [ [ "acidchitin_piece", 8 ] ] ]
@@ -400,7 +400,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 432000,
+ "time": "432 m",
"book_learn": [ [ "textbook_armwest", 5 ] ],
"using": [ [ "forging_standard", 3 ], [ "steel_standard", 2 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -415,7 +415,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 5 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "welder", 42 ], [ "welder_crude", 63 ], [ "soldering_iron", 63 ], [ "toolset", 63 ] ] ],
@@ -446,7 +446,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 600000,
+ "time": "600 m",
"book_learn": [ [ "textbook_armeast", 8 ] ],
"using": [ [ "forging_standard", 23 ], [ "steel_standard", 12 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -460,7 +460,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 18 ] ],
"components": [ [ [ "leather", 16 ], [ "tanned_hide", 3 ], [ "fur", 16 ], [ "tanned_pelt", 3 ] ] ]
@@ -472,7 +472,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 432000,
+ "time": "432 m",
"book_learn": [ [ "textbook_armwest", 4 ] ],
"using": [ [ "forging_standard", 2 ], [ "steel_standard", 1 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -486,7 +486,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 5,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 65 ] ],
"components": [
@@ -502,7 +502,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 540000,
+ "time": "540 m",
"book_learn": [ [ "textbook_armwest", 6 ] ],
"using": [ [ "forging_standard", 18 ], [ "steel_standard", 14 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -517,7 +517,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ "fabrication", 3 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 65 ], [ "soldering_standard", 8 ] ],
"components": [
@@ -535,7 +535,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "welder", 42 ], [ "welder_crude", 63 ], [ "soldering_iron", 63 ], [ "toolset", 63 ] ] ],
@@ -567,7 +567,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"tools": [ [ [ "welder", 84 ], [ "welder_crude", 126 ], [ "soldering_iron", 126 ], [ "toolset", 126 ] ] ],
@@ -589,7 +589,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ "fabrication", 6 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"book_learn": [ [ "textbook_fireman", 7 ] ],
"using": [ [ "sewing_standard", 40 ] ],
@@ -604,7 +604,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 6 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -618,7 +618,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 4 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -631,7 +631,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"tools": [ ],
"components": [ [ [ "duct_tape", 20 ] ], [ [ "bag_plastic", 2 ] ], [ [ "rag", 2 ] ] ]
@@ -644,7 +644,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -664,7 +664,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 5 ],
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "welder", 21 ], [ "welder_crude", 32 ], [ "soldering_iron", 32 ], [ "toolset", 32 ] ] ],
@@ -684,7 +684,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 4 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"tools": [ [ [ "welder", 42 ], [ "welder_crude", 63 ], [ "soldering_iron", 63 ], [ "toolset", 63 ] ] ],
@@ -705,7 +705,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -719,7 +719,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
@@ -732,7 +732,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
@@ -745,7 +745,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -758,7 +758,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
@@ -770,7 +770,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 9 ] ],
@@ -785,7 +785,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "fabrication", 1 ],
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [
@@ -810,7 +810,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 8 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "textbook_fireman", 7 ], [ "atomic_survival", 8 ], [ "textbook_gaswarfare", 9 ] ],
"using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ],
@@ -825,7 +825,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 8 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "textbook_fireman", 7 ], [ "atomic_survival", 8 ], [ "textbook_gaswarfare", 9 ] ],
"using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ],
@@ -840,7 +840,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "fabrication", 1 ],
- "time": 20000,
+ "time": "20 m",
"decomp_learn": 3,
"book_learn": [
[ "textbook_fireman", 3 ],
@@ -861,7 +861,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "fabrication", 1 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [
[ "textbook_fireman", 3 ],
[ "atomic_survival", 3 ],
@@ -889,7 +889,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "fabrication", 1 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [
[ "textbook_fireman", 3 ],
[ "atomic_survival", 3 ],
@@ -910,7 +910,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 7 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -929,7 +929,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 7 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -948,7 +948,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 7 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -968,7 +968,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "tailor", 5 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ], [ "sewing_standard", 10 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -985,7 +985,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "tshirt", 1 ], [ "flag_shirt", 1 ], [ "linuxtshirt", 1 ], [ "tshirt_text", 1 ] ] ],
@@ -998,7 +998,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 6,
- "time": 150000,
+ "time": "150 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"components": [ [ [ "felt_patch", 8 ] ] ]
@@ -1011,7 +1011,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "tailor", 6 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ], [ "sewing_standard", 10 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1030,7 +1030,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 5 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 2 ], [ "sewing_standard", 20 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1049,7 +1049,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 7 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ], [ "sewing_standard", 10 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1068,7 +1068,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "tailor", 7 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ], [ "sewing_standard", 20 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1085,7 +1085,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"components": [
[ [ "hat_hard", 1 ], [ "helmet_bike", 1 ] ],
@@ -1100,7 +1100,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "textbook_fireman", 6 ], [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ] ],
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "nomex", 6 ] ] ]
@@ -1111,7 +1111,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 3 ] ],
@@ -1123,7 +1123,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 4 ] ], [ [ "pot", 1 ] ] ],
@@ -1137,7 +1137,7 @@
"skill_used": "electronics",
"difficulty": 9,
"skills_required": [ "tailor", 1 ],
- "time": 80000,
+ "time": "80 m",
"book_learn": [ [ "manual_swimming", 3 ], [ "atomic_survival", 3 ], [ "adv_chemistry", 4 ], [ "textbook_chemistry", 4 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1159,7 +1159,7 @@
"skill_used": "electronics",
"difficulty": 9,
"skills_required": [ "tailor", 3 ],
- "time": 85000,
+ "time": "85 m",
"book_learn": [ [ "manual_swimming", 3 ], [ "atomic_survival", 3 ], [ "adv_chemistry", 4 ], [ "textbook_chemistry", 4 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1182,7 +1182,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "electronics", 4 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SCREW", "level": 1 } ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -1201,7 +1201,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
"components": [ [ [ "yarn", 150 ] ] ]
@@ -1214,7 +1214,7 @@
"skill_used": "tailor",
"difficulty": 1,
"skills_required": [ "survival", 1 ],
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 3 ] ],
@@ -1229,7 +1229,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 3 ] ],
@@ -1244,7 +1244,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 9000,
+ "time": "9 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 9 ] ],
@@ -1257,7 +1257,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
"components": [ [ [ "yarn", 300 ] ] ]
@@ -1269,7 +1269,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 3,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ], [ "mag_beauty", 1 ], [ "textbook_tailor", 0 ] ],
"components": [ [ [ "straw_pile", 7 ], [ "birchbark", 10 ] ] ]
},
@@ -1280,7 +1280,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"components": [ [ [ "straw_pile", 3 ], [ "birchbark", 5 ] ] ]
},
@@ -1292,7 +1292,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "tailor", 4 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ], [ "sewing_standard", 10 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -1317,7 +1317,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 80000,
+ "time": "80 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "tailor_portfolio", 4 ], [ "textbook_tailor", 3 ], [ "atomic_survival", 3 ] ],
"using": [ [ "sewing_standard", 8 ], [ "soldering_standard", 20 ] ],
"components": [ [ [ "rag", 4 ], [ "scarf", 2 ], [ "scarf_long", 1 ], [ "balclava", 1 ] ], [ [ "element", 2 ] ], [ [ "cable", 6 ] ] ]
@@ -1328,7 +1328,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"tools": [ ],
"components": [ [ [ "aluminum_foil", 4 ] ] ]
@@ -1340,7 +1340,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 5,
- "time": 65000,
+ "time": "65 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [
@@ -1354,7 +1354,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 8 ] ] ],
@@ -1367,7 +1367,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "tailor",
"difficulty": 4,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "soldering_iron", 5 ], [ "welder", 5 ], [ "hotplate", 5 ], [ "toolset", 5 ] ] ],
@@ -1380,7 +1380,7 @@
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ],
"using": [ [ "chainmail_standard", 2 ] ],
"components": [ [ [ "link_sheet", 2 ] ], [ [ "chain_link", 50 ] ], [ [ "wire", 1 ] ], [ [ "rag", 4 ] ] ]
@@ -1391,7 +1391,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_HEAD",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 10 ] ], [ [ "pot_canning", 1 ] ] ],
diff --git a/data/json/recipes/armor/legs.json b/data/json/recipes/armor/legs.json
index 24bb77a3a5a17..702aac23952ca 100644
--- a/data/json/recipes/armor/legs.json
+++ b/data/json/recipes/armor/legs.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 2 ] ],
@@ -20,7 +20,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 15 ] ],
@@ -33,7 +33,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "filament", 15 ] ],
@@ -47,7 +47,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 15 ] ],
@@ -60,7 +60,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 10 ] ],
@@ -73,7 +73,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "textbook_tailor", 2 ], [ "tailor_portfolio", 2 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 7 ] ] ]
@@ -85,7 +85,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 15 ] ],
@@ -98,7 +98,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "leather", 8 ], [ "tanned_hide", 2 ] ] ]
@@ -110,7 +110,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 50000,
+ "time": "50 m",
"book_learn": [ [ "tailor_japanese", 3 ] ],
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "rag", 15 ] ] ]
@@ -123,7 +123,7 @@
"//": "zero Encumbrance, without elastic, at skill 2? seems tricky",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -135,7 +135,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "fur", 4 ] ] ]
@@ -147,7 +147,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "leather", 4 ] ] ]
@@ -159,7 +159,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "tailor_portfolio", 5 ], [ "manual_tailor", 3 ], [ "survival_book", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 6 ] ] ]
@@ -171,7 +171,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"book_learn": [ [ "scots_cookbook", 4 ] ],
"using": [ [ "sewing_standard", 30 ] ],
"components": [ [ [ "felt_patch", 18 ] ] ]
@@ -183,7 +183,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 15, "LIST" ] ] ],
@@ -196,7 +196,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 6 ] ] ]
@@ -208,7 +208,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_tailor", 2 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 10 ] ] ]
@@ -220,7 +220,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_tailor", 2 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "fur", 10 ], [ "tanned_pelt", 2 ] ] ]
@@ -232,7 +232,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 4 ], [ "tailor_portfolio", 3 ] ],
"using": [ [ "sewing_standard", 25 ] ],
"tools": [ [ [ "soldering_iron", 15 ], [ "welder", 15 ], [ "hotplate", 15 ], [ "toolset", 15 ] ] ],
@@ -245,7 +245,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 190000,
+ "time": "190 m",
"book_learn": [ [ "textbook_armwest", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -261,7 +261,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 5,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"book_learn": [ [ "textbook_armwest", 4 ], [ "recipe_melee", 4 ] ],
"using": [ [ "cordage", 4 ] ],
@@ -277,7 +277,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "survival",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [ [ [ "paper", 60 ] ], [ [ "duct_tape", 10 ] ] ],
"flags": [ "BLIND_HARD" ]
@@ -288,7 +288,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -299,7 +299,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"tools": [ ],
"components": [ [ [ "fur", 2 ] ] ]
@@ -310,7 +310,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "leather", 2 ] ] ]
@@ -321,7 +321,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "felt_patch", 4 ] ] ]
@@ -333,7 +333,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 15 ] ],
@@ -347,7 +347,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "welder", 10 ], [ "welder_crude", 15 ], [ "soldering_iron", 15 ], [ "toolset", 15 ] ] ],
@@ -374,7 +374,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 15 ] ],
@@ -387,7 +387,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 48000,
+ "time": "48 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "textbook_tailor", 2 ], [ "manual_tailor", 2 ] ],
@@ -402,7 +402,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "survival", 1 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 18 ] ],
"components": [ [ [ "rag", 10 ] ], [ [ "fur", 6 ], [ "tanned_pelt", 1 ] ] ]
@@ -414,7 +414,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "tailor_portfolio", 3 ], [ "recipe_fauxfur", 2 ] ],
"using": [ [ "sewing_standard", 18 ] ],
"components": [ [ [ "rag", 10 ] ], [ [ "faux_fur", 6 ] ] ]
@@ -426,7 +426,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "leather", 10 ], [ "tanned_hide", 2 ] ] ]
@@ -439,7 +439,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 5 ],
- "time": 70000,
+ "time": "70 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"components": [
@@ -467,7 +467,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 5 ] ] ]
@@ -479,7 +479,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "manual_tailor", 1 ] ],
"using": [ [ "sewing_standard", 12 ] ],
@@ -492,7 +492,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "pants_cargo", 1 ] ] ]
@@ -505,7 +505,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -516,7 +516,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "jeans", 1 ] ] ]
@@ -529,7 +529,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"using": [ [ "sewing_standard", 6 ] ],
"components": [ [ [ "stockings", 3 ] ], [ [ "rag", 6 ] ] ]
@@ -541,7 +541,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 24 ] ],
"components": [ [ [ "rag", 30 ] ] ]
@@ -553,7 +553,7 @@
"subcategory": "CSC_ARMOR_LEGS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ],
"using": [ [ "chainmail_standard", 4 ] ],
"components": [ [ [ "link_sheet", 4 ] ], [ [ "chain_link", 100 ] ], [ [ "wire", 1 ] ], [ [ "rag", 6 ] ] ]
diff --git a/data/json/recipes/armor/other.json b/data/json/recipes/armor/other.json
index 9a8637a284a8c..be0feff85291f 100644
--- a/data/json/recipes/armor/other.json
+++ b/data/json/recipes/armor/other.json
@@ -5,7 +5,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
- "time": 80000,
+ "time": "80 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
@@ -19,7 +19,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "electronics", 2 ],
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "textbook_tailor", 2 ], [ "manual_tailor", 2 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 35 ] ], [ [ "plastic_chunk", 4 ] ], [ [ "element", 8 ] ], [ [ "cable", 10 ] ], [ [ "amplifier", 1 ] ] ]
@@ -31,7 +31,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "jewelry_book", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -44,7 +44,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "jewelry_book", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -56,7 +56,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "jewelry_book", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -69,7 +69,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "jewelry_book", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -81,7 +81,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"type": "recipe",
@@ -92,7 +92,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"type": "recipe",
@@ -105,7 +105,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 1,
- "time": 85000,
+ "time": "85 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
@@ -119,7 +119,7 @@
"skill_used": "tailor",
"difficulty": 1,
"skills_required": [ "survival", 1 ],
- "time": 80000,
+ "time": "80 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -133,7 +133,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -150,7 +150,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -167,7 +167,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 5 ] ],
"tools": [ [ [ "soldering_standard", 10, "LIST" ], [ "surface_heat", 10, "LIST" ] ] ],
@@ -180,7 +180,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 5 ] ],
"tools": [ [ [ "soldering_standard", 10, "LIST" ], [ "surface_heat", 10, "LIST" ] ] ],
@@ -193,7 +193,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"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" ] ] ],
@@ -206,7 +206,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 10 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -223,7 +223,7 @@
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_animecon", 3 ] ],
"using": [ [ "sewing_standard", 5 ] ],
"tools": [ [ [ "soldering_standard", 10, "LIST" ], [ "surface_heat", 10, "LIST" ] ] ],
@@ -237,7 +237,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "cooking", 1 ],
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [
@@ -265,7 +265,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "fabrication", 2 ],
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -279,7 +279,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "fabrication", 2 ],
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -293,7 +293,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "cooking", 1 ],
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [
@@ -321,7 +321,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "survival", 1 ],
- "time": 75000,
+ "time": "75 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 30 ] ],
@@ -335,7 +335,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "survival", 1 ],
- "time": 75000,
+ "time": "75 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -349,7 +349,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -369,7 +369,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 3 ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 140 ] ],
"components": [
@@ -386,7 +386,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "tailor",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"using": [ [ "sewing_standard", 7 ] ],
"components": [ [ [ "rag", 5 ] ] ]
@@ -397,7 +397,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_ARMOR_OTHER",
"skill_used": "survival",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "towel_soiled", 1 ] ] ]
}
diff --git a/data/json/recipes/armor/pets_dog.json b/data/json/recipes/armor/pets_dog.json
index be01e1465d8f1..140e2cf694769 100644
--- a/data/json/recipes/armor/pets_dog.json
+++ b/data/json/recipes/armor/pets_dog.json
@@ -6,7 +6,7 @@
"category": "CC_ANIMALS",
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
"skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ], [ "fabrication", 2 ] ],
- "time": 150000,
+ "time": "150 m",
"using": [ [ "cordage", 1 ] ],
"components": [ [ [ "acidchitin_piece", 12 ] ] ]
},
@@ -16,7 +16,7 @@
"copy-from": "armor_chitin",
"category": "CC_ANIMALS",
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
- "time": 75000,
+ "time": "75 m",
"book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ] ],
"skills_required": [ [ "fabrication", 2 ] ],
"using": [ [ "cordage", 1 ] ],
@@ -28,7 +28,7 @@
"copy-from": "chainmail_vest",
"category": "CC_ANIMALS",
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
- "time": 52500,
+ "time": "52 m",
"using": [ [ "chainmail_standard", 5 ] ],
"components": [
[ [ "link_sheet", 5 ] ],
@@ -44,7 +44,7 @@
"category": "CC_ANIMALS",
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"byproducts": [ [ "leather", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "vest_leather", 1 ] ] ]
@@ -57,7 +57,7 @@
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
"skill_used": "tailor",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 15 ] ],
@@ -68,7 +68,7 @@
"type": "recipe",
"copy-from": "leather_harness_dog",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "bone", 13 ], [ "bone_human", 13 ], [ "bone_tainted", 25 ] ], [ [ "vest_leather", 1 ] ] ]
},
@@ -80,7 +80,7 @@
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
"skill_used": "tailor",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"using": [ [ "sewing_standard", 5 ] ],
"components": [ [ [ "bone", 13 ], [ "bone_human", 13 ], [ "bone_tainted", 25 ] ], [ [ "leather_harness_dog", 1 ] ] ]
@@ -93,7 +93,7 @@
"subcategory": "CSC_ANIMALS_CANINE ARMOR",
"skill_used": "tailor",
"difficulty": 4,
- "time": 75000,
+ "time": "75 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 20 ] ],
@@ -107,7 +107,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "fabrication", 1 ],
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT", "level": 1 } ],
"components": [ [ [ "duct_tape", 25 ] ], [ [ "coat_rain", 1 ] ] ]
@@ -121,7 +121,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "fabrication", 1 ],
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT", "level": 1 } ],
"components": [ [ [ "duct_tape", 50 ] ], [ [ "bag_plastic", 10 ] ], [ [ "rag", 10 ] ] ]
diff --git a/data/json/recipes/armor/storage.json b/data/json/recipes/armor/storage.json
index 8b630017a0967..4260e1575acf6 100644
--- a/data/json/recipes/armor/storage.json
+++ b/data/json/recipes/armor/storage.json
@@ -7,7 +7,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "gun", 1 ],
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SEW", "level": 1 } ],
"components": [
@@ -24,7 +24,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 8 ], [ "rag", 8 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 1, "LIST" ] ] ]
@@ -37,7 +37,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -54,7 +54,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "filament", 60, "LIST" ], [ "cordage", 3, "LIST" ] ] ]
@@ -66,7 +66,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
"difficulty": 3,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 20 ] ] ]
@@ -78,7 +78,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
"difficulty": 3,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "leather", 20 ], [ "tanned_hide", 3 ] ], [ [ "scrap", 6 ] ] ]
@@ -91,7 +91,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "melee", 1 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 } ],
@@ -105,7 +105,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ], [ "pistol", 1 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ], [ "cordage", 1 ] ],
"components": [ [ [ "leather", 8 ] ] ]
@@ -118,7 +118,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ], [ "rifle", 1 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ], [ "cordage", 1 ] ],
"components": [ [ [ "leather", 8 ] ] ]
@@ -131,7 +131,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ], [ "shotgun", 1 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ], [ "cordage", 1 ] ],
"components": [ [ [ "leather", 8 ] ] ]
@@ -144,7 +144,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ], [ "shotgun", 1 ] ],
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"using": [ [ "sewing_standard", 60 ], [ "cordage", 2 ] ],
"components": [ [ [ "leather", 14 ] ] ]
@@ -157,7 +157,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ], [ "rifle", 1 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "rag", 4 ] ], [ [ "string_6", 4 ], [ "filament", 40, "LIST" ] ] ]
@@ -168,7 +168,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "survival",
- "time": 800,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -185,7 +185,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "melee", 1 ],
- "time": 65000,
+ "time": "65 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 3 ] ], [ [ "string_6", 3 ], [ "filament", 10, "LIST" ] ] ]
@@ -198,7 +198,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "pistol", 1 ],
- "time": 75000,
+ "time": "75 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 3 ] ], [ [ "string_6", 3 ], [ "filament", 10, "LIST" ] ] ]
@@ -211,7 +211,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "archery", 1 ],
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"using": [ [ "filament", 40 ] ],
"qualities": [ { "id": "SEW", "level": 1 } ],
@@ -229,7 +229,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "melee", 1 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 } ],
@@ -243,7 +243,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 78000,
+ "time": "78 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 4 ], [ "rag", 4 ] ], [ [ "filament", 10, "LIST" ], [ "cordage_short", 1, "LIST" ] ] ]
@@ -256,7 +256,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 2 ],
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 25 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mold_plastic", -1 ] ] ],
@@ -274,7 +274,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
"difficulty": 2,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 30 ] ],
"components": [ [ [ "rag", 40 ], [ "fur", 32 ], [ "tanned_pelt", 6 ], [ "leather", 24 ], [ "tanned_hide", 6 ] ] ]
@@ -287,7 +287,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 1, "LIST" ] ] ]
@@ -300,7 +300,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "gun", 1 ], [ "launcher", 1 ] ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"tools": [ [ [ "mold_plastic", -1 ] ] ],
@@ -312,7 +312,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "survival",
- "time": 600,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "raw_leather", 50 ], [ "raw_hleather", 50 ], [ "raw_fur", 50 ] ] ],
@@ -324,7 +324,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "survival",
- "time": 600,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "raw_tainted_leather", 50 ], [ "raw_tainted_fur", 50 ] ] ],
@@ -338,7 +338,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "pistol", 1 ],
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 1, "LIST" ] ] ]
@@ -350,7 +350,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"using": [ [ "adhesive", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
@@ -362,7 +362,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ] ]
@@ -375,7 +375,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -391,7 +391,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 68000,
+ "time": "68 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 3 ], [ "rag", 3 ] ], [ [ "filament", 10, "LIST" ], [ "cordage_short", 1, "LIST" ] ] ]
@@ -404,7 +404,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 76000,
+ "time": "76 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -421,7 +421,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "fabrication", 2 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "sewing_standard", 15 ] ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mold_plastic", -1 ] ] ],
@@ -433,7 +433,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "survival",
- "time": 800,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
@@ -456,7 +456,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "survival",
- "time": 800,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "sheet", 1 ], [ "blanket", 1 ] ] ],
@@ -469,7 +469,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"using": [ [ "cordage", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -483,7 +483,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -499,7 +499,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ [ "survival", 1 ], [ "gun", 1 ] ],
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -515,7 +515,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -532,7 +532,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ [ "survival", 2 ], [ "gun", 2 ] ],
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -546,7 +546,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "rag", 6 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 1, "LIST" ] ] ]
@@ -559,7 +559,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "melee", 1 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "adhesive", 1 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 } ],
@@ -573,7 +573,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "melee", 1 ],
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 1, "LIST" ] ] ]
@@ -586,7 +586,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "pistol", 1 ],
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 2, "LIST" ] ] ]
@@ -599,7 +599,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "melee", 1 ],
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [ [ [ "felt_patch", 7 ], [ "leather", 7 ], [ "fur", 7 ] ], [ [ "filament", 20, "LIST" ], [ "cordage", 2, "LIST" ] ] ]
@@ -611,7 +611,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
"difficulty": 1,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"components": [ [ [ "straw_pile", 5 ], [ "birchbark", 7 ] ] ]
},
@@ -623,7 +623,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 6 ],
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"using": [ [ "sewing_standard", 200 ] ],
"components": [
@@ -652,7 +652,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 4 ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 120 ] ],
"components": [
@@ -681,7 +681,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 5 ],
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"using": [ [ "sewing_standard", 160 ] ],
"components": [
@@ -710,7 +710,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "fabrication", 3 ],
- "time": 70000,
+ "time": "70 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"components": [
@@ -739,7 +739,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 3 ],
- "time": 70000,
+ "time": "70 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"components": [
@@ -766,7 +766,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "survival",
- "time": 600,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "bag_canvas", 1 ] ] ],
@@ -779,7 +779,7 @@
"subcategory": "CSC_ARMOR_STORAGE",
"skill_used": "tailor",
"difficulty": 3,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "leather", 6 ], [ "tanned_hide", 1 ], [ "leather_belt", 1 ] ], [ [ "leather_pouch", 5 ] ] ]
@@ -792,7 +792,7 @@
"skill_used": "tailor",
"skills_required": [ [ "throw", 1 ] ],
"difficulty": 2,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 30 ] ],
"components": [ [ [ "fur", 32 ], [ "tanned_pelt", 6 ], [ "leather", 32 ], [ "tanned_hide", 6 ] ] ]
@@ -805,7 +805,7 @@
"skill_used": "tailor",
"skills_required": [ [ "gun", 1 ], [ "throw", 1 ] ],
"difficulty": 3,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 6 ] ] ]
diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json
index 8c88c86de97fe..de32b2adc7eb2 100644
--- a/data/json/recipes/armor/suit.json
+++ b/data/json/recipes/armor/suit.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "tailor", 1 ],
- "time": 180000,
+ "time": "180 m",
"book_learn": [ [ "tailor_portfolio", 7 ], [ "textbook_tailor", 8 ], [ "textbook_fireman", 6 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "welder", 112 ], [ "welder_crude", 168 ], [ "soldering_iron", 168 ], [ "toolset", 168 ] ] ],
@@ -21,7 +21,7 @@
"skill_used": "fabrication",
"difficulty": 8,
"skills_required": [ "tailor", 2 ],
- "time": 220000,
+ "time": "220 m",
"book_learn": [ [ "tailor_portfolio", 7 ], [ "textbook_fireman", 7 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "welder", 112 ], [ "welder_crude", 168 ], [ "soldering_iron", 168 ], [ "toolset", 168 ] ] ],
@@ -35,7 +35,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "tailor", 3 ],
- "time": 60000,
+ "time": "60 m",
"book_learn": [
[ "textbook_tailor", 4 ],
[ "tailor_portfolio", 5 ],
@@ -63,7 +63,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 7,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ] ],
"using": [ [ "cordage", 2 ] ],
@@ -77,7 +77,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ] ],
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"using": [ [ "cordage", 2 ] ],
"qualities": [ { "id": "CUT_FINE", "level": 1 }, { "id": "SEW", "level": 1 } ],
@@ -90,7 +90,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 5,
- "time": 28000,
+ "time": "28 m",
"autolearn": true,
"using": [ [ "sewing_standard", 68 ] ],
"components": [ [ [ "fur", 48 ], [ "tanned_pelt", 8 ] ] ]
@@ -103,7 +103,7 @@
"//": "Whilst the trenchcoat needs 6 skill this'll need at least 4.",
"skill_used": "tailor",
"difficulty": 5,
- "time": 28000,
+ "time": "28 m",
"autolearn": true,
"using": [ [ "sewing_standard", 52 ] ],
"components": [ [ [ "leather", 30 ], [ "tanned_hide", 5 ], [ "fur", 30 ], [ "tanned_pelt", 5 ] ] ]
@@ -115,7 +115,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 560000,
+ "time": "560 m",
"book_learn": [ [ "textbook_armwest", 7 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 400 ], [ "oxy_torch", 80 ] ] ],
@@ -132,7 +132,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"components": [ [ [ "cuirass_lightplate", 1 ] ], [ [ "armguard_lightplate", 1 ] ], [ [ "legguard_lightplate", 1 ] ] ]
},
@@ -143,7 +143,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 448000,
+ "time": "448 m",
"book_learn": [ [ "textbook_armwest", 8 ] ],
"using": [ [ "forging_standard", 5 ], [ "steel_standard", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -157,7 +157,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 5,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 90 ] ],
"components": [
@@ -176,7 +176,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 4,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 90 ] ],
"components": [
@@ -196,7 +196,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "tailor", 3 ],
- "time": 28000,
+ "time": "28 m",
"book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ], [ "textbook_armwest", 4 ], [ "textbook_armschina", 4 ] ],
"using": [ [ "sewing_standard", 26 ] ],
"components": [ [ [ "steel_chunk", 6 ], [ "scrap", 18 ] ], [ [ "armor_larmor", 1 ] ], [ [ "armguard_larmor", 1 ] ] ]
@@ -208,7 +208,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 600000,
+ "time": "600 m",
"book_learn": [ [ "textbook_armwest", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -221,7 +221,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 560000,
+ "time": "560 m",
"book_learn": [ [ "textbook_armeast", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -239,7 +239,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ "fabrication", 3 ],
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "sewing_standard", 90 ], [ "soldering_standard", 18 ] ],
"components": [
@@ -258,7 +258,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 100000,
+ "time": "100 m",
"reversible": true,
"autolearn": true,
"book_learn": [ [ "recipe_melee", 2 ] ],
@@ -273,7 +273,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "chainmail_vest", 1 ] ], [ [ "chainmail_arms", 1 ] ], [ [ "chainmail_legs", 1 ] ], [ [ "gambeson", 1 ] ] ]
@@ -285,7 +285,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -304,7 +304,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "chainmail_hood", 1 ] ], [ [ "chainmail_hauberk", 1 ] ] ]
@@ -316,7 +316,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 2,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 18 ] ],
@@ -330,7 +330,7 @@
"skill_used": "tailor",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"autolearn": true,
"book_learn": [ [ "textbook_survival", 1 ], [ "survival_book", 1 ] ],
@@ -344,7 +344,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 18 ] ],
@@ -357,7 +357,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 18 ] ],
@@ -371,7 +371,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "tailor", 6 ],
- "time": 160000,
+ "time": "160 m",
"book_learn": [ [ "textbook_fireman", 8 ], [ "tailor_portfolio", 8 ] ],
"using": [ [ "sewing_standard", 200 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -390,7 +390,7 @@
"skill_used": "tailor",
"difficulty": 8,
"skills_required": [ "fabrication", 7 ],
- "time": 320000,
+ "time": "320 m",
"autolearn": true,
"book_learn": [ [ "tailor_portfolio", 7 ], [ "textbook_fireman", 7 ] ],
"using": [ [ "sewing_standard", 200 ] ],
@@ -421,7 +421,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"book_learn": [ [ "textbook_armwest", 3 ] ],
"using": [ [ "sewing_standard", 30 ] ],
@@ -435,7 +435,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 6 ],
- "time": 300000,
+ "time": "300 m",
"autolearn": true,
"using": [ [ "sewing_standard", 200 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -465,7 +465,7 @@
"skill_used": "tailor",
"difficulty": 7,
"skills_required": [ "fabrication", 7 ],
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"using": [ [ "sewing_standard", 200 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -496,7 +496,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 2,
- "time": 48000,
+ "time": "48 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 20 ] ] ]
@@ -508,7 +508,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 2,
- "time": 86000,
+ "time": "86 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 40 ] ],
"components": [ [ [ "rag", 30 ] ] ]
@@ -521,7 +521,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "jumpsuit", 1 ] ], [ [ "rag", 10 ] ] ]
@@ -533,7 +533,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 4,
- "time": 150000,
+ "time": "150 m",
"book_learn": [ [ "tailor_japanese", 4 ] ],
"using": [ [ "sewing_standard", 35 ] ],
"components": [ [ [ "rag", 25 ] ] ]
@@ -546,7 +546,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 6 ],
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -575,7 +575,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "textbook_fireman", 6 ], [ "tailor_portfolio", 7 ] ],
"using": [ [ "sewing_standard", 40 ] ],
"components": [ [ [ "nomex", 18 ] ] ]
@@ -587,7 +587,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "electronics",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "shark_suit", 1 ] ], [ [ "cable", 50 ] ] ]
@@ -600,7 +600,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"using": [ [ "sewing_standard", 150 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -631,7 +631,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "tailor_portfolio", 4 ], [ "textbook_tailor", 3 ], [ "atomic_survival", 3 ] ],
"using": [ [ "sewing_standard", 52 ], [ "soldering_standard", 100 ] ],
"components": [ [ [ "rag", 40 ] ], [ [ "element", 18 ] ], [ [ "cable", 37 ] ] ]
@@ -645,7 +645,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "tailor_portfolio", 4 ], [ "textbook_tailor", 3 ], [ "atomic_survival", 3 ] ],
"using": [ [ "sewing_standard", 15 ], [ "soldering_standard", 10 ] ],
"components": [
@@ -664,7 +664,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "tailor", 2 ],
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "tailor_portfolio", 4 ], [ "textbook_tailor", 3 ], [ "atomic_survival", 3 ] ],
"using": [ [ "sewing_standard", 30 ], [ "soldering_standard", 60 ] ],
"components": [ [ [ "rag", 30 ], [ "union_suit", 1 ] ], [ [ "element", 12 ] ], [ [ "cable", 20 ] ] ]
@@ -675,7 +675,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
- "time": 6000,
+ "time": "6 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
@@ -689,7 +689,7 @@
"//": "OK, I sewed the shirt and pants together, and added laces to the top, so I can put the thing on.",
"skill_used": "tailor",
"difficulty": 1,
- "time": 3500,
+ "time": "3 m",
"reversible": true,
"decomp_learn": 0,
"book_learn": [ [ "mag_tailor", 0 ], [ "manual_tailor", 0 ], [ "textbook_tailor", 0 ] ],
@@ -703,7 +703,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 4,
- "time": 600000,
+ "time": "600 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 5 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 50 ] ],
"tools": [ [ [ "soldering_iron", 20 ], [ "welder", 20 ], [ "hotplate", 20 ], [ "toolset", 20 ] ] ],
@@ -716,7 +716,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 450000,
+ "time": "450 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 4 ], [ "tailor_portfolio", 3 ] ],
"using": [ [ "sewing_standard", 40 ] ],
"tools": [ [ [ "soldering_iron", 15 ], [ "welder", 15 ], [ "hotplate", 15 ], [ "toolset", 15 ] ] ],
@@ -729,7 +729,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 600000,
+ "time": "600 m",
"autolearn": true,
"using": [ [ "sewing_standard", 150 ] ],
"components": [ [ [ "felt_patch", 24 ] ] ]
@@ -742,7 +742,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 300000,
+ "time": "300 m",
"autolearn": true,
"using": [ [ "sewing_standard", 200 ] ],
"tools": [ [ [ "welder", 28 ], [ "welder_crude", 42 ], [ "soldering_iron", 42 ], [ "toolset", 42 ] ] ],
@@ -774,7 +774,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 320000,
+ "time": "320 m",
"autolearn": true,
"using": [ [ "sewing_standard", 200 ] ],
"tools": [ [ [ "welder", 56 ], [ "welder_crude", 84 ], [ "soldering_iron", 84 ], [ "toolset", 84 ] ] ],
@@ -805,7 +805,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 90000,
+ "time": "90 m",
"book_learn": [ [ "tailor_japanese", 3 ] ],
"using": [ [ "sewing_standard", 18 ] ],
"components": [ [ [ "rag", 16 ] ] ]
diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json
index 779fdb38a4034..44f373de23b8b 100644
--- a/data/json/recipes/armor/torso.json
+++ b/data/json/recipes/armor/torso.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "sewing_standard", 30 ] ],
"components": [ [ [ "leather", 18 ], [ "tanned_hide", 3 ] ] ]
@@ -18,7 +18,7 @@
"subcategory": "CSC_ARMOR_SUIT",
"skill_used": "tailor",
"difficulty": 3,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"book_learn": [ [ "textbook_armschina", 2 ] ],
"using": [ [ "sewing_standard", 68 ] ],
@@ -35,7 +35,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -47,7 +47,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "fur", 3 ] ] ]
@@ -59,7 +59,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "leather", 3 ] ] ]
@@ -71,7 +71,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 5,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"components": [ [ [ "felt_patch", 25 ] ] ]
@@ -83,7 +83,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"book_learn": [ [ "recipe_melee", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -96,7 +96,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "rag", 2 ] ], [ [ "wire", 1 ] ] ]
@@ -107,7 +107,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rag", 9 ] ] ],
@@ -119,7 +119,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "fur", 12 ] ] ],
@@ -131,7 +131,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 1500,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "leather", 12 ] ] ],
@@ -143,7 +143,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "felt_patch", 9 ] ] ],
@@ -157,7 +157,7 @@
"skill_used": "tailor",
"difficulty": 4,
"skills_required": [ "survival", 1 ],
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"book_learn": [ [ "textbook_survival", 1 ], [ "trappers_companion", 3 ], [ "survival_book", 2 ] ],
"using": [ [ "sewing_standard", 20 ] ],
@@ -170,7 +170,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 100000,
+ "time": "100 m",
"book_learn": [ [ "textbook_tailor", 4 ], [ "tailor_portfolio", 3 ], [ "recipe_fauxfur", 3 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 11 ] ], [ [ "faux_fur", 12 ] ] ]
@@ -183,7 +183,7 @@
"skill_used": "tailor",
"skills_required": [ "survival", 5 ],
"difficulty": 5,
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT", "level": 1 } ],
"book_learn": [ [ "trappers_companion", 6 ], [ "survival_book", 4 ] ],
@@ -196,7 +196,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ ],
"components": [ [ [ "duct_tape", 50 ] ], [ [ "bag_plastic", 10 ] ], [ [ "rag", 10 ] ] ]
@@ -208,7 +208,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 190000,
+ "time": "190 m",
"book_learn": [ [ "textbook_armwest", 7 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -224,7 +224,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 42000,
+ "time": "42 m",
"autolearn": true,
"using": [ [ "sewing_standard", 32 ] ],
"components": [ [ [ "rag", 24 ] ] ]
@@ -237,7 +237,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "survival", 1 ],
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"using": [ [ "sewing_standard", 60 ] ],
"components": [ [ [ "fur", 40 ], [ "tanned_pelt", 7 ] ] ]
@@ -249,7 +249,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "tailor_portfolio", 3 ], [ "recipe_fauxfur", 2 ] ],
"using": [ [ "sewing_standard", 60 ] ],
"components": [ [ [ "rag", 25 ] ], [ [ "faux_fur", 20 ] ] ]
@@ -261,7 +261,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 6,
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 4 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 60 ] ],
@@ -275,7 +275,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 5 ],
- "time": 70000,
+ "time": "70 m",
"autolearn": true,
"using": [ [ "sewing_standard", 135 ] ],
"components": [
@@ -304,7 +304,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 4,
- "time": 150000,
+ "time": "150 m",
"autolearn": true,
"using": [ [ "sewing_standard", 360 ] ],
"components": [ [ [ "leather", 56 ], [ "tanned_hide", 9 ], [ "fur", 56 ], [ "tanned_pelt", 9 ] ], [ [ "rope_6", 2 ] ] ]
@@ -316,7 +316,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 5,
- "time": 480000,
+ "time": "480 m",
"autolearn": true,
"using": [ [ "sewing_standard", 160 ] ],
"components": [ [ [ "felt_patch", 33 ] ] ]
@@ -328,7 +328,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 5,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "tailor_japanese", 5 ] ],
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "rag", 20 ] ] ]
@@ -340,7 +340,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 14 ] ],
"components": [ [ [ "rag", 12 ] ] ]
@@ -352,7 +352,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 15 ] ],
@@ -365,7 +365,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 5,
- "time": 150000,
+ "time": "150 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 4 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 30 ] ],
@@ -379,7 +379,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "fabrication", 3 ],
- "time": 96000,
+ "time": "96 m",
"autolearn": true,
"using": [ [ "sewing_standard", 30 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -392,7 +392,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "rag", 10 ] ] ]
@@ -404,7 +404,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 42000,
+ "time": "42 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "rag", 7 ] ] ]
@@ -417,7 +417,7 @@
"skill_used": "tailor",
"difficulty": 5,
"skills_required": [ "fabrication", 6 ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "sewing_standard", 60 ] ],
"tools": [ [ [ "welder", 18 ], [ "welder_crude", 27 ], [ "soldering_iron", 27 ], [ "toolset", 27 ] ] ],
@@ -446,7 +446,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -459,7 +459,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -472,7 +472,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -485,7 +485,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -498,7 +498,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -511,7 +511,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -525,7 +525,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 5,
- "time": 480000,
+ "time": "480 m",
"autolearn": true,
"using": [ [ "sewing_standard", 120 ] ],
"components": [ [ [ "felt_patch", 30 ] ] ]
@@ -537,7 +537,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 4,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "sewing_standard", 80 ] ],
"components": [ [ [ "felt_patch", 30 ] ] ]
@@ -550,7 +550,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 4,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
"components": [ [ [ "yarn", 300 ] ] ]
@@ -563,7 +563,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 3,
- "time": 35700,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 27 ] ],
"components": [ [ [ "rag", 19 ] ] ]
@@ -577,7 +577,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 2,
- "time": 21000,
+ "time": "21 m",
"autolearn": true,
"byproducts": [ [ "rag", 5 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -592,7 +592,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "survival", 1 ],
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"using": [ [ "sewing_standard", 50 ] ],
"components": [ [ [ "fur", 34 ], [ "tanned_pelt", 6 ] ] ]
@@ -605,7 +605,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 3,
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "tailor_portfolio", 3 ], [ "recipe_fauxfur", 2 ] ],
"using": [ [ "sewing_standard", 50 ] ],
"components": [ [ [ "rag", 20 ] ], [ [ "faux_fur", 12 ] ] ]
@@ -619,7 +619,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 2,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"byproducts": [ [ "fur", 6 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -634,7 +634,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 2,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"byproducts": [ [ "faux_fur", 6 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -648,7 +648,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 6,
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 4 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 50 ] ],
@@ -663,7 +663,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 5,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"byproducts": [ [ "leather", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -678,7 +678,7 @@
"//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 5,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"byproducts": [ [ "rag", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -693,7 +693,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 5 ],
- "time": 59500,
+ "time": "59 m",
"autolearn": true,
"using": [ [ "sewing_standard", 115 ] ],
"components": [
@@ -724,7 +724,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 2,
- "time": 21000,
+ "time": "21 m",
"autolearn": true,
"byproducts": [ [ "rag", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -738,7 +738,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 3,
- "time": 35700,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"components": [ [ [ "rag", 16 ] ] ]
@@ -752,7 +752,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 2,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"byproducts": [ [ "fur", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -767,7 +767,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 2,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"byproducts": [ [ "faux_fur", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -782,7 +782,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "survival", 1 ],
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"using": [ [ "sewing_standard", 38 ] ],
"components": [ [ [ "fur", 28 ], [ "tanned_pelt", 5 ] ] ]
@@ -795,7 +795,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 3,
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "tailor_portfolio", 3 ], [ "recipe_fauxfur", 2 ] ],
"using": [ [ "sewing_standard", 38 ] ],
"components": [ [ [ "rag", 10 ] ], [ [ "faux_fur", 10 ] ] ]
@@ -809,7 +809,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 5,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"byproducts": [ [ "leather", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -823,7 +823,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 6,
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 4 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 38 ] ],
@@ -838,7 +838,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 5 ],
- "time": 59500,
+ "time": "59 m",
"autolearn": true,
"using": [ [ "sewing_standard", 85 ] ],
"components": [
@@ -869,7 +869,7 @@
"//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.",
"skill_used": "tailor",
"difficulty": 5,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"byproducts": [ [ "rag", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -883,7 +883,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 21000,
+ "time": "21 m",
"autolearn": true,
"byproducts": [ [ "rag", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -896,7 +896,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 8 ] ],
"components": [ [ [ "rag", 8 ] ] ]
@@ -908,7 +908,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"book_learn": [ [ "mag_tailor", 1 ], [ "manual_tailor", 1 ], [ "mag_beauty", 1 ] ],
"using": [ [ "sewing_standard", 12 ] ],
@@ -921,7 +921,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"qualities": [ { "id": "KNIT", "level": 1 } ],
"components": [ [ [ "yarn", 600 ] ] ]
@@ -933,7 +933,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -945,7 +945,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 42000,
+ "time": "42 m",
"autolearn": true,
"using": [ [ "sewing_standard", 23 ] ],
"components": [ [ [ "rag", 18 ] ] ]
@@ -958,7 +958,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "survival", 1 ],
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"using": [ [ "sewing_standard", 45 ] ],
"components": [ [ [ "fur", 30 ], [ "tanned_pelt", 5 ] ] ]
@@ -970,7 +970,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "tailor_portfolio", 3 ], [ "recipe_fauxfur", 2 ] ],
"using": [ [ "sewing_standard", 45 ] ],
"components": [ [ [ "rag", 14 ] ], [ [ "faux_fur", 12 ] ] ]
@@ -982,7 +982,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 6,
- "time": 200000,
+ "time": "200 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 4 ], [ "tailor_portfolio", 4 ] ],
"using": [ [ "sewing_standard", 45 ] ],
@@ -996,7 +996,7 @@
"skill_used": "tailor",
"difficulty": 6,
"skills_required": [ "fabrication", 5 ],
- "time": 70000,
+ "time": "70 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"components": [
@@ -1025,7 +1025,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 38000,
+ "time": "38 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
@@ -1037,7 +1037,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"byproducts": [ [ "rag", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -1050,7 +1050,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 3,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "sewing_standard", 10 ] ],
"components": [ [ [ "rag", 10 ] ] ]
@@ -1062,7 +1062,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 15 ] ],
"components": [ [ [ "rag", 4 ] ] ]
@@ -1075,7 +1075,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 4,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "sewing_standard", 20 ] ],
@@ -1087,7 +1087,7 @@
"category": "CC_ARMOR",
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"byproducts": [ [ "leather", 5 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -1101,7 +1101,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "fabrication", 3 ],
- "time": 72000,
+ "time": "72 m",
"autolearn": true,
"using": [ [ "sewing_standard", 20 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -1114,7 +1114,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "tailor",
"difficulty": 5,
- "time": 150000,
+ "time": "150 m",
"autolearn": true,
"using": [ [ "sewing_standard", 100 ] ],
"components": [ [ [ "felt_patch", 13 ] ] ]
@@ -1126,7 +1126,7 @@
"subcategory": "CSC_ARMOR_TORSO",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 70000,
+ "time": "70 m",
"book_learn": [ [ "textbook_armwest", 6 ], [ "textbook_fabrication", 6 ], [ "recipe_melee", 6 ] ],
"using": [ [ "chainmail_standard", 7 ] ],
"components": [ [ [ "link_sheet", 7 ] ], [ [ "chain_link", 175 ] ], [ [ "wire", 1 ] ], [ [ "rag", 6 ] ] ]
diff --git a/data/json/recipes/chem/fuel.json b/data/json/recipes/chem/fuel.json
index 962fa6684d641..6ce4629bc3395 100644
--- a/data/json/recipes/chem/fuel.json
+++ b/data/json/recipes/chem/fuel.json
@@ -7,7 +7,7 @@
"subcategory": "CSC_CHEM_FUEL",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_chemistry" ], [ "brewing_cookbook", 4 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "thermometer", -1 ] ] ],
@@ -29,7 +29,7 @@
"subcategory": "CSC_CHEM_FUEL",
"skill_used": "cooking",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_chemistry" ], [ "brewing_cookbook" ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ],
"tools": [ [ [ "surface_heat", 60, "LIST" ] ] ],
@@ -51,7 +51,7 @@
"skill_used": "cooking",
"difficulty": 6,
"result_mult": 4,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_biodiesel", 5 ] ],
"batch_time_factors": [ 99, 1 ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -81,7 +81,7 @@
"subcategory": "CSC_CHEM_FUEL",
"skill_used": "cooking",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
diff --git a/data/json/recipes/chem/other.json b/data/json/recipes/chem/other.json
index 0e8d327d73c99..6a0218efe44c8 100644
--- a/data/json/recipes/chem/other.json
+++ b/data/json/recipes/chem/other.json
@@ -7,7 +7,7 @@
"skill_used": "survival",
"difficulty": 2,
"skills_required": [ "cooking", 2 ],
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 1 ], [ "textbook_survival", 1 ], [ "survival_book", 1 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -21,7 +21,7 @@
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "CHEM", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -41,5 +41,19 @@
[ "slime_scrap", 1 ]
]
]
+ },
+ {
+ "result": "rosin",
+ "type": "recipe",
+ "category": "CC_CHEM",
+ "subcategory": "CSC_CHEM_OTHER",
+ "skill_used": "cooking",
+ "difficulty": 3,
+ "time": "60 m",
+ "batch_time_factors": [ 70, 10 ],
+ "autolearn": true,
+ "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "DISTILL", "level": 1 } ],
+ "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
+ "components": [ [ [ "pine_bough", 1 ] ] ]
}
]
diff --git a/data/json/recipes/electronics/parts.json b/data/json/recipes/electronics/parts.json
index a1ffb5b8a8bd5..b07ca6b0c1883 100644
--- a/data/json/recipes/electronics/parts.json
+++ b/data/json/recipes/electronics/parts.json
@@ -7,7 +7,7 @@
"skill_used": "electronics",
"difficulty": 3,
"skills_required": [ "fabrication", 1 ],
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 3 ] ],
@@ -29,7 +29,7 @@
"skill_used": "electronics",
"difficulty": 3,
"skills_required": [ "fabrication", 1 ],
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 3 ] ],
@@ -51,7 +51,7 @@
"skill_used": "electronics",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"decomp_learn": 4,
"book_learn": [ [ "recipe_atomic_battery", 6 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -66,7 +66,7 @@
"skill_used": "electronics",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"decomp_learn": 4,
"book_learn": [ [ "recipe_atomic_battery", 6 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -81,7 +81,7 @@
"skill_used": "electronics",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"decomp_learn": 4,
"book_learn": [ [ "recipe_atomic_battery", 6 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -96,11 +96,28 @@
"skill_used": "electronics",
"difficulty": 6,
"skills_required": [ "fabrication", 6 ],
- "time": 60000,
+ "time": "60 m",
"decomp_learn": 4,
"book_learn": [ [ "recipe_atomic_battery", 6 ] ],
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 6 ] ], [ [ "cable", 4 ] ], [ [ "plut_cell", 20 ] ] ]
+ },
+ {
+ "result": "solder_wire",
+ "type": "recipe",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_PARTS",
+ "skill_used": "electronics",
+ "difficulty": 1,
+ "skills_required": [ "fabrication", 1 ],
+ "time": "60 m",
+ "batch_time_factors": [ 70, 5 ],
+ "autolearn": true,
+ "using": [ [ "surface_heat", 50 ] ],
+ "charges": 50,
+ "qualities": [ { "id": "ANVIL", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 } ],
+ "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "surface_heat", 1, "LIST" ], [ "forge", 1 ], [ "oxy_torch", 1 ] ] ],
+ "components": [ [ [ "lead", 25 ] ], [ [ "tin", 25 ] ], [ [ "rosin", 2 ] ] ]
}
]
diff --git a/data/json/recipes/electronics/toolmod.json b/data/json/recipes/electronics/toolmod.json
index f7c42f0a25874..affcf0ec78025 100644
--- a/data/json/recipes/electronics/toolmod.json
+++ b/data/json/recipes/electronics/toolmod.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -29,7 +29,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "fabrication", 7 ],
- "time": 60000,
+ "time": "60 m",
"decomp_learn": 4,
"book_learn": [ [ "recipe_atomic_battery", 7 ] ],
"using": [ [ "soldering_standard", 20 ] ],
@@ -43,7 +43,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": [ [ "electronics", 4 ], [ "mechanics", 2 ] ],
@@ -60,7 +60,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "electronics", 3 ],
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -77,7 +77,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "electronics", 3 ],
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -94,7 +94,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "electronics", 3 ],
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -111,7 +111,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ] ],
@@ -127,7 +127,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ] ],
@@ -143,7 +143,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ] ],
@@ -159,7 +159,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ] ],
diff --git a/data/json/recipes/engines.json b/data/json/recipes/engines.json
index 3be2a39313560..e2974bdeb2762 100644
--- a/data/json/recipes/engines.json
+++ b/data/json/recipes/engines.json
@@ -11,7 +11,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -30,7 +30,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -49,7 +49,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -68,7 +68,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -89,7 +89,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -108,7 +108,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -127,7 +127,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -148,7 +148,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -167,7 +167,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -188,7 +188,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
@@ -207,7 +207,7 @@
"skill_used": "mechanics",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"components": [
[ [ "drivebelt", 2 ] ],
[ [ "filter_air", 1 ] ],
diff --git a/data/json/recipes/food/brewing.json b/data/json/recipes/food/brewing.json
index 547c34f970586..78cfcfaedd8e8 100644
--- a/data/json/recipes/food/brewing.json
+++ b/data/json/recipes/food/brewing.json
@@ -8,7 +8,7 @@
"skill_used": "cooking",
"difficulty": 5,
"skills_required": [ "survival", 4 ],
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"book_learn": [ [ "survival_book", 3 ], [ "textbook_survival", 3 ], [ "manual_survival", 3 ] ],
@@ -26,7 +26,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 5 ], [ "scots_cookbook", 5 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -38,6 +38,25 @@
[ [ "yeast", 1 ] ]
]
},
+ {
+ "type": "recipe",
+ "result": "brew_gin",
+ "result_mult": 3,
+ "category": "CC_FOOD",
+ "subcategory": "CSC_FOOD_BREW",
+ "skill_used": "cooking",
+ "difficulty": 3,
+ "time": 10000,
+ "batch_time_factors": [ 50, 4 ],
+ "book_learn": [ [ "brewing_cookbook", 3 ] ],
+ "qualities": [ { "id": "COOK", "level": 2 } ],
+ "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
+ "components": [
+ [ [ "water", 2 ], [ "water_clean", 2 ] ],
+ [ [ "vodka", 4 ], [ "whiskey", 4 ], [ "hb_beer", 4 ] ],
+ [ [ "juniper", 10 ] ]
+ ]
+ },
{
"type": "recipe",
"result": "brew_vodka",
@@ -46,7 +65,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 5,
- "time": 50000,
+ "time": "50 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": [ [ "cooking", 6 ] ],
"book_learn": [ [ "brewing_cookbook", 6 ] ],
@@ -76,7 +95,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 4 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -91,7 +110,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 2,
- "time": 40000,
+ "time": "40 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 1 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -111,7 +130,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 2 ] ],
@@ -127,7 +146,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 4,
- "time": 80000,
+ "time": "80 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 4 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -147,7 +166,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 3,
- "time": 80000,
+ "time": "80 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"book_learn": [ [ "brewing_cookbook", 2 ] ],
@@ -165,7 +184,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 3,
- "time": 80000,
+ "time": "80 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [
[ "brewing_cookbook", 3 ],
@@ -190,7 +209,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 3,
- "time": 80000,
+ "time": "80 m",
"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 } ],
@@ -209,7 +228,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"components": [
diff --git a/data/json/recipes/food/distill.json b/data/json/recipes/food/distill.json
index 0c01760c41418..d9cf903a0fd04 100644
--- a/data/json/recipes/food/distill.json
+++ b/data/json/recipes/food/distill.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": [ [ "cooking", 4 ] ],
"book_learn": [ [ "brewing_cookbook", 2 ] ],
@@ -14,6 +14,22 @@
"tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ],
"components": [ [ [ "cheap_wine", 21, "LIST" ], [ "worthy_wine", 15, "LIST" ] ] ]
},
+ {
+ "result": "gin",
+ "type": "recipe",
+ "id_suffix": "from_mash",
+ "category": "CC_FOOD",
+ "subcategory": "CSC_FOOD_BREW",
+ "skill_used": "cooking",
+ "difficulty": 4,
+ "time": 30000,
+ "batch_time_factors": [ 50, 4 ],
+ "autolearn": [ [ "cooking", 4 ] ],
+ "book_learn": [ [ "brewing_cookbook", 4 ] ],
+ "qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ],
+ "tools": [ [ [ "water_boiling_heat", 21, "LIST" ] ] ],
+ "components": [ [ [ "gin_mash", 21 ] ] ]
+ },
{
"result": "vodka",
"type": "recipe",
@@ -22,7 +38,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": [ [ "cooking", 6 ] ],
"book_learn": [ [ "brewing_cookbook", 4 ] ],
@@ -37,7 +53,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 4 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ],
@@ -51,7 +67,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 4 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 2 } ],
@@ -65,7 +81,7 @@
"subcategory": "CSC_FOOD_BREW",
"skill_used": "cooking",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 4 ],
"book_learn": [ [ "brewing_cookbook", 1 ], [ "family_cookbook", 1 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ],
diff --git a/data/json/recipes/food/dry.json b/data/json/recipes/food/dry.json
index 1c723501bfbe5..dcd472b85d74d 100644
--- a/data/json/recipes/food/dry.json
+++ b/data/json/recipes/food/dry.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -19,7 +19,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -32,7 +32,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -45,7 +45,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -58,7 +58,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"batch_time_factors": [ 67, 5 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -72,7 +72,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -85,7 +85,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"batch_time_factors": [ 67, 5 ],
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -99,7 +99,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -112,7 +112,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -152,7 +152,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"batch_time_factors": [ 67, 5 ],
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -166,7 +166,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"batch_time_factors": [ 83, 3 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -181,7 +181,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 4,
- "time": 9000,
+ "time": "9 m",
"batch_time_factors": [ 83, 3 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -196,7 +196,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 1,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
"components": [ [ [ "milk", 1 ] ] ]
@@ -209,7 +209,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 12,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -222,7 +222,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"batch_time_factors": [ 83, 3 ],
"autolearn": true,
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -237,7 +237,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 4,
- "time": 9000,
+ "time": "9 m",
"batch_time_factors": [ 83, 3 ],
"autolearn": true,
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -251,7 +251,7 @@
"subcategory": "CSC_FOOD_DRY",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
diff --git a/data/json/recipes/food/frozen.json b/data/json/recipes/food/frozen.json
index c9ff4b45f16dd..88403a0c51f33 100644
--- a/data/json/recipes/food/frozen.json
+++ b/data/json/recipes/food/frozen.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
@@ -40,7 +40,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 12500,
+ "time": "12 m",
"autolearn": true,
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
"components": [
@@ -74,7 +74,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
@@ -107,7 +107,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "mag_cooking", 0 ] ],
"components": [
[ [ "water_clean", 2 ] ],
@@ -139,7 +139,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [
[ [ "icecream", 1 ], [ "icecream_artificial", 1 ] ],
@@ -153,7 +153,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [ [ [ "icecream", 1 ], [ "icecream_artificial", 1 ] ], [ [ "sweet_fruit_like", 1, "LIST" ], [ "jam_fruit", 1 ] ] ]
},
@@ -164,7 +164,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
@@ -197,7 +197,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
@@ -209,7 +209,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
@@ -226,7 +226,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_italian", 1 ] ],
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "mortar_pestle", -1 ] ], [ [ "food_processor", 10 ] ] ],
diff --git a/data/json/recipes/food/offal_dishes.json b/data/json/recipes/food/offal_dishes.json
index 7fc6701fd1131..731b7764c2af6 100644
--- a/data/json/recipes/food/offal_dishes.json
+++ b/data/json/recipes/food/offal_dishes.json
@@ -7,7 +7,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -54,7 +54,7 @@
"skill_used": "cooking",
"difficulty": 6,
"charges": 1,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "mag_cooking", 4 ], [ "mag_glam", 5 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 50, "LIST" ] ] ],
@@ -72,7 +72,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "scots_cookbook", 2 ], [ "family_cookbook", 0 ], [ "cookbook", 0 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -86,7 +86,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "family_cookbook", 2 ], [ "cookbook", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -107,7 +107,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 45, "LIST" ] ] ],
@@ -121,7 +121,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
- "time": 60000,
+ "time": "60 m",
"charges": 2,
"book_learn": [ [ "cookbook", 1 ], [ "scots_cookbook", 2 ] ],
"difficulty": 3,
@@ -159,7 +159,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
- "time": 15000,
+ "time": "15 m",
"charges": 2,
"book_learn": [ [ "cookbook", 1 ], [ "scots_cookbook", 2 ] ],
"difficulty": 3,
@@ -173,7 +173,7 @@
"category": "CC_FOOD",
"skill_used": "cooking",
"difficulty": 5,
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "cookbook", 3 ], [ "family_cookbook", 3 ] ],
"qualities": [ { "id": "COOK", "level": 3 }, { "id": "CUT", "level": 1 } ],
@@ -195,7 +195,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 25000,
+ "time": "25 m",
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "cookbook", 2 ] ],
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
@@ -215,7 +215,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 83, 5 ],
"charges": 1,
"book_learn": [ [ "cookbook", 2 ], [ "family_cookbook", 2 ] ],
@@ -239,7 +239,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "scots_cookbook", 2 ], [ "cookbook", 1 ], [ "textbook_survival", 3 ] ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -254,7 +254,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 80000,
+ "time": "80 m",
"batch_time_factors": [ 83, 5 ],
"qualities": [ { "id": "COOK", "level": 3 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 100, "LIST" ] ], [ [ "pot_canning", -1 ] ] ],
@@ -270,7 +270,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 80000,
+ "time": "80 m",
"batch_time_factors": [ 83, 5 ],
"contained": true,
"qualities": [
diff --git a/data/json/recipes/food/pasta.json b/data/json/recipes/food/pasta.json
index b223b947934c4..557267985fe5b 100644
--- a/data/json/recipes/food/pasta.json
+++ b/data/json/recipes/food/pasta.json
@@ -5,7 +5,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
@@ -21,7 +21,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
@@ -38,7 +38,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"charges": 3,
"book_learn": [ [ "cookbook_italian", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -64,7 +64,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"charges": 4,
"book_learn": [ [ "cookbook_italian", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -91,7 +91,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"charges": 4,
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -118,7 +118,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"charges": 3,
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -145,7 +145,7 @@
"skill_used": "cooking",
"difficulty": 4,
"charges": 1,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_italian", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
@@ -172,7 +172,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ],
"components": [ [ [ "flour", 9 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
@@ -184,7 +184,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ],
"components": [ [ [ "flour", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
@@ -196,7 +196,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ],
"components": [ [ [ "flour", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
@@ -208,7 +208,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 25, "LIST" ] ], [ [ "pastaextruder", -1 ] ] ],
"components": [ [ [ "flour", 5 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
@@ -221,7 +221,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
@@ -253,7 +253,7 @@
"subcategory": "CSC_FOOD_PASTA",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 1 ] ],
"qualities": [ { "id": "COOK", "level": 3 } ],
diff --git a/data/json/recipes/food/seed.json b/data/json/recipes/food/seed.json
index 55316a7eebf34..74299664aa77c 100644
--- a/data/json/recipes/food/seed.json
+++ b/data/json/recipes/food/seed.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "pumpkin", 1 ] ] ],
@@ -19,7 +19,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "cucumber", 1 ] ] ],
@@ -36,7 +36,7 @@
"flags": [ "ALLOW_ROTTEN" ]
},
{
- "result": "seed_corn",
+ "result": "seed_cattail",
"type": "recipe",
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SEEDS",
@@ -45,6 +45,19 @@
"time": 5000,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "cattail_stalk", 1 ] ] ],
+ "flags": [ "ALLOW_ROTTEN" ]
+ },
+ {
+ "result": "seed_corn",
+ "type": "recipe",
+ "category": "CC_FOOD",
+ "subcategory": "CSC_FOOD_SEEDS",
+ "skill_used": "survival",
+ "difficulty": 2,
+ "time": "5 m",
+ "autolearn": true,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "corn", 1 ] ] ],
"flags": [ "ALLOW_ROTTEN" ]
},
@@ -55,7 +68,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "zucchini", 1 ] ] ],
@@ -78,7 +91,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "tomato", 1 ] ] ],
@@ -91,7 +104,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "cranberries", 1 ] ] ],
@@ -104,7 +117,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "blackberries", 1 ] ] ],
@@ -117,7 +130,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "blueberries", 1 ] ] ],
@@ -130,7 +143,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "raspberries", 1 ] ] ],
@@ -143,7 +156,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "strawberries", 1 ] ] ],
@@ -156,7 +169,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "elderberries", 1 ] ] ],
@@ -169,7 +182,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "mulberries", 1 ] ] ],
@@ -182,7 +195,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "huckleberries", 1 ] ] ],
@@ -195,7 +208,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "grapes", 1 ] ] ],
@@ -208,7 +221,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rose_hips", 1 ] ] ],
@@ -221,7 +234,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "chili_pepper", 1 ] ] ],
@@ -244,7 +257,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "bee_balm", 1 ] ] ],
@@ -257,7 +270,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "buckwheat", 1 ] ] ],
@@ -270,7 +283,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "dogbane", 1 ] ] ],
@@ -283,7 +296,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "garlic", 1 ] ] ],
@@ -296,7 +309,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "mugwort", 1 ] ] ],
@@ -309,7 +322,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 4,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "mushroom", 1 ] ] ],
@@ -322,7 +335,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 5,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "mushroom_morel", 1 ] ] ],
@@ -335,7 +348,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [ [ [ "raw_dandelion", 4 ] ] ],
"flags": [ "ALLOW_ROTTEN" ]
@@ -347,7 +360,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rhubarb", 4 ] ] ],
@@ -360,7 +373,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "thyme", 1 ] ] ],
@@ -373,7 +386,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "veggy_wild", 1 ] ] ],
@@ -386,7 +399,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "wild_herbs", 20 ] ] ],
@@ -399,7 +412,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "potato", 1 ] ] ],
@@ -412,7 +425,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"components": [ [ [ "sunflower", 1 ] ] ],
"flags": [ "ALLOW_ROTTEN" ]
@@ -424,7 +437,7 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [ [ [ "raw_beans", 1 ] ] ],
"flags": [ "ALLOW_ROTTEN" ]
@@ -436,9 +449,21 @@
"subcategory": "CSC_FOOD_SEEDS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [ [ [ "raw_lentils", 1 ] ] ],
"flags": [ "ALLOW_ROTTEN" ]
+ },
+ {
+ "result": "seed_chamomile",
+ "type": "recipe",
+ "category": "CC_FOOD",
+ "subcategory": "CSC_FOOD_SEEDS",
+ "skill_used": "survival",
+ "difficulty": 2,
+ "time": "5 m",
+ "autolearn": true,
+ "components": [ [ [ "chamomile", 1 ] ] ],
+ "flags": [ "ALLOW_ROTTEN" ]
}
]
diff --git a/data/json/recipes/other/containers.json b/data/json/recipes/other/containers.json
index 7e94c2f56e1ea..1649a1d7dbc3a 100644
--- a/data/json/recipes/other/containers.json
+++ b/data/json/recipes/other/containers.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "cordage_short", 1 ], [ "glazing", 1 ] ],
"tools": [ [ [ "brick_kiln", 40 ], [ "kiln", 40 ] ] ],
@@ -21,7 +21,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "cordage_short", 1 ], [ "glazing", 1 ] ],
"tools": [ [ [ "brick_kiln", 60 ], [ "kiln", 60 ] ] ],
@@ -35,7 +35,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "cordage_short", 2 ], [ "glazing", 2 ] ],
"tools": [ [ [ "brick_kiln", 120 ], [ "kiln", 120 ] ] ],
@@ -49,7 +49,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"using": [ [ "cordage_short", 2 ], [ "glazing", 3 ] ],
"tools": [ [ [ "brick_kiln", 160 ], [ "kiln", 160 ] ] ],
@@ -63,7 +63,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"using": [ [ "cordage_short", 2 ], [ "glazing", 1 ] ],
"tools": [ [ [ "brick_kiln", 50 ], [ "kiln", 50 ] ] ],
@@ -76,7 +76,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 164062,
+ "time": "164 m",
"autolearn": true,
"using": [ [ "forging_standard", 8 ], [ "steel_standard", 13 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -89,7 +89,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "survival",
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "waterproofing", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 1 } ],
@@ -107,7 +107,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "survival",
"difficulty": 1,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"using": [ [ "waterproofing", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 1 } ],
@@ -117,5 +117,18 @@
[ [ "stomach_large", 1 ], [ "hstomach_large", 1 ] ],
[ [ "cordage_short", 3, "LIST" ], [ "filament", 150, "LIST" ] ]
]
+ },
+ {
+ "type": "recipe",
+ "result": "bottle_metal",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_CONTAINERS",
+ "skill_used": "fabrication",
+ "difficulty": 2,
+ "time": 90000,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
+ "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
+ "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 2 ], [ "scrap", 6 ] ] ]
}
]
diff --git a/data/json/recipes/other/materials.json b/data/json/recipes/other/materials.json
index 8424096603874..074419c019bd6 100644
--- a/data/json/recipes/other/materials.json
+++ b/data/json/recipes/other/materials.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"batch_time_factors": [ 90, 4 ],
"reversible": true,
"autolearn": true,
@@ -21,7 +21,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 90, 4 ],
"reversible": true,
"autolearn": true,
@@ -37,7 +37,7 @@
"skill_used": "cooking",
"difficulty": 4,
"book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_fabrication", 4 ], [ "welding_book", 4 ] ],
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 50, 2 ],
"tools": [ [ [ "electrolysis_kit", 100 ] ], [ [ "jar_glass", -1 ], [ "jar_3l_glass", -1 ] ] ],
"components": [ [ [ "acid", 1 ] ], [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "can_food_unsealed", 1 ] ] ]
diff --git a/data/json/recipes/other/medical.json b/data/json/recipes/other/medical.json
index db944281f6d8c..2a5ebad8e37c1 100644
--- a/data/json/recipes/other/medical.json
+++ b/data/json/recipes/other/medical.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "firstaid",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"components": [
[ [ "rag", 3 ], [ "medical_gauze", 1 ] ],
@@ -20,7 +20,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "tailor",
- "time": 150,
+ "time": "0 m",
"autolearn": true,
"charges": 1,
"components": [ [ [ "rag", 1 ] ] ]
@@ -32,7 +32,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"batch_time_factors": [ 95, 4 ],
"autolearn": true,
"components": [ [ [ "bandages_makeshift", 3 ] ], [ [ "bleach", 1 ] ], [ [ "water_clean", 3 ], [ "water", 3 ] ] ]
@@ -44,7 +44,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"batch_time_factors": [ 95, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -59,7 +59,7 @@
"skill_used": "cooking",
"difficulty": 4,
"skills_required": [ "firstaid", 2 ],
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "textbook_firstaid", 2 ], [ "manual_first_aid", 2 ], [ "emergency_book", 2 ], [ "pocket_firstaid", 2 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -72,7 +72,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "cooking",
"autolearn": true,
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "chem_ethanol", 250 ], [ "denat_alcohol", 250 ] ] ]
},
{
@@ -83,7 +83,7 @@
"skill_used": "cooking",
"difficulty": 4,
"skills_required": [ "survival", 4 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -97,7 +97,7 @@
"skill_used": "cooking",
"difficulty": 4,
"skills_required": [ "survival", 4 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -111,7 +111,7 @@
"skill_used": "survival",
"difficulty": 1,
"skills_required": [ "survival", 1 ],
- "time": 5000,
+ "time": "5 m",
"book_learn": [
[ "emergency_book", 1 ],
[ "mag_survival", 1 ],
@@ -129,7 +129,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "firstaid",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"components": [ [ [ "rag", 1 ] ], [ [ "disinfectant", 1 ] ] ]
@@ -141,7 +141,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "firstaid",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"components": [ [ [ "cotton_ball", 1 ] ], [ [ "disinfectant", 1 ] ] ]
diff --git a/data/json/recipes/other/other.json b/data/json/recipes/other/other.json
index 1615cf966abd4..ecd9e5481aeae 100644
--- a/data/json/recipes/other/other.json
+++ b/data/json/recipes/other/other.json
@@ -5,7 +5,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "survival",
- "time": 1000,
+ "time": "1 m",
"book_learn": [ [ "mag_survival", 1 ], [ "textbook_survival", 1 ], [ "survival_book", 1 ], [ "pocket_survival", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
diff --git a/data/json/recipes/other/parts.json b/data/json/recipes/other/parts.json
index b9473cc75c286..1cf3307d61cf2 100644
--- a/data/json/recipes/other/parts.json
+++ b/data/json/recipes/other/parts.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 300000,
+ "time": "300 m",
"autolearn": true,
"using": [ [ "forging_standard", 5 ], [ "steel_standard", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -20,7 +20,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "welding_standard", 10 ] ],
"components": [ [ [ "sheet_metal_small", 24 ] ] ]
@@ -32,7 +32,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "forging_standard", 1 ], [ "steel_tiny", 1 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -45,7 +45,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 6 ] ],
diff --git a/data/json/recipes/other/tool.json b/data/json/recipes/other/tool.json
index d1025212aa744..c8fade06a4224 100644
--- a/data/json/recipes/other/tool.json
+++ b/data/json/recipes/other/tool.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "survival", 4 ],
- "time": 300000,
+ "time": "300 m",
"reversible": true,
"book_learn": [ [ "mag_survival", 4 ], [ "manual_survival", 4 ], [ "textbook_survival", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -33,7 +33,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "mechanics", 3 ],
- "time": 300000,
+ "time": "300 m",
"book_learn": [ [ "manual_mechanics", 3 ], [ "manual_fabrication", 5 ], [ "textbook_fabrication", 5 ] ],
"using": [ [ "forging_standard", 10 ], [ "steel_standard", 1 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -47,7 +47,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "mechanics", 1 ],
- "time": 100000,
+ "time": "100 m",
"book_learn": [ [ "manual_mechanics", 1 ], [ "manual_fabrication", 2 ], [ "textbook_fabrication", 2 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "pipe", 4 ] ], [ [ "scrap", 2 ] ] ]
@@ -60,7 +60,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "mechanics", 2 ],
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "manual_mechanics", 2 ], [ "manual_fabrication", 3 ], [ "textbook_fabrication", 3 ] ],
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -73,7 +73,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 420000,
+ "time": "420 m",
"autolearn": true,
"book_learn": [ [ "textbook_carpentry", 5 ], [ "textbook_fabrication", 6 ] ],
"using": [ [ "forging_standard", 2 ], [ "steel_standard", 2 ] ],
@@ -89,7 +89,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 3 ],
"difficulty": 4,
- "time": 200000,
+ "time": "200 m",
"book_learn": [ [ "textbook_chemistry", 4 ], [ "brewing_cookbook", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 2 } ],
"components": [ [ [ "pot", 1 ], [ "pot_copper", 1 ] ], [ [ "hose", 2 ] ] ]
@@ -101,7 +101,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "electronics",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"using": [ [ "soldering_standard", 20 ] ],
@@ -122,7 +122,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 2 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ],
@@ -145,7 +145,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 1 ], [ "cooking", 2 ] ],
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"book_learn": [ [ "atomic_survival", 0 ], [ "textbook_survival", 0 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -158,7 +158,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 } ],
@@ -172,10 +172,49 @@
"skill_used": "survival",
"skills_required": [ "fabrication", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"book_learn": [ [ "mag_survival", 2 ], [ "textbook_survival", 1 ], [ "cookbook", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "can_food_unsealed", 2 ], [ "scrap", 4 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "hand_axe",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_TOOLS",
+ "skill_used": "survival",
+ "skills_required": [ "fabrication", 1 ],
+ "difficulty": 3,
+ "time": 54000,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "components": [ [ [ "rock", 1 ], [ "ceramic_shard", 1 ], [ "sharp_rock", 1 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "makeshift_axe",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_TOOLS",
+ "skill_used": "survival",
+ "skills_required": [ "fabrication", 1 ],
+ "difficulty": 3,
+ "time": 60000,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "components": [ [ [ "steel_chunk", 1 ], [ "steel_lump", 1 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "mess_tin",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_TOOLS",
+ "skill_used": "fabrication",
+ "difficulty": 2,
+ "time": 80000,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
+ "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
+ "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ]
}
]
diff --git a/data/json/recipes/other/vehicle.json b/data/json/recipes/other/vehicle.json
index 110f856b06908..89b720188af6d 100644
--- a/data/json/recipes/other/vehicle.json
+++ b/data/json/recipes/other/vehicle.json
@@ -7,7 +7,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 3 ],
"difficulty": 5,
- "time": 360000,
+ "time": "360 m",
"book_learn": [ [ "textbook_fabrication", 6 ], [ "textbook_mechanics", 5 ] ],
"using": [ [ "welding_standard", 10 ], [ "steel_standard", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
@@ -21,7 +21,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 2 ],
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "textbook_fabrication", 4 ], [ "textbook_mechanics", 2 ], [ "manual_mechanics", 2 ] ],
"using": [ [ "welding_standard", 5 ], [ "steel_tiny", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -35,7 +35,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 2 ],
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "welding_standard", 5 ], [ "steel_tiny", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -49,7 +49,7 @@
"skill_used": "mechanics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 2000,
+ "time": "2 m",
"book_learn": [ [ "mag_fieldrepair", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 4 ], [ "leather_belt", 1 ], [ "rope_6", 1 ] ], [ [ "duct_tape", 20 ] ] ]
@@ -62,7 +62,7 @@
"skill_used": "mechanics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 2000,
+ "time": "2 m",
"book_learn": [ [ "mag_fieldrepair", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "bottle_plastic", 1 ] ], [ [ "paper", 50 ] ], [ [ "duct_tape", 20 ] ] ]
@@ -75,7 +75,7 @@
"skill_used": "mechanics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 2000,
+ "time": "2 m",
"book_learn": [ [ "mag_fieldrepair", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -92,7 +92,7 @@
"skill_used": "mechanics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 1,
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal", 1 ], [ "steel_standard", 1, "LIST" ] ], [ [ "clockworks", 2 ], [ "lock", 1 ] ] ]
@@ -105,7 +105,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "rope_natural", 4 ], [ "welding_standard", 12 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -120,7 +120,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -134,7 +134,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "rope_natural", 2 ], [ "welding_standard", 6 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -149,7 +149,7 @@
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
"id_suffix": "repurpose_wire_basket",
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
diff --git a/data/json/recipes/recipe_ammo.json b/data/json/recipes/recipe_ammo.json
index 7a6f94fd1d9d7..ef97a3405acfc 100644
--- a/data/json/recipes/recipe_ammo.json
+++ b/data/json/recipes/recipe_ammo.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 7 ],
"difficulty": 8,
- "time": 95000,
+ "time": "95 m",
"book_learn": [ [ "recipe_lab_elec", 7 ], [ "recipe_mininuke_launch", 5 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ],
@@ -28,7 +28,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 7 ],
"difficulty": 8,
- "time": 95000,
+ "time": "95 m",
"book_learn": [ [ "recipe_lab_elec", 10 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "HAMMER", "level": 2 } ],
"components": [ [ [ "plut_cell", 1 ] ], [ [ "water", 10 ], [ "water_clean", 10 ] ] ]
@@ -41,7 +41,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 7 ],
"difficulty": 8,
- "time": 95000,
+ "time": "95 m",
"book_learn": [ [ "recipe_lab_elec", 10 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "HAMMER", "level": 2 } ],
"components": [ [ [ "plut_slurry_dense", 5 ] ], [ [ "water", 5 ], [ "water_clean", 5 ] ] ]
@@ -52,7 +52,7 @@
"category": "CC_AMMO",
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -65,7 +65,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"tools": [ [ [ "brick_kiln", 10 ], [ "kiln", 10 ], [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 1 ] ] ]
@@ -77,7 +77,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"book_learn": [ [ "glassblowing_book", 5 ] ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 25 ] ] ],
@@ -91,7 +91,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 4 ],
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 1 ] ],
"tools": [ [ [ "press", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -115,7 +115,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 1 ], [ "pocket_survival", 1 ], [ "book_archery", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -133,7 +133,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 2 ],
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 1 ], [ "book_archery", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -148,7 +148,7 @@
"skills_required": [ [ "archery", 4 ], [ "survival", 1 ] ],
"using": [ [ "forging_standard", 1 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "ANVIL", "level": 3 } ],
@@ -169,7 +169,7 @@
"skills_required": [ [ "archery", 4 ], [ "survival", 1 ] ],
"using": [ [ "forging_standard", 1 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "ANVIL", "level": 3 } ],
@@ -190,7 +190,7 @@
"skills_required": [ [ "archery", 4 ], [ "survival", 1 ] ],
"using": [ [ "forging_standard", 1 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "ANVIL", "level": 3 } ],
@@ -210,7 +210,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 3 ], [ "survival", 1 ] ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
@@ -228,7 +228,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 3 ], [ "archery", 1 ] ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "fire", -1 ] ] ],
@@ -246,7 +246,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 3 ], [ "survival", 1 ] ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 2 ], [ "pocket_survival", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
@@ -275,7 +275,7 @@
"skills_required": [ [ "survival", 1 ] ],
"using": [ [ "forging_standard", 1 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "ANVIL", "level": 3 } ],
@@ -296,7 +296,7 @@
"skills_required": [ [ "survival", 1 ] ],
"using": [ [ "forging_standard", 1 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "ANVIL", "level": 3 } ],
@@ -317,7 +317,7 @@
"skills_required": [ [ "survival", 1 ] ],
"using": [ [ "forging_standard", 1 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "ANVIL", "level": 3 } ],
@@ -337,7 +337,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
@@ -355,7 +355,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 2 ],
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 1 ], [ "book_archery", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -369,7 +369,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 3 ] ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "fire", -1 ] ] ],
@@ -387,7 +387,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 1 ], [ "pocket_survival", 1 ], [ "book_archery", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -405,7 +405,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "recipe_arrows", 2 ], [ "pocket_survival", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
@@ -433,7 +433,7 @@
"skill_used": "fabrication",
"skills_required": [ "archery", 3 ],
"difficulty": 3,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"book_learn": [ [ "recipe_arrows", 5 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -465,7 +465,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 4 ] ],
"difficulty": 4,
- "time": 7000,
+ "time": "7 m",
"reversible": true,
"decomp_learn": 6,
"note": "you just take the warhead off or put it on, rather than making the warhead",
@@ -492,7 +492,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 5 ], [ "mechanics", 3 ] ],
"difficulty": 6,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_anarch", 4 ], [ "recipe_bullets", 7 ] ],
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -517,7 +517,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "mechanics", 3 ] ],
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_arrows", 7 ], [ "textbook_anarch", 4 ], [ "recipe_bullets", 7 ] ],
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -541,7 +541,7 @@
"category": "CC_AMMO",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "broom", 1 ], [ "2x4", 1 ], [ "bee_sting", 1 ] ], [ [ "scrap", 4 ] ] ]
@@ -552,7 +552,7 @@
"category": "CC_AMMO",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "steel_chunk", 3 ], [ "scrap", 8 ] ] ]
@@ -565,7 +565,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"book_learn": [ [ "recipe_bullets", 2 ], [ "manual_shotgun", 2 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -594,7 +594,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"book_learn": [ [ "recipe_bullets", 2 ], [ "manual_shotgun", 2 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -612,7 +612,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"book_learn": [ [ "recipe_bullets", 2 ], [ "manual_shotgun", 2 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -627,7 +627,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 3 ],
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "swage", -1 ] ], [ [ "press", -1 ] ] ],
@@ -644,7 +644,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 3 ],
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "manual_pistol", 3 ], [ "recipe_bullets", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "swage", -1 ] ], [ [ "press", -1 ] ] ],
@@ -661,7 +661,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 3 ],
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "mag_rifle", 3 ], [ "recipe_bullets", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "swage", -1 ] ], [ [ "press", -1 ] ] ],
@@ -678,7 +678,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 3 ],
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "mag_rifle", 3 ], [ "recipe_bullets", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "swage", -1 ] ], [ [ "press", -1 ] ] ],
@@ -695,7 +695,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 3 ],
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "manual_shotgun", 3 ], [ "recipe_bullets", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "swage", -1 ] ], [ [ "press", -1 ] ] ],
@@ -712,7 +712,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 3 ], [ "survival", 1 ] ],
"difficulty": 5,
- "time": 56000,
+ "time": "56 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 15, "LIST" ] ] ],
@@ -730,7 +730,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 5 ],
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "recipe_lab_elec", 4 ] ],
@@ -744,7 +744,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "rebar", 2 ] ] ]
@@ -756,7 +756,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"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 ] ] ],
@@ -770,7 +770,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 1 ],
"difficulty": 2,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -783,7 +783,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "cooking",
"difficulty": 7,
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "CHEM", "level": 2 } ],
"book_learn": [
[ "textbook_gaswarfare", 8, "" ],
@@ -806,7 +806,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"book_learn": [ [ "manual_launcher", 4 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ],
"tools": [
@@ -827,7 +827,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "manual_launcher", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ],
"tools": [ [ [ "hotplate", 50 ], [ "toolset", 50 ] ] ],
@@ -840,7 +840,7 @@
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "manual_launcher", 6 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ],
"tools": [ [ [ "hotplate", 50 ], [ "toolset", 50 ] ] ],
@@ -859,7 +859,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
"difficulty": 4,
- "time": 8000,
+ "time": "8 m",
"book_learn": [ [ "textbook_gaswarfare", 4 ], [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ],
"qualities": [ { "id": "CHEM", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -873,7 +873,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"book_learn": [
[ "textbook_gaswarfare", 3 ],
[ "textbook_chemistry", 4 ],
@@ -892,7 +892,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
diff --git a/data/json/recipes/recipe_companion.json b/data/json/recipes/recipe_companion.json
index a806a67f3ec25..0810d5ff40de3 100644
--- a/data/json/recipes/recipe_companion.json
+++ b/data/json/recipes/recipe_companion.json
@@ -6,7 +6,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 300000,
+ "time": "300 m",
"autolearn": false,
"never_learn": true,
"components": [ [ [ "log", 2 ], [ "stick", 16 ], [ "splinter", 80 ] ] ]
@@ -19,7 +19,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": false,
"never_learn": true,
"using": [ [ "forging_standard", 1 ], [ "steel_standard", 6 ] ],
@@ -34,7 +34,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 52000,
+ "time": "52 m",
"autolearn": false,
"never_learn": true,
"using": [ [ "forging_standard", 1 ], [ "steel_standard", 8 ] ],
@@ -49,7 +49,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 18000,
+ "time": "18 m",
"autolearn": false,
"never_learn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 5 }, { "id": "CHISEL", "level": 3 } ],
@@ -64,7 +64,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 3000,
+ "time": "3 m",
"autolearn": false,
"never_learn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 5 }, { "id": "CHISEL", "level": 3 } ],
@@ -79,7 +79,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"autolearn": false,
"never_learn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 5 }, { "id": "CHISEL", "level": 3 } ],
@@ -94,7 +94,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 9000,
+ "time": "9 m",
"autolearn": false,
"never_learn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 5 }, { "id": "CHISEL", "level": 3 } ],
diff --git a/data/json/recipes/recipe_construction_om.json b/data/json/recipes/recipe_construction_om.json
index 5fccd2db534a6..b64d4b8168840 100644
--- a/data/json/recipes/recipe_construction_om.json
+++ b/data/json/recipes/recipe_construction_om.json
@@ -1,4 +1,17 @@
[
+ {
+ "type": "recipe",
+ "result": "faction_base_camp_0",
+ "description": "We need to survey the base site first.",
+ "category": "CC_BUILDING",
+ "subcategory": "CSC_BUILDING_BASES",
+ "skill_used": "fabrication",
+ "autolearn": false,
+ "never_learn": true,
+ "time": "60 m",
+ "construction_blueprint": "faction_base_field_camp_0",
+ "blueprint_name": "basic survey"
+ },
{
"type": "recipe",
"result": "faction_base_camp_1",
@@ -8,8 +21,11 @@
"skill_used": "fabrication",
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_1",
+ "blueprint_name": "basic northeast tent",
+ "blueprint_provides": [ { "id": "gathering" }, { "id": "primitive_camp_recipes_1" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_0" } ],
"components": [ [ [ "large_tent_kit", 1 ], [ "broketent", 4 ], [ "tent_kit", 3 ], [ "shelter_kit", 4 ] ] ]
},
{
@@ -22,8 +38,11 @@
"difficulty": 1,
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_2",
+ "blueprint_name": "basic firepit",
+ "blueprint_provides": [ { "id": "bed" }, { "id": "firewood" }, { "id": "foraging" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_1" } ],
"qualities": [ [ { "id": "DIG", "level": 1 } ], [ { "id": "HAMMER", "level": 1 } ] ],
"components": [ [ [ "2x4", 8 ] ], [ [ "straw_pile", 16 ], [ "pine_bough", 20 ] ] ]
},
@@ -37,8 +56,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_3",
+ "blueprint_name": "basic storage",
+ "blueprint_provides": [ { "id": "sorting" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_2" } ],
"qualities": [ [ { "id": "HAMMER", "level": 1 } ] ],
"components": [ [ [ "2x4", 32 ] ], [ [ "nail", 96 ] ] ]
},
@@ -52,8 +74,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 240000,
+ "time": "240 m",
"construction_blueprint": "faction_base_field_camp_4",
+ "blueprint_name": "basic northeast bed",
+ "blueprint_provides": [ { "id": "bed" }, { "id": "logging" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_3" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "2x4", 24 ] ],
@@ -73,8 +98,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 720000,
+ "time": "720 m",
"construction_blueprint": "faction_base_field_camp_5",
+ "blueprint_name": "basic northwest tent",
+ "blueprint_provides": [ { "id": "bed", "amount": 2 } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "large_tent_kit", 1 ], [ "broketent", 4 ], [ "tent_kit", 3 ], [ "shelter_kit", 4 ] ],
@@ -96,8 +124,11 @@
"autolearn": false,
"never_learn": true,
"comment": "2hrs*14wall + 1 hr crates + 2*28roof + 4hrs pits = 89 hrs (12hrs on/off) 8 days total",
- "time": 11520000,
+ "time": "11520 m",
"construction_blueprint": "faction_base_field_camp_6",
+ "blueprint_name": "basic central building",
+ "blueprint_provides": [ { "id": "relaying" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 16 ] ], [ [ "log", 112 ] ], [ [ "nail", 48 ] ], [ [ "stick", 196 ] ] ]
},
@@ -111,8 +142,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 720000,
+ "time": "720 m",
"construction_blueprint": "faction_base_field_camp_7",
+ "blueprint_name": "basic west tent",
+ "blueprint_provides": [ { "id": "bed", "amount": 2 } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "large_tent_kit", 1 ], [ "broketent", 4 ], [ "tent_kit", 3 ], [ "shelter_kit", 4 ] ],
@@ -134,9 +168,12 @@
"autolearn": false,
"never_learn": true,
"comment": "2hrs*4wall + .5 hr*2tables + .5hr*4benches+ 1hrs pits = 12 hrs (12hrs on/off) 1 days total",
- "time": 1440000,
+ "time": "1440 m",
"construction_blueprint": "faction_base_field_camp_8",
- "blueprint_provides": [ "fake_stove" ],
+ "blueprint_name": "basic central kitchen",
+ "blueprint_resources": [ "fake_stove" ],
+ "blueprint_provides": [ { "id": "trapping" }, { "id": "hunting" }, { "id": "walls" }, { "id": "recruiting" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_6" } ],
"qualities": [ [ { "id": "DIG", "level": 1 } ], [ { "id": "SAW_M", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "2x4", 28 ] ],
@@ -157,8 +194,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 720000,
+ "time": "720 m",
"construction_blueprint": "faction_base_field_camp_9",
+ "blueprint_name": "basic southeast tent",
+ "blueprint_provides": [ { "id": "bed", "amount": 2 } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "large_tent_kit", 1 ], [ "broketent", 4 ], [ "tent_kit", 3 ], [ "shelter_kit", 4 ] ],
@@ -180,8 +220,10 @@
"autolearn": false,
"never_learn": true,
"comment": "2hrs*6wall + 1 hr trash + 2*20roof + 4hrs pits = 53 hrs (12hrs on/off) 4.5 days total",
- "time": 6480000,
+ "time": "6480 m",
"construction_blueprint": "faction_base_field_camp_10",
+ "blueprint_requires": [ { "id": "faction_base_camp_8" } ],
+ "blueprint_name": "basic expanded kitchen",
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 64 ] ], [ [ "stick", 116 ] ], [ [ "sheet_metal", 2 ] ] ]
},
@@ -196,8 +238,11 @@
"autolearn": false,
"never_learn": true,
"comment": "2hrs*5wall + 1.5 hr*2door + 2hrs pits = 15 hrs (12hrs on/off) 1 days total",
- "time": 1440000,
+ "time": "1440 m",
"construction_blueprint": "faction_base_field_camp_11",
+ "blueprint_name": "basic completed central building",
+ "blueprint_provides": [ { "id": "scouting" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_10" } ],
"qualities": [ [ { "id": "DIG", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 10 ] ], [ [ "stick", 15 ] ], [ [ "2x4", 32 ] ], [ [ "nail", 72 ] ] ]
},
@@ -212,8 +257,10 @@
"autolearn": false,
"never_learn": true,
"comment": "11.5 hrs (12hrs on/off) 1 days total",
- "time": 1440000,
+ "time": "1440 m",
"construction_blueprint": "faction_base_field_camp_12",
+ "blueprint_name": "basic water well",
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "rock", 40 ] ], [ [ "pipe", 12 ] ], [ [ "2x4", 4 ] ], [ [ "well_pump", 1 ] ], [ [ "nail", 8 ] ] ]
},
@@ -228,8 +275,11 @@
"autolearn": false,
"never_learn": true,
"comment": "2hrs*30palisade + .2hrs * 72pits = 75 hrs (12hrs on/off) 6.5 days total",
- "time": 9360000,
+ "time": "9360 m",
"construction_blueprint": "faction_base_field_camp_13",
+ "blueprint_name": "basic partial wall",
+ "blueprint_provides": [ { "id": "patrolling" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "log", 90 ] ], [ [ "rope_makeshift_6", 60 ], [ "rope_6", 60 ], [ "vine_30", 30 ] ] ]
},
@@ -244,8 +294,10 @@
"autolearn": false,
"never_learn": true,
"comment": "2hrs*56palisade + .2hrs * 14pits = 115 hrs (12hrs on/off) 10 days total",
+ "time": "14400 m",
"construction_blueprint": "faction_base_field_camp_14",
- "time": 14400000,
+ "blueprint_name": "basic complete wall",
+ "blueprint_requires": [ { "id": "faction_base_camp_13" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "log", 168 ] ], [ [ "rope_makeshift_6", 112 ], [ "rope_6", 112 ], [ "vine_30", 112 ] ] ]
},
@@ -259,8 +311,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 720000,
+ "time": "720 m",
"construction_blueprint": "faction_base_field_camp_15",
+ "blueprint_name": "basic east tent",
+ "blueprint_provides": [ { "id": "bed", "amount": 2 } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "large_tent_kit", 1 ], [ "broketent", 4 ], [ "tent_kit", 3 ], [ "shelter_kit", 4 ] ],
@@ -282,8 +337,10 @@
"autolearn": false,
"never_learn": true,
"comment": "1hr stove+ .5 hr*2tables + .5hr*4benches+ .5hrs 2counter = 5 hrs ",
- "time": 370000,
+ "time": "370 m",
"construction_blueprint": "faction_base_field_camp_16",
+ "blueprint_name": "basic dining hall",
+ "blueprint_requires": [ { "id": "faction_base_camp_11" } ],
"qualities": [ [ { "id": "DIG", "level": 1 } ], [ { "id": "SAW_M", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 40 ] ], [ [ "nail", 72 ] ], [ [ "metal_tank", 1 ] ], [ [ "pipe", 1 ] ] ]
},
@@ -298,8 +355,10 @@
"autolearn": false,
"never_learn": true,
"comment": "3*7doors = 21 hrs so 2 days-ish ",
- "time": 2880000,
+ "time": "2880 m",
"construction_blueprint": "faction_base_field_camp_17",
+ "blueprint_name": "basic reinforced gates",
+ "blueprint_requires": [ { "id": "faction_base_camp_16" }, { "id": "faction_base_camp_14" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "2x4", 198 ] ], [ [ "nail", 588 ] ] ]
},
@@ -313,8 +372,11 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 720000,
+ "time": "720 m",
"construction_blueprint": "faction_base_field_camp_18",
+ "blueprint_name": "basic southwest tent",
+ "blueprint_provides": [ { "id": "bed", "amount": 2 } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "large_tent_kit", 1 ], [ "broketent", 4 ], [ "tent_kit", 3 ], [ "shelter_kit", 4 ] ],
@@ -335,8 +397,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 2880000,
+ "time": "2880 m",
"construction_blueprint": "faction_base_field_camp_19",
+ "blueprint_name": "basic radio tower",
+ "blueprint_provides": [ { "id": "recruiting" } ],
+ "blueprint_requires": [ { "id": "faction_base_camp_4" } ],
"qualities": [
{ "id": "HAMMER", "level": 2 },
{ "id": "SAW_M", "level": 1 },
@@ -368,8 +433,10 @@
"difficulty": 6,
"autolearn": false,
"never_learn": true,
- "time": 2880000,
+ "time": "2880 m",
"construction_blueprint": "faction_base_field_camp_20",
+ "blueprint_name": "basic radio console",
+ "blueprint_requires": [ { "id": "faction_base_camp_19" } ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "processor", 2 ] ],
@@ -394,7 +461,8 @@
"autolearn": false,
"never_learn": true,
"construction_blueprint": "faction_base_field_camp_farm_0",
- "time": 180000
+ "blueprint_name": "Farm survey",
+ "time": "180 m"
},
{
"type": "recipe",
@@ -405,8 +473,11 @@
"skill_used": "fabrication",
"autolearn": false,
"never_learn": true,
- "time": 540000,
+ "time": "540 m",
"construction_blueprint": "faction_base_field_camp_farm_1",
+ "blueprint_name": "Farm basic plots",
+ "blueprint_provides": [ { "id": "farming" } ],
+ "blueprint_requires": [ { "id": "faction_base_farm_0" } ],
"qualities": [ [ { "id": "DIG", "level": 1 } ] ]
},
{
@@ -419,8 +490,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 3600000,
+ "time": "3600 m",
"construction_blueprint": "faction_base_field_camp_farm_2",
+ "blueprint_name": "Farm basic shed",
+ "blueprint_requires": [ { "id": "faction_base_farm_0" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 54 ] ], [ [ "stick", 90 ] ] ]
},
@@ -434,8 +507,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 2160000,
+ "time": "2160 m",
"construction_blueprint": "faction_base_field_camp_farm_3",
+ "blueprint_name": "Farm upgraded shed",
+ "blueprint_requires": [ { "id": "faction_base_farm_0" }, { "id": "faction_base_farm_1" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 24 ] ], [ [ "stick", 36 ] ], [ [ "2x4", 16 ] ], [ [ "nail", 36 ] ] ]
},
@@ -450,8 +525,11 @@
"autolearn": false,
"never_learn": true,
"comment": "1hrs*26wall + 1.5 hr*1door + 0.5hrs*14pits + 2hrs*2window + 2hrs*20log roof + 0.5hrs*9counter + 0.5hrs*1table = 83.5 hrs (12hrs on/off) 7 days total; requires 26wall*(2log+3stick+6 2x4 ) + 1door*(16 2x4+36nail) + 2windows*(15 2x4+30nail+2log+glass) + 20roof*(2log+4stick+8 2x4) + 1table*(8nail+6 2x4) + 9counter*(8nail+6 2x4)",
- "time": 10080000,
+ "time": "10080 m",
"construction_blueprint": "faction_base_field_camp_farm_4",
+ "blueprint_name": "Farm processing shack",
+ "blueprint_provides": [ { "id": "reseeding" }, { "id": "farm_recipes_1" } ],
+ "blueprint_requires": [ { "id": "faction_base_farm_3" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 96 ] ], [ [ "stick", 158 ] ], [ [ "2x4", 336 ] ], [ [ "nail", 176 ] ], [ [ "glass_sheet", 2 ] ] ]
},
@@ -464,8 +542,9 @@
"skill_used": "fabrication",
"autolearn": false,
"construction_blueprint": "faction_base_field_camp_garage_0",
+ "blueprint_name": "Garage survey",
"never_learn": true,
- "time": 180000
+ "time": "180 m"
},
{
"type": "recipe",
@@ -478,8 +557,11 @@
"autolearn": false,
"never_learn": true,
"construction_blueprint": "faction_base_field_camp_garage_1",
- "blueprint_provides": [ "wrench", "hacksaw" ],
- "time": 5040000,
+ "blueprint_name": "Garage tool rack",
+ "blueprint_provides": [ { "id": "dismantling" } ],
+ "blueprint_requires": [ { "id": "faction_base_garage_0" } ],
+ "blueprint_resources": [ "wrench", "hacksaw" ],
+ "time": "5040 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [
[ [ "log", 72 ] ],
@@ -503,7 +585,9 @@
"autolearn": false,
"never_learn": true,
"construction_blueprint": "faction_base_field_camp_garage_2",
- "time": 4320000,
+ "blueprint_name": "Garage partial roof",
+ "blueprint_requires": [ { "id": "faction_base_garage_1" } ],
+ "time": "4320 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 68 ] ], [ [ "stick", 60 ] ], [ [ "2x4", 112 ] ] ]
},
@@ -517,8 +601,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 10080000,
+ "time": "10080 m",
"construction_blueprint": "faction_base_field_camp_garage_3",
+ "blueprint_name": "Garage completed roof",
+ "blueprint_requires": [ { "id": "faction_base_garage_2" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 112 ] ], [ [ "2x4", 448 ] ] ]
},
@@ -532,8 +618,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 4320000,
+ "time": "4320 m",
"construction_blueprint": "faction_base_field_camp_garage_4",
+ "blueprint_name": "Garage partial expansion",
+ "blueprint_requires": [ { "id": "faction_base_garage_3" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 65 ] ], [ [ "stick", 96 ] ] ]
},
@@ -547,8 +635,10 @@
"difficulty": 5,
"autolearn": false,
"never_learn": true,
- "time": 11520000,
+ "time": "11520 m",
"construction_blueprint": "faction_base_field_camp_garage_5",
+ "blueprint_name": "Garage expanded roof",
+ "blueprint_requires": [ { "id": "faction_base_garage_4" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [
[ [ "log", 124 ] ],
@@ -569,8 +659,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 2880000,
+ "time": "2880 m",
"construction_blueprint": "faction_base_field_camp_garage_6",
+ "blueprint_name": "Garage mechanics quarters",
+ "blueprint_requires": [ { "id": "faction_base_garage_5" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ],
"components": [
[ [ "log", 95 ] ],
@@ -592,7 +684,8 @@
"autolearn": false,
"never_learn": true,
"construction_blueprint": "faction_base_field_camp_kitchen_0",
- "time": 180000
+ "blueprint_name": "Kitchen survey",
+ "time": "180 m"
},
{
"type": "recipe",
@@ -604,9 +697,12 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
+ "time": "7200 m",
"construction_blueprint": "faction_base_field_camp_kitchen_1",
- "blueprint_provides": [ "fake_fireplace" ],
- "time": 7200000,
+ "blueprint_name": "Kitchen fireplace shack",
+ "blueprint_provides": [ { "id": "kitchen" }, { "id": "kitchen_recipes_1" } ],
+ "blueprint_requires": [ { "id": "faction_base_kitchen_0" } ],
+ "blueprint_resources": [ "fake_fireplace" ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "pot", 1 ], [ "rock_pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ] ],
@@ -627,8 +723,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 3600000,
+ "time": "3600 m",
"construction_blueprint": "faction_base_field_camp_kitchen_2",
+ "blueprint_name": "Kitchen finished shack",
+ "blueprint_requires": [ { "id": "faction_base_kitchen_1" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "makeshift_knife", 1 ], [ "knife_steak", 1 ], [ "primitive_knife", 1 ], [ "copper_knife", 1 ] ],
@@ -649,9 +747,12 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 3600000,
+ "time": "3600 m",
"construction_blueprint": "faction_base_field_camp_kitchen_3",
- "blueprint_provides": [ "fake_char_smoker" ],
+ "blueprint_name": "Kitchen charcoal smoker",
+ "blueprint_provides": [ { "id": "kitchen_recipes_2" } ],
+ "blueprint_requires": [ { "id": "faction_base_kitchen_2" } ],
+ "blueprint_resources": [ "fake_char_smoker" ],
"qualities": [
[ { "id": "DIG", "level": 2 } ],
[ { "id": "HAMMER", "level": 2 } ],
@@ -677,8 +778,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 9360000,
+ "time": "9360 m",
"construction_blueprint": "faction_base_field_camp_kitchen_4",
+ "blueprint_name": "Kitchen pantry expansion",
+ "blueprint_provides": [ { "id": "pantry" } ],
+ "blueprint_requires": [ { "id": "faction_base_kitchen_3" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "pot", 1 ], [ "rock_pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ] ],
@@ -699,9 +803,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 360000,
+ "time": "360 m",
"construction_blueprint": "faction_base_field_camp_kitchen_5",
- "blueprint_provides": [ "fake_fireplace", "fake_char_smoker", "fake_char_smoker" ],
+ "blueprint_name": "Kitchen more smoking racks",
+ "blueprint_resources": [ "fake_fireplace", "fake_char_smoker", "fake_char_smoker" ],
+ "blueprint_requires": [ { "id": "faction_base_kitchen_4" } ],
"qualities": [
[ { "id": "DIG", "level": 2 } ],
[ { "id": "HAMMER", "level": 2 } ],
@@ -721,8 +827,10 @@
"difficulty": 5,
"autolearn": false,
"never_learn": true,
- "time": 1440000,
+ "time": "1440 m",
"construction_blueprint": "faction_base_field_camp_kitchen_6",
+ "blueprint_name": "Kitchen water well",
+ "blueprint_requires": [ { "id": "faction_base_kitchen_5" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "pot", 1 ], [ "rock_pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ] ],
@@ -744,9 +852,12 @@
"difficulty": 5,
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_kitchen_7",
- "blueprint_provides": [ "fake_stove", "fake_stove" ],
+ "blueprint_name": "Kitchen wood stoves",
+ "blueprint_provides": [ { "id": "kitchen_recipes_3" } ],
+ "blueprint_resources": [ "fake_stove", "fake_stove" ],
+ "blueprint_requires": [ { "id": "faction_base_kitchen_6" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "pipe", 2 ] ], [ [ "2x4", 20 ] ], [ [ "metal_tank", 2 ] ], [ [ "nail", 18 ] ] ]
},
@@ -760,8 +871,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 3600000,
+ "time": "3600 m",
"construction_blueprint": "faction_base_field_camp_kitchen_8",
+ "blueprint_name": "Kitchen expanded pantry",
+ "blueprint_requires": [ { "id": "faction_base_kitchen_7" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 40 ] ], [ [ "stick", 30 ] ], [ [ "2x4", 135 ] ], [ [ "nail", 150 ] ], [ [ "glass_sheet", 1 ] ] ]
},
@@ -775,7 +888,7 @@
"difficulty": 1,
"autolearn": false,
"never_learn": true,
- "time": 510000,
+ "time": "510 m",
"qualities": [ [ { "id": "DIG", "level": 1 } ] ],
"components": [ [ [ "stick", 3 ] ] ]
},
@@ -789,7 +902,7 @@
"difficulty": 2,
"autolearn": false,
"never_learn": true,
- "time": 1530000,
+ "time": "1530 m",
"qualities": [ [ { "id": "DIG", "level": 2 } ] ],
"components": [ [ [ "pointy_stick", 68 ] ] ]
},
@@ -803,7 +916,8 @@
"autolearn": false,
"never_learn": true,
"construction_blueprint": "faction_base_field_camp_blacksmith_0",
- "time": 180000
+ "blueprint_name": "Blacksmithy survey",
+ "time": "180 m"
},
{
"type": "recipe",
@@ -815,9 +929,12 @@
"difficulty": 5,
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_1",
- "blueprint_provides": [ "fake_rforge", "fake_char_kiln", "makeshift_hammer" ],
+ "blueprint_name": "Blacksmithy forge and kiln",
+ "blueprint_provides": [ { "id": "blacksmith" }, { "id": "blacksmith_recipes_1" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_0" } ],
+ "blueprint_resources": [ "fake_rforge", "fake_char_kiln", "makeshift_hammer" ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "crucible", 1 ], [ "crucible_clay", 1 ] ],
@@ -835,8 +952,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 10080000,
+ "time": "10080 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_2",
+ "blueprint_name": "Blacksmithy roof",
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_1" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 136 ] ], [ [ "stick", 72 ] ], [ [ "2x4", 352 ] ] ]
},
@@ -850,9 +969,12 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_3",
- "blueprint_provides": [ "anvil", "crucible" ],
+ "blueprint_name": "Blacksmithy anvil and workbench",
+ "blueprint_provides": [ { "id": "blacksmith_recipes_2" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_2" } ],
+ "blueprint_resources": [ "anvil", "crucible" ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "crucible", 1 ], [ "crucible_clay", 1 ] ],
@@ -872,8 +994,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 8640000,
+ "time": "8640 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_4",
+ "blueprint_name": "Blacksmithy expanded shop",
+ "blueprint_provides": [ { "id": "blacksmith_recipes_3" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_3" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "log", 108 ] ], [ [ "stick", 36 ] ], [ [ "2x4", 342 ] ], [ [ "nail", 8 ] ] ]
},
@@ -887,9 +1012,12 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 180000,
+ "time": "180 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_5",
- "blueprint_provides": [ "tongs", "chisel", "hammer", "swage" ],
+ "blueprint_name": "Blacksmithy forging tools",
+ "blueprint_provides": [ { "id": "blacksmith_recipes_4" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_4" } ],
+ "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "tongs", 2 ] ],
@@ -911,8 +1039,10 @@
"difficulty": 5,
"autolearn": false,
"never_learn": true,
- "time": 480000,
+ "time": "480 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_6",
+ "blueprint_name": "Blacksmithy expanded forge",
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_5" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
"components": [ [ [ "hammer", 1 ] ], [ [ "2x4", 16 ] ], [ [ "nail", 48 ] ], [ [ "rock", 120 ] ] ]
},
@@ -926,8 +1056,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
+ "time": "1440 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_7",
- "time": 1440000,
+ "blueprint_name": "Blacksmithy bellows and quenching barrels",
+ "blueprint_provides": [ { "id": "blacksmith_recipes_5" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_6" } ],
"qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ],
"components": [
[ [ "2x4", 40 ] ],
@@ -951,8 +1084,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 10080000,
+ "time": "10080 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_8",
+ "blueprint_name": "Blacksmithy machine shop",
+ "blueprint_provides": [ { "id": "blacksmith_recipes_6" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_7" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "hammer_sledge", 1 ] ],
@@ -974,9 +1110,11 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 360000,
+ "time": "360 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_9",
- "blueprint_provides": [ "wrench", "pliers" ],
+ "blueprint_name": "Blacksmithy machine shop tools",
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_8" } ],
+ "blueprint_resources": [ "wrench", "pliers" ],
"qualities": [ [ { "id": "WRENCH", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "wrench", 2 ] ],
@@ -999,8 +1137,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 8640000,
+ "time": "8640 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_10",
+ "blueprint_name": "Blacksmithy machine shop expansion",
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_9" } ],
"qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "hammer_sledge", 1 ] ], [ [ "log", 104 ] ], [ [ "stick", 54 ] ], [ [ "2x4", 272 ] ] ]
},
@@ -1014,8 +1154,10 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 1440000,
+ "time": "1440 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_11",
+ "blueprint_name": "Blacksmithy well",
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_10" } ],
"qualities": [ [ { "id": "WRENCH", "level": 1 } ], [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [ [ [ "well_pump", 1 ] ], [ [ "pipe", 6 ] ], [ [ "2x4", 16 ] ], [ [ "nail", 24 ] ], [ [ "rock", 40 ] ] ]
},
@@ -1029,9 +1171,12 @@
"difficulty": 4,
"autolearn": false,
"never_learn": true,
- "time": 4320000,
+ "time": "4320 m",
"construction_blueprint": "faction_base_field_camp_blacksmith_12",
- "blueprint_provides": [ "fake_drop_hammer" ],
+ "blueprint_name": "Blacksmithy drop hammer",
+ "blueprint_provides": [ { "id": "blacksmith_recipes_7" } ],
+ "blueprint_requires": [ { "id": "faction_base_blacksmith_11" } ],
+ "blueprint_resources": [ "fake_drop_hammer" ],
"qualities": [ [ { "id": "WRENCH", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
"components": [
[ [ "log", 2 ] ],
diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json
index 1d6f05a77a388..3f060f786e37a 100644
--- a/data/json/recipes/recipe_deconstruction.json
+++ b/data/json/recipes/recipe_deconstruction.json
@@ -2,69 +2,69 @@
{
"result": "alarmclock",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 4 ] ], [ [ "clockworks", 2 ] ] ]
},
{
"result": "badge_cybercop",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 20 ] ] ]
},
{
"result": "badge_deputy",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 20 ] ] ]
},
{
"result": "badge_detective",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 20 ] ] ]
},
{
"result": "badge_marshal",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 20 ] ] ]
},
{
"result": "badge_swat",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 20 ] ] ]
},
{
"result": "baseball",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "leather", 2 ] ], [ [ "string_6", 2 ] ] ]
},
{
"result": "battletorch_done",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"components": [ [ [ "bat", 1 ] ], [ [ "nomex", 5 ] ] ]
},
{
"result": "bindle",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "rag", 4 ] ], [ [ "stick", 1 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "binoculars",
"type": "uncraft",
- "time": 1200,
+ "time": "1 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "lens", 2 ] ], [ [ "plastic_chunk", 2 ] ], [ [ "scrap", 1 ] ] ]
},
@@ -74,7 +74,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -85,7 +85,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -96,7 +96,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -107,7 +107,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -118,7 +118,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -129,7 +129,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -140,7 +140,7 @@
"skill_used": "electronics",
"difficulty": 7,
"skills_required": [ "firstaid", 5 ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "burnt_out_bionic", 1 ] ] ]
@@ -148,7 +148,7 @@
{
"result": "blade",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 3 ] ] ]
},
@@ -156,21 +156,21 @@
"result": "boots_steel",
"type": "uncraft",
"skill_used": "tailor",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "leather", 8 ] ], [ [ "scrap", 2 ] ] ]
},
{
"result": "bowl_pewter",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "tin", 100 ] ] ]
},
{
"result": "box_cigarette",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "paper", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -179,36 +179,57 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "RAM", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_c4_hack",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "RAM", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_copbot",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "omni_wheel", 1 ] ],
+ [ [ "copbot_chassis", 1 ] ],
+ [ [ "android_arms", 1 ] ],
[ [ "power_supply", 4 ] ],
[ [ "solar_cell", 2 ] ],
- [ [ "motor", 1 ] ],
- [ [ "tazer", 1 ] ],
- [ [ "e_scrap", 3 ] ],
- [ [ "steel_chunk", 12 ] ]
+ [ [ "tazer", 1 ] ]
]
},
{
@@ -216,7 +237,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
@@ -233,86 +254,149 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"using": [ [ "soldering_standard", 3 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "lens", 1 ] ], [ [ "e_scrap", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "lens", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_flashbang_hack",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "RAM", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_gasbomb_hack",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "RAM", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_grenade_hack",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "RAM", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_manhack",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "spike", 2 ] ], [ [ "processor", 1 ] ], [ [ "RAM", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "spike", 2 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_mininuke_hack",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 5,
- "time": 4000,
+ "time": "4 m",
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 2 ] ], [ [ "RAM", 2 ] ], [ [ "scrap", 2 ] ] ]
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
},
{
"result": "broken_molebot",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 3,
- "time": 180000,
+ "time": "180 m",
"using": [ [ "welding_standard", 6 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
- "components": [ [ [ "power_supply", 4 ] ], [ [ "motor", 1 ] ], [ [ "steel_chunk", 20 ] ] ]
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "medium_storage_battery", 1 ] ],
+ [ [ "motor", 1 ] ],
+ [ [ "steel_chunk", 20 ] ]
+ ]
},
{
"result": "broken_riotbot",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "omni_wheel", 1 ] ],
+ [ [ "copbot_chassis", 1 ] ],
+ [ [ "android_arms", 1 ] ],
[ [ "power_supply", 4 ] ],
[ [ "solar_cell", 2 ] ],
- [ [ "motor", 1 ] ],
- [ [ "canister_empty", 1 ] ],
- [ [ "e_scrap", 3 ] ],
- [ [ "steel_chunk", 12 ] ]
+ [ [ "canister_empty", 1 ] ]
]
},
{
@@ -320,28 +404,43 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "power_supply", 1 ] ], [ [ "tazer", 2 ] ], [ [ "e_scrap", 2 ] ], [ [ "scrap", 4 ] ] ]
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "spidery_legs_small", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "tazer", 2 ] ],
+ [ [ "scrap", 4 ] ]
+ ]
},
{
"result": "broken_science_bot",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "medium_storage_battery", 1 ] ],
+ [ [ "spidery_legs_small", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
[ [ "power_supply", 3 ] ],
[ [ "geiger_off", 1 ] ],
[ [ "tazer", 2 ] ],
- [ [ "e_scrap", 4 ] ],
- [ [ "solder_wire", 10 ] ],
- [ [ "cable", 4 ] ],
[ [ "scrap", 6 ] ],
- [ [ "motor", 1 ] ],
[ [ "plut_cell", 1 ] ],
[ [ "steel_chunk", 6 ] ]
]
@@ -351,20 +450,26 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 8,
- "time": 600000,
+ "time": "600 m",
"using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "tank_tread", 1 ] ],
+ [ [ "tankbot_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "gun_module", 3 ] ],
[ [ "flamethrower", 1 ] ],
[ [ "tazer", 1 ] ],
[ [ "m4a1", 1 ] ],
- [ [ "motor_large", 1 ] ],
[ [ "power_supply", 20 ] ],
+ [ [ "storage_battery", 1 ] ],
[ [ "plut_cell", 4 ] ],
- [ [ "RAM", 2 ] ],
- [ [ "steel_chunk", 15 ] ],
- [ [ "mil_plate", 2 ] ],
- [ [ "robot_controls", 1 ] ]
+ [ [ "mil_plate", 2 ] ]
]
},
{
@@ -372,193 +477,363 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 8,
- "time": 300000,
+ "time": "300 m",
"using": [ [ "soldering_standard", 10 ], [ "welding_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "spidery_legs_big", 1 ] ],
+ [ [ "tripod_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "gun_module", 1 ] ],
[ [ "power_supply", 12 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "flamethrower", 1 ] ],
- [ [ "wire", 4 ] ],
- [ [ "motor", 2 ] ],
- [ [ "steel_chunk", 60 ] ]
+ [ [ "storage_battery", 1 ] ],
+ [ [ "flamethrower", 1 ] ]
]
},
{
- "result": "bot_copbot",
+ "result": "broken_nursebot",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 6,
- "time": 150000,
+ "time": "150 m",
"using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
- [ [ "power_supply", 4 ] ],
- [ [ "solar_cell", 2 ] ],
- [ [ "motor", 1 ] ],
- [ [ "tazer", 1 ] ],
- [ [ "e_scrap", 3 ] ],
- [ [ "steel_chunk", 12 ] ]
+ [ [ "ai_module_advanced", 1 ] ],
+ [ [ "self_monitoring_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "android_legs", 1 ] ],
+ [ [ "android_chassis", 1 ] ],
+ [ [ "android_arms", 2 ] ],
+ [ [ "medium_storage_battery", 1 ] ]
]
},
{
- "result": "bot_eyebot",
+ "result": "broken_nursebot_defective",
"type": "uncraft",
"skill_used": "electronics",
- "difficulty": 2,
- "time": 37500,
- "using": [ [ "soldering_standard", 3 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "processor", 1 ] ], [ [ "lens", 1 ] ], [ [ "e_scrap", 1 ] ], [ [ "scrap", 1 ] ] ]
+ "difficulty": 6,
+ "time": "150 m",
+ "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [
+ [ [ "ai_module_advanced", 1 ] ],
+ [ [ "self_monitoring_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "android_legs", 1 ] ],
+ [ [ "android_chassis", 1 ] ],
+ [ [ "android_arms", 2 ] ],
+ [ [ "medium_storage_battery", 1 ] ]
+ ]
},
{
- "result": "bot_molebot",
+ "result": "broken_dispatch",
"type": "uncraft",
"skill_used": "electronics",
- "difficulty": 3,
- "time": 225000,
- "using": [ [ "welding_standard", 6 ] ],
- "qualities": [ { "id": "SAW_M", "level": 1 } ],
- "components": [ [ [ "power_supply", 4 ] ], [ [ "motor", 1 ] ], [ [ "steel_chunk", 20 ] ] ]
+ "difficulty": 5,
+ "time": "60 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "tank_tread", 1 ] ],
+ [ [ "tankbot_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "power_supply", 3 ] ],
+ [ [ "plut_cell", 1 ] ],
+ [ [ "broken_manhack", 4 ] ],
+ [ [ "omnicamera", 1 ] ],
+ [ [ "storage_battery", 1 ] ]
+ ]
},
{
- "result": "bot_riotbot",
+ "result": "broken_dispatch_military",
"type": "uncraft",
"skill_used": "electronics",
- "difficulty": 6,
- "time": 150000,
- "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "difficulty": 5,
+ "time": "60 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
- [ [ "power_supply", 4 ] ],
- [ [ "solar_cell", 2 ] ],
- [ [ "motor", 1 ] ],
- [ [ "canister_empty", 1 ] ],
- [ [ "e_scrap", 3 ] ],
- [ [ "steel_chunk", 12 ] ]
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "tank_tread", 1 ] ],
+ [ [ "tankbot_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "power_supply", 3 ] ],
+ [ [ "plut_cell", 1 ] ],
+ [ [ "broken_manhack", 4 ] ],
+ [ [ "omnicamera", 1 ] ],
+ [ [ "storage_battery", 1 ] ]
]
},
{
- "result": "bot_skitterbot",
+ "result": "targeting_module",
"type": "uncraft",
"skill_used": "electronics",
- "difficulty": 3,
- "time": 75000,
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "power_supply", 1 ] ], [ [ "tazer", 2 ] ], [ [ "e_scrap", 2 ] ], [ [ "scrap", 4 ] ] ]
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "components": [ [ [ "processor", 4 ] ], [ [ "power_supply", 1 ] ], [ [ "e_scrap", 6 ] ], [ [ "solder_wire", 1 ] ] ]
},
{
- "result": "bot_science_bot",
+ "result": "identification_module",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 5,
- "time": 150000,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "components": [ [ [ "processor", 4 ] ], [ [ "power_supply", 1 ] ], [ [ "e_scrap", 6 ] ], [ [ "solder_wire", 1 ] ] ]
+ },
+ {
+ "result": "pathfinding_module",
+ "type": "uncraft",
+ "skill_used": "electronics",
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "components": [ [ [ "processor", 4 ] ], [ [ "power_supply", 1 ] ], [ [ "e_scrap", 6 ] ], [ [ "solder_wire", 1 ] ] ]
+ },
+ {
+ "result": "memory_module",
+ "type": "uncraft",
+ "skill_used": "electronics",
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "components": [ [ [ "processor", 4 ] ], [ [ "RAM", 10 ] ], [ [ "power_supply", 1 ] ], [ [ "e_scrap", 6 ] ], [ [ "solder_wire", 1 ] ] ]
+ },
+ {
+ "result": "sensor_module",
+ "type": "uncraft",
+ "skill_used": "electronics",
+ "difficulty": 5,
+ "time": "300 m",
"using": [ [ "soldering_standard", 20 ] ],
- "qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [
- [ [ "power_supply", 3 ] ],
- [ [ "geiger_off", 1 ] ],
- [ [ "tazer", 2 ] ],
- [ [ "e_scrap", 4 ] ],
- [ [ "solder_wire", 10 ] ],
+ [ [ "processor", 4 ] ],
+ [ [ "lens", 2 ] ],
+ [ [ "lens_small", 2 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "e_scrap", 6 ] ],
+ [ [ "solder_wire", 1 ] ]
+ ]
+ },
+ {
+ "result": "self_monitoring_module",
+ "type": "uncraft",
+ "skill_used": "electronics",
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "components": [
+ [ [ "processor", 4 ] ],
+ [ [ "power_supply", 1 ] ],
[ [ "cable", 4 ] ],
- [ [ "scrap", 6 ] ],
- [ [ "motor", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "steel_chunk", 6 ] ]
+ [ [ "e_scrap", 6 ] ],
+ [ [ "solder_wire", 1 ] ]
]
},
{
- "result": "bot_tankbot",
+ "result": "ai_module",
"type": "uncraft",
"skill_used": "electronics",
- "difficulty": 8,
- "time": 750000,
- "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
"components": [
- [ [ "flamethrower", 1 ] ],
- [ [ "tazer", 1 ] ],
- [ [ "m4a1", 1 ] ],
- [ [ "motor_large", 1 ] ],
- [ [ "power_supply", 20 ] ],
- [ [ "plut_cell", 4 ] ],
+ [ [ "processor", 10 ] ],
[ [ "RAM", 2 ] ],
- [ [ "steel_chunk", 15 ] ],
- [ [ "mil_plate", 2 ] ],
- [ [ "robot_controls", 1 ] ]
+ [ [ "power_supply", 1 ] ],
+ [ [ "cable", 4 ] ],
+ [ [ "e_scrap", 6 ] ],
+ [ [ "solder_wire", 1 ] ]
]
},
{
- "result": "bot_tripod",
+ "result": "ai_module_basic",
"type": "uncraft",
"skill_used": "electronics",
- "difficulty": 8,
- "time": 375000,
- "using": [ [ "soldering_standard", 10 ], [ "welding_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 20 ] ],
"components": [
- [ [ "power_supply", 12 ] ],
- [ [ "processor", 1 ] ],
+ [ [ "processor", 5 ] ],
[ [ "RAM", 1 ] ],
- [ [ "flamethrower", 1 ] ],
- [ [ "wire", 4 ] ],
- [ [ "motor", 2 ] ],
- [ [ "steel_chunk", 60 ] ]
+ [ [ "power_supply", 1 ] ],
+ [ [ "cable", 2 ] ],
+ [ [ "e_scrap", 3 ] ],
+ [ [ "solder_wire", 1 ] ]
]
},
{
- "result": "broken_dispatch",
+ "result": "ai_module_advanced",
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 5,
- "time": 60000,
+ "time": "300 m",
"using": [ [ "soldering_standard", 20 ] ],
- "qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
- [ [ "power_supply", 3 ] ],
+ [ [ "processor", 15 ] ],
+ [ [ "RAM", 6 ] ],
+ [ [ "power_supply", 2 ] ],
+ [ [ "cable", 4 ] ],
[ [ "e_scrap", 6 ] ],
- [ [ "solder_wire", 50 ] ],
- [ [ "cable", 20 ] ],
+ [ [ "solder_wire", 1 ] ]
+ ]
+ },
+ {
+ "result": "gun_module",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 5,
+ "time": "300 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [
+ [ [ "motor_micro", 6 ] ],
+ [ [ "power_supply", 2 ] ],
+ [ [ "cable", 2 ] ],
[ [ "scrap", 6 ] ],
- [ [ "motor", 1 ] ],
- [ [ "wire", 9 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "steel_chunk", 6 ] ],
- [ [ "broken_manhack", 4 ] ],
- [ [ "omnicamera", 1 ] ],
- [ [ "robot_controls", 1 ] ]
+ [ [ "steel_chunk", 1 ] ]
]
},
{
- "result": "broken_dispatch_military",
+ "result": "spidery_legs_big",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 4,
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [
+ [ [ "motor_small", 24 ] ],
+ [ [ "power_supply", 8 ] ],
+ [ [ "cable", 16 ] ],
+ [ [ "scrap", 6 ] ],
+ [ [ "steel_chunk", 8 ] ]
+ ]
+ },
+ {
+ "result": "spidery_legs_small",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 4,
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW_FINE", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [ [ [ "motor_tiny", 24 ] ], [ [ "power_supply", 8 ] ], [ [ "cable", 16 ] ], [ [ "scrap", 14 ] ] ]
+ },
+ {
+ "result": "reverse_jointed_legs",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 4,
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [ [ [ "motor_small", 6 ] ], [ [ "power_supply", 6 ] ], [ [ "cable", 12 ] ], [ [ "steel_chunk", 6 ] ] ]
+ },
+ {
+ "result": "omni_wheel",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 4,
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [
+ [ [ "motor_small", 3 ] ],
+ [ [ "power_supply", 3 ] ],
+ [ [ "cable", 6 ] ],
+ [ [ "plastic_chunk", 6 ] ],
+ [ [ "steel_chunk", 2 ] ]
+ ]
+ },
+ {
+ "result": "quad_rotors",
"type": "uncraft",
"skill_used": "electronics",
+ "difficulty": 4,
+ "time": "200 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW_FINE", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [
+ [ [ "motor_micro", 4 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "cable", 2 ] ],
+ [ [ "plastic_chunk", 4 ] ],
+ [ [ "scrap", 1 ] ]
+ ]
+ },
+ {
+ "result": "android_legs",
+ "type": "uncraft",
+ "skill_used": "mechanics",
"difficulty": 5,
- "time": 60000,
- "using": [ [ "soldering_standard", 20 ] ],
- "qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [
- [ [ "power_supply", 3 ] ],
- [ [ "e_scrap", 6 ] ],
- [ [ "solder_wire", 60 ] ],
- [ [ "cable", 35 ] ],
- [ [ "scrap", 6 ] ],
- [ [ "motor_large", 1 ] ],
- [ [ "wire", 9 ] ],
- [ [ "plut_cell", 2 ] ],
- [ [ "steel_chunk", 6 ] ],
- [ [ "broken_manhack", 7 ] ],
- [ [ "omnicamera", 1 ] ],
- [ [ "robot_controls", 1 ] ]
+ [ [ "motor_tiny", 4 ] ],
+ [ [ "motor_micro", 10 ] ],
+ [ [ "power_supply", 6 ] ],
+ [ [ "cable", 12 ] ],
+ [ [ "steel_chunk", 4 ] ],
+ [ [ "plastic_chunk", 4 ] ],
+ [ [ "scrap", 5 ] ]
+ ]
+ },
+ {
+ "result": "android_arms",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 5,
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
+ "components": [
+ [ [ "motor_tiny", 4 ] ],
+ [ [ "motor_micro", 10 ] ],
+ [ [ "power_supply", 6 ] ],
+ [ [ "cable", 12 ] ],
+ [ [ "steel_chunk", 2 ] ],
+ [ [ "plastic_chunk", 2 ] ],
+ [ [ "scrap", 5 ] ]
]
},
+ {
+ "result": "tank_tread",
+ "type": "uncraft",
+ "skill_used": "mechanics",
+ "difficulty": 4,
+ "time": "400 m",
+ "using": [ [ "soldering_standard", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "components": [ [ [ "motor", 2 ] ], [ [ "power_supply", 6 ] ], [ [ "cable", 4 ] ], [ [ "steel_lump", 6 ] ], [ [ "steel_chunk", 6 ] ] ]
+ },
{
"result": "cable",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "copper", 1 ] ] ],
"flags": [ "UNCRAFT_SINGLE_CHARGE" ]
@@ -566,28 +841,28 @@
{
"result": "camera",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 2 ] ], [ [ "processor", 1 ] ], [ [ "plastic_chunk", 5 ] ], [ [ "e_scrap", 2 ] ], [ [ "lens", 1 ] ] ]
},
{
"result": "camera_pro",
"type": "uncraft",
- "time": 1200,
+ "time": "1 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 5 ] ], [ [ "processor", 1 ] ], [ [ "plastic_chunk", 10 ] ], [ [ "e_scrap", 8 ] ], [ [ "lens", 2 ] ] ]
},
{
"result": "candlestick",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "gold_small", 300 ] ] ]
},
{
"result": "cannabis",
"type": "uncraft",
- "time": 5000,
+ "time": "5 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "weed", 20 ] ], [ [ "plant_fibre", 100 ] ], [ [ "withered", 1 ] ] ],
"flags": [ "BLIND_HARD" ]
@@ -595,73 +870,73 @@
{
"result": "cell_phone",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "small_lcd_screen", 1 ] ], [ [ "RAM", 1 ] ], [ [ "processor", 1 ] ] ]
},
{
"result": "smart_phone",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "small_lcd_screen", 1 ] ], [ [ "RAM", 1 ] ], [ [ "processor", 1 ] ], [ [ "lens_small", 1 ] ] ]
},
{
"result": "ceramic_bowl",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"components": [ [ [ "ceramic_shard", 1 ] ] ]
},
{
"result": "ceramic_cup",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"components": [ [ [ "ceramic_shard", 1 ] ] ]
},
{
"result": "ceramic_plate",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"components": [ [ [ "ceramic_shard", 1 ] ] ]
},
{
"result": "char_purifier",
"type": "uncraft",
- "time": 10000,
+ "time": "10 m",
"components": [ [ [ "jug_plastic", 1 ] ], [ [ "rag", 4 ] ] ]
},
{
"result": "clock",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 3 ] ], [ [ "clockworks", 2 ] ] ]
},
{
"result": "copper_bracelet",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "copper", 43 ] ] ]
},
{
"result": "copper_ear",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "copper", 25 ] ] ]
},
{
"result": "creepy_doll",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 2 ] ], [ [ "rag", 2 ] ], [ [ "RAM", 1 ] ], [ [ "e_scrap", 2 ] ] ]
},
{
"result": "crown_golden",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 200 ] ] ]
},
@@ -673,7 +948,7 @@
{
"result": "cu_pipe",
"type": "uncraft",
- "time": 1200,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "copper", 200 ] ] ]
@@ -681,35 +956,35 @@
{
"result": "diamond_dental_grill",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 2 ] ], [ [ "diamond", 1 ] ] ]
},
{
"result": "diamond_ring",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 2 ] ], [ [ "diamond", 1 ] ] ]
},
{
"result": "down_blanket",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 35 ] ], [ [ "down_feather", 160 ] ] ]
},
{
"result": "down_pillow",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 6 ] ], [ [ "down_feather", 40 ] ] ]
},
{
"result": "eink_tablet_pc",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "RAM", 1 ] ], [ [ "processor", 1 ] ], [ [ "plastic_chunk", 2 ] ], [ [ "e_scrap", 2 ] ] ]
},
@@ -718,108 +993,108 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "scrap", 3 ] ], [ [ "hose", 1 ] ], [ [ "jerrycan_big", 1 ] ] ]
},
{
"result": "fan",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 3 ] ], [ [ "motor_micro", 1 ] ], [ [ "cable", 2 ] ] ]
},
{
"result": "fancy_sunglasses",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "glass_tinted", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "felt_patch",
"type": "uncraft",
- "time": 6000,
+ "time": "6 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "yarn", 50 ] ] ]
},
{
"result": "file",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "paper", 3 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "fitover_sunglasses",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "glass_tinted", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "flyer",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "paper", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "scorecard",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "paper", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "foon",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ] ]
},
{
"result": "football",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "leather", 4 ] ], [ [ "string_6", 3 ] ] ]
},
{
"result": "fork",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ] ]
},
{
"result": "glass",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "glass_shard", 1 ] ] ]
},
{
"result": "glass_bowl",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "glass_shard", 1 ] ] ]
},
{
"result": "glass_plate",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "glass_shard", 1 ] ] ]
},
{
"result": "glass_sheet",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"components": [ [ [ "glass_shard", 12 ] ] ]
},
{
"result": "gobag",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"components": [
[ [ "duffelbag", 1 ] ],
[ [ "backpack", 1 ] ],
@@ -853,28 +1128,28 @@
{
"result": "gold_bracelet",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 8 ] ] ]
},
{
"result": "gold_dental_grill",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 2 ] ] ]
},
{
"result": "gold_ear",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 2 ] ] ]
},
{
"result": "gold_watch",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "gold_small", 12 ] ], [ [ "clockworks", 1 ] ] ]
},
@@ -883,7 +1158,7 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 750000,
+ "time": "750 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"tools": [ [ [ "welder", 500 ], [ "toolset", 750 ] ] ],
"components": [ [ [ "steel_plate", 10 ] ], [ [ "steel_lump", 70 ] ] ]
@@ -893,7 +1168,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "cable", 12 ] ], [ [ "amplifier", 2 ] ], [ [ "material_aluminium_ingot", 1 ] ] ]
},
@@ -902,7 +1177,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "e_scrap", 4 ] ], [ [ "amplifier", 2 ] ], [ [ "scrap", 4 ] ] ]
},
@@ -911,7 +1186,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "e_scrap", 2 ] ], [ [ "amplifier", 1 ] ], [ [ "scrap", 2 ] ] ]
},
@@ -920,20 +1195,20 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"components": [ [ [ "charcoal", 200 ] ], [ [ "char_kiln", 1 ] ] ]
},
{
"result": "knife_steak",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"components": [ [ [ "spike", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "l_HFPack",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "l_long_45", 1 ] ],
[ [ "l_enforcer_45", 1 ] ],
@@ -941,13 +1216,14 @@
[ [ "light_battery_cell", 3 ] ],
[ [ "manual_gun", 1 ] ],
[ [ "holster", 1 ] ]
- ]
+ ],
+ "flags": [ "BLIND_EASY", "FULL_MAGAZINE" ]
},
{
"result": "laptop",
"type": "uncraft",
"skill_used": "electronics",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "processor", 1 ] ],
@@ -962,14 +1238,14 @@
{
"result": "basket_laundry",
"type": "uncraft",
- "time": 5000,
+ "time": "5 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "plastic_chunk", 20 ] ] ]
},
{
"result": "lawnmower",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "WRENCH", "level": 1 } ],
"components": [
[ [ "scrap", 8 ] ],
@@ -983,13 +1259,13 @@
{
"result": "lighter",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "pilot_light", 1 ] ], [ [ "plastic_chunk", 1 ] ] ]
},
{
"result": "locket",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 10 ] ] ]
},
@@ -997,28 +1273,28 @@
"result": "makeshift_crowbar",
"type": "uncraft",
"skill_used": "mechanics",
- "time": 5000,
+ "time": "5 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "scrap", 3 ] ], [ [ "steel_chunk", 1 ] ] ]
},
{
"result": "makeshift_sling",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "sheet", 1 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "many_years_old_newspaper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "material_shrd_limestone",
"type": "uncraft",
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ],
"components": [ [ [ "material_limestone", 10 ] ] ]
@@ -1027,7 +1303,7 @@
"result": "mess_kit",
"type": "uncraft",
"skill_used": "electronics",
- "time": 10000,
+ "time": "10 m",
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "element", 3 ] ], [ [ "amplifier", 1 ] ], [ [ "scrap", 6 ] ], [ [ "plastic_chunk", 1 ] ], [ [ "cable", 8 ] ] ]
@@ -1036,7 +1312,7 @@
"result": "microwave",
"type": "uncraft",
"skill_used": "electronics",
- "time": 80000,
+ "time": "80 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "processor", 1 ] ],
@@ -1051,28 +1327,28 @@
"result": "mil_mess_kit",
"type": "uncraft",
"skill_used": "electronics",
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "element", 3 ] ], [ [ "amplifier", 1 ] ], [ [ "cable", 8 ] ] ]
},
{
"result": "militarymap",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "money_bundle",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "months_old_newspaper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1081,7 +1357,7 @@
"type": "uncraft",
"skill_used": "mechanics",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"using": [ [ "soldering_standard", 40 ], [ "welding_standard", 3 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "amplifier", 2 ] ], [ [ "cable", 20 ] ], [ [ "bearing", 20 ] ], [ [ "steel_chunk", 3 ] ] ]
@@ -1091,7 +1367,7 @@
"type": "uncraft",
"skill_used": "mechanics",
"difficulty": 6,
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 50 ], [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [
@@ -1106,7 +1382,7 @@
"result": "multi_cooker",
"type": "uncraft",
"skill_used": "electronics",
- "time": 90000,
+ "time": "90 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "processor", 1 ] ],
@@ -1123,21 +1399,21 @@
{
"result": "necklace",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 10 ] ] ]
},
{
"result": "newest_newspaper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "one_year_old_newspaper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1146,7 +1422,7 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "scrap", 5 ] ], [ [ "cu_pipe", 1 ] ], [ [ "pilot_light", 1 ] ], [ [ "rag", 5 ] ], [ [ "metal_tank_little", 2 ] ] ]
},
@@ -1155,14 +1431,14 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ], [ [ "metal_tank_little", 1 ] ] ]
},
{
"result": "pillow",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 4 ] ], [ [ "cotton_ball", 8 ] ] ]
},
@@ -1170,14 +1446,14 @@
"result": "pipe",
"type": "uncraft",
"skill_used": "mechanics",
- "time": 5000,
+ "time": "5 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "scrap", 7 ] ] ]
},
{
"result": "pocketwatch",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "gold_small", 3 ] ], [ [ "clockworks", 1 ] ] ]
},
@@ -1186,7 +1462,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "plastic_chunk", 8 ] ], [ [ "motor_small", 1 ] ], [ [ "scrap", 4 ] ] ]
@@ -1196,7 +1472,7 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 7500,
+ "time": "7 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "scrap_copper", 5 ] ], [ [ "scrap", 1 ] ] ]
},
@@ -1206,7 +1482,7 @@
"skill_used": "fabrication",
"difficulty": 7,
"skills_required": [ "electronics", 5 ],
- "time": 80000,
+ "time": "80 m",
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ],
"components": [
@@ -1224,7 +1500,7 @@
"skill_used": "fabrication",
"difficulty": 8,
"skills_required": [ "electronics", 4 ],
- "time": 80000,
+ "time": "80 m",
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ],
"components": [
@@ -1241,7 +1517,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"using": [ [ "soldering_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "e_scrap", 3 ] ], [ [ "plastic_chunk", 1 ] ] ]
@@ -1250,7 +1526,7 @@
"result": "radio_car",
"type": "uncraft",
"skill_used": "electronics",
- "time": 7000,
+ "time": "7 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "antenna", 1 ] ],
@@ -1265,55 +1541,55 @@
{
"result": "radio_car_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "radio_car", 1 ] ], [ [ "radiocontrol", 1 ] ], [ [ "light_battery_cell", 2 ] ] ]
},
{
"result": "radiocontrol",
"type": "uncraft",
"skill_used": "electronics",
- "time": 3000,
+ "time": "3 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "antenna", 1 ] ], [ [ "e_scrap", 2 ] ], [ [ "transponder", 1 ] ], [ [ "plastic_chunk", 1 ] ] ]
},
{
"result": "rag",
"type": "uncraft",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "thread", 80 ] ] ]
},
{
"result": "stick_fiber",
"type": "uncraft",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "plant_fibre", 80 ] ] ]
},
{
"result": "ref_lighter",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "pilot_light", 1 ] ], [ [ "scrap", 1 ] ] ]
},
{
"result": "restaurantmap",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "ring",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "gold_small", 2 ] ] ]
},
{
"result": "roadmap",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1322,7 +1598,7 @@
"type": "uncraft",
"skill_used": "mechanics",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"decomp_learn": 3,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "pipe", 4 ] ], [ [ "scrap", 12 ] ], [ [ "wire", 2 ] ], [ [ "cable", 8 ] ] ]
@@ -1332,7 +1608,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 8,
- "time": 60000,
+ "time": "60 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "motor_tiny", 3 ] ], [ [ "processor", 3 ] ], [ [ "RAM", 2 ] ], [ [ "plastic_chunk", 2 ] ] ]
@@ -1340,14 +1616,14 @@
{
"result": "scythe",
"type": "uncraft",
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "blade_scythe", 1 ] ], [ [ "stick_long", 1 ] ] ]
},
{
"result": "seat",
"type": "uncraft",
- "time": 5000,
+ "time": "5 m",
"using": [ [ "welding_standard", 6 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "pipe", 4 ] ], [ [ "spring", 2 ] ], [ [ "leather", 12 ] ] ]
@@ -1355,21 +1631,21 @@
{
"result": "sf_watch",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "gold_small", 5 ] ], [ [ "silver_small", 12 ] ], [ [ "clockworks", 1 ] ] ]
},
{
"result": "silver_bracelet",
"type": "uncraft",
- "time": 600,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 10 ] ] ]
},
{
"result": "silver_ear",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 3 ] ] ]
},
@@ -1378,14 +1654,14 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ], [ [ "metal_tank_little", 1 ] ] ]
},
{
"result": "small_relic",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 20 ] ] ]
},
@@ -1394,98 +1670,98 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "plastic_chunk", 2 ] ], [ [ "canister_empty", 1 ] ] ]
},
{
"result": "spoon",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ] ]
},
{
"result": "spork",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ] ]
},
{
"result": "spring",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 7 ] ] ]
},
{
"result": "stick_long",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 2 ] ] ]
},
{
"result": "straw_basket",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"components": [ [ [ "straw_pile", 4 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "straw_doll",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"components": [ [ [ "straw_pile", 1 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "straw_fedora",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "straw_pile", 5 ] ] ]
},
{
"result": "straw_hat",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"components": [ [ [ "straw_pile", 2 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "straw_sandals",
"type": "uncraft",
- "time": 2000,
+ "time": "2 m",
"components": [ [ [ "straw_pile", 2 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "sunglasses",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "glass_tinted", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "survivormap",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "survnote",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "paper", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "talking_doll",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 2 ] ], [ [ "rag", 2 ] ], [ [ "RAM", 1 ] ], [ [ "e_scrap", 2 ] ] ]
},
@@ -1493,7 +1769,7 @@
"result": "tank_top",
"type": "uncraft",
"skill_used": "tailor",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "rag", 4 ] ] ],
"flags": [ "BLIND_HARD" ]
},
@@ -1501,7 +1777,7 @@
"result": "television",
"type": "uncraft",
"skill_used": "electronics",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "processor", 1 ] ],
@@ -1515,21 +1791,21 @@
{
"result": "thyme",
"type": "uncraft",
- "time": 1000,
+ "time": "1 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "wild_herbs", 10 ] ] ]
},
{
"result": "tieclip",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "silver_small", 4 ] ] ]
},
{
"result": "tin_plate",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "tin", 100 ] ] ]
},
@@ -1537,14 +1813,14 @@
"result": "toaster",
"type": "uncraft",
"skill_used": "electronics",
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "cable", 2 ] ], [ [ "power_supply", 1 ] ], [ [ "scrap", 2 ] ], [ [ "element", 4 ] ] ]
},
{
"result": "touristmap",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1552,21 +1828,21 @@
"result": "tshirt",
"type": "uncraft",
"skill_used": "tailor",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "rag", 5 ] ] ],
"flags": [ "BLIND_HARD" ]
},
{
"result": "usb_drive",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "RAM", 1 ] ] ]
},
{
"result": "vac_sealer",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 4 ] ], [ [ "element", 2 ] ], [ [ "hose", 1 ] ], [ [ "power_supply", 1 ] ] ]
},
@@ -1576,42 +1852,42 @@
"skill_used": "electronics",
"difficulty": 3,
"skills_required": [ "fabrication", 2 ],
- "time": 5400,
+ "time": "5 m",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "e_scrap", 1 ] ], [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ]
},
{
"result": "weeks_old_newspaper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "wire",
"type": "uncraft",
- "time": 1500,
+ "time": "1 m",
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ] ]
},
{
"result": "wrapper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "wristwatch",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "plastic_chunk", 1 ] ], [ [ "processor", 1 ] ], [ [ "light_minus_battery_cell", 1 ] ] ]
},
{
"result": "years_old_newspaper",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1620,7 +1896,7 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 9000,
+ "time": "9 m",
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1, "amount": 1 }, { "id": "HAMMER", "level": 3, "amount": 1 } ],
"components": [ [ [ "scrap", 4 ] ], [ [ "cable", 2 ] ], [ [ "pot", 1 ] ], [ [ "e_scrap", 1 ] ], [ [ "motor_micro", 1 ] ] ]
@@ -1628,7 +1904,7 @@
{
"result": "box_small",
"type": "uncraft",
- "time": 2050,
+ "time": "2 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "paper", 35 ] ] ]
},
@@ -1636,7 +1912,7 @@
"result": "washing_machine",
"type": "uncraft",
"skill_used": "electronics",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"components": [
[ [ "cable", 8 ] ],
@@ -1657,7 +1933,7 @@
"skill_used": "electronics",
"difficulty": 8,
"skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 35 ], [ "welding_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 } ],
"components": [
@@ -1679,7 +1955,7 @@
"skill_used": "electronics",
"difficulty": 8,
"skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 35 ], [ "welding_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 } ],
"components": [
@@ -1701,7 +1977,7 @@
"skill_used": "electronics",
"difficulty": 10,
"skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 35 ], [ "welding_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 } ],
"components": [
@@ -1723,7 +1999,7 @@
"skill_used": "electronics",
"difficulty": 10,
"skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ],
- "time": 50000,
+ "time": "50 m",
"using": [ [ "soldering_standard", 35 ], [ "welding_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 } ],
"components": [
@@ -1765,7 +2041,7 @@
{
"result": "1st_aid",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [
[ [ "medical_tape", 20 ] ],
[ [ "aspirin", 10 ] ],
@@ -1780,21 +2056,21 @@
{
"result": "garlic",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "garlic_clove", 6 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "leaf_spring",
"type": "uncraft",
- "time": 3000,
+ "time": "3 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "steel_lump", 4 ] ] ]
},
{
"result": "styrofoam_cup",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ], [ [ "plastic_chunk", 2 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1803,7 +2079,7 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 4000,
+ "time": "4 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 20 ], [ "steel_chunk", 2 ] ] ]
},
@@ -1812,21 +2088,21 @@
"type": "uncraft",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 800,
+ "time": "0 m",
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "scrap", 7 ] ], [ [ "steel_chunk", 1 ] ], [ [ "platinum_small", 8 ] ], [ [ "pipe", 2 ] ] ]
},
{
"result": "fluid_preserved_brain",
"type": "uncraft",
- "time": 100,
+ "time": "0 m",
"components": [ [ [ "chem_formaldehyde", 10 ] ], [ [ "human_brain_embalmed", 5 ] ], [ [ "jar_3l_glass", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "trailmap",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [ [ [ "paper", 10 ] ] ],
"flags": [ "BLIND_EASY" ]
},
@@ -1836,7 +2112,7 @@
"skill_used": "electronics",
"difficulty": 4,
"skills_required": [ "cooking", 1 ],
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"using": [ [ "soldering_standard", 20 ] ],
"components": [
@@ -1854,7 +2130,7 @@
"result": "melting_point",
"type": "uncraft",
"skill_used": "electronics",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"using": [ [ "soldering_standard", 5 ] ],
"components": [
@@ -1870,7 +2146,7 @@
"result": "vortex",
"type": "uncraft",
"skill_used": "electronics",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"using": [ [ "soldering_standard", 5 ] ],
"components": [
@@ -1886,7 +2162,7 @@
"result": "ph_meter",
"type": "uncraft",
"skill_used": "electronics",
- "time": 5000,
+ "time": "5 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "voltmeter", 1 ] ], [ [ "glass_tube_small", 2 ] ] ]
},
@@ -1894,7 +2170,7 @@
"result": "voltmeter",
"type": "uncraft",
"skill_used": "electronics",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 2 ] ], [ [ "amplifier", 1 ] ], [ [ "cable", 6 ] ], [ [ "plastic_chunk", 4 ] ], [ [ "e_scrap", 3 ] ] ]
},
@@ -1902,7 +2178,7 @@
"result": "microscope",
"type": "uncraft",
"skill_used": "fabrication",
- "time": 45000,
+ "time": "45 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "steel_lump", 2 ] ],
@@ -1919,7 +2195,7 @@
"result": "microscope_dissecting",
"type": "uncraft",
"skill_used": "fabrication",
- "time": 45000,
+ "time": "45 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "steel_lump", 2 ] ],
@@ -1936,7 +2212,7 @@
"result": "microcentrifuge",
"type": "uncraft",
"skill_used": "fabrication",
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"using": [ [ "soldering_standard", 15 ] ],
"components": [
@@ -1952,7 +2228,7 @@
"result": "gelbox",
"type": "uncraft",
"skill_used": "fabrication",
- "time": 40000,
+ "time": "40 m",
"qualities": [ { "id": "SCREW", "level": 1 } ],
"using": [ [ "soldering_standard", 10 ] ],
"components": [
@@ -1968,7 +2244,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 8,
- "time": 40000,
+ "time": "40 m",
"decomp_learn": [ [ "electronics", 3 ], [ "fabrication", 1 ] ],
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1979,7 +2255,7 @@
"type": "uncraft",
"skill_used": "electronics",
"difficulty": 8,
- "time": 120000,
+ "time": "120 m",
"decomp_learn": [ [ "electronics", 3 ], [ "fabrication", 2 ] ],
"using": [ [ "soldering_standard", 80 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1989,9 +2265,18 @@
"result": "electric_blanket",
"type": "uncraft",
"skill_used": "tailor",
- "time": 30000,
+ "time": "30 m",
"difficulty": 1,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 25 ] ], [ [ "element", 5 ] ], [ [ "cable", 5 ] ] ]
+ },
+ {
+ "result": "adobe_pallet_done",
+ "type": "uncraft",
+ "skill_used": "fabrication",
+ "time": 1000,
+ "difficulty": 1,
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "components": [ [ [ "adobe_brick", 20 ] ], [ [ "frame_wood_light", 1 ] ] ]
}
]
diff --git a/data/json/recipes/recipe_deconstruction_package.json b/data/json/recipes/recipe_deconstruction_package.json
index 46b42d91a557b..3cfeeff72448d 100644
--- a/data/json/recipes/recipe_deconstruction_package.json
+++ b/data/json/recipes/recipe_deconstruction_package.json
@@ -2,7 +2,7 @@
{
"result": "mre_accessory",
"type": "uncraft",
- "time": 60,
+ "time": "0 m",
"components": [
[ [ "pur_tablets", 6 ] ],
[ [ "gummy_vitamins", 1 ] ],
@@ -20,14 +20,14 @@
{
"result": "mre_dessert",
"type": "uncraft",
- "time": 60,
+ "time": "0 m",
"components": [ [ [ "dry_fruit", 1 ] ], [ [ "chocolate", 1 ] ], [ [ "candy2", 2 ] ], [ [ "cookies", 1 ] ], [ [ "bag_plastic", 1 ] ] ],
"flags": [ "BLIND_EASY" ]
},
{
"result": "mre_chilibeans_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_chilibeans", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -42,7 +42,7 @@
{
"result": "mre_bbqbeef_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_bbqbeef", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -57,7 +57,7 @@
{
"result": "mre_chickennoodle_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_chickennoodle", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -72,7 +72,7 @@
{
"result": "mre_spaghetti_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_spaghetti", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -87,7 +87,7 @@
{
"result": "mre_chicken_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_chicken", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -102,7 +102,7 @@
{
"result": "mre_beeftaco_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_beeftaco", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -117,7 +117,7 @@
{
"result": "mre_beef_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_beef", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -132,7 +132,7 @@
{
"result": "mre_meatball_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_meatball", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -147,7 +147,7 @@
{
"result": "mre_beefstew_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_beefstew", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -162,7 +162,7 @@
{
"result": "mre_chilimac_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_chilimac", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -177,7 +177,7 @@
{
"result": "mre_veggy_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_veggy", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -192,7 +192,7 @@
{
"result": "mre_macaronimarinara_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_macaronimarinara", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -207,7 +207,7 @@
{
"result": "mre_cheesetort_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_cheesetort", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -222,7 +222,7 @@
{
"result": "mre_mushroomfettuccine_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_mushroomfettuccine", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -237,7 +237,7 @@
{
"result": "mre_mexicanchickenstew_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_mexicanchickenstew", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -252,7 +252,7 @@
{
"result": "mre_chickenburritobowl_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_chickenburritobowl", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -267,7 +267,7 @@
{
"result": "mre_maplesausage_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_maplesausage", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -282,7 +282,7 @@
{
"result": "mre_ravioli_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_ravioli", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -297,7 +297,7 @@
{
"result": "mre_pepperjackbeef_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_pepperjackbeef", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -312,7 +312,7 @@
{
"result": "mre_hashbrownbacon_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_hashbrownbacon", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -327,7 +327,7 @@
{
"result": "mre_lemontuna_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_lemontuna", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -342,7 +342,7 @@
{
"result": "mre_asianbeef_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_asianbeef", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -357,7 +357,7 @@
{
"result": "mre_chickenpesto_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_chickenpesto", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -372,7 +372,7 @@
{
"result": "mre_southwestbeef_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_southwestbeef", 4 ] ],
[ [ "crackers", 2 ] ],
@@ -387,7 +387,7 @@
{
"result": "mre_hotdog_box",
"type": "uncraft",
- "time": 500,
+ "time": "0 m",
"components": [
[ [ "mre_hotdog", 4 ] ],
[ [ "crackers", 2 ] ],
diff --git a/data/json/recipes/recipe_electronics.json b/data/json/recipes/recipe_electronics.json
index 10c617a068c62..7dfaeb47a1f69 100644
--- a/data/json/recipes/recipe_electronics.json
+++ b/data/json/recipes/recipe_electronics.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 3 ] ],
@@ -31,7 +31,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 3 ] ],
@@ -55,7 +55,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 5,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "advanced_electronics", 4 ], [ "textbook_electronics", 4 ] ],
@@ -80,7 +80,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 5,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"book_learn": [ [ "advanced_electronics", 4 ], [ "textbook_electronics", 4 ], [ "textbook_carpentry", 5 ] ],
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
@@ -101,7 +101,7 @@
"category": "CC_ELECTRONIC",
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
- "time": 3000,
+ "time": "3 m",
"book_learn": [ [ "radio_book", 1 ], [ "textbook_anarch", 1 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "steel_chunk", 1 ], [ "scrap", 3 ], [ "knife_butter", 2 ] ] ]
@@ -113,7 +113,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 4,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "radio_book", 3 ], [ "textbook_anarch", 5 ] ],
@@ -127,7 +127,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 1,
- "time": 4000,
+ "time": "4 m",
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "radio_book", 3 ], [ "manual_electronics", 1 ] ],
@@ -142,7 +142,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 1,
- "time": 6500,
+ "time": "6 m",
"book_learn": [ [ "manual_electronics", 1 ], [ "textbook_electronics", 2 ], [ "advanced_electronics", 2 ] ],
"using": [ [ "soldering_standard", 3 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -155,7 +155,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": [ [ "electronics", 3 ] ],
"book_learn": [ [ "manual_electronics", 1 ], [ "textbook_electronics", 1 ], [ "advanced_electronics", 1 ] ],
"using": [ [ "soldering_standard", 5 ] ],
@@ -168,7 +168,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "manual_electronics", 1 ], [ "radio_book", 1 ], [ "textbook_electronics", 2 ] ],
@@ -183,7 +183,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_electronics", 1 ], [ "textbook_electronics", 2 ], [ "textbook_anarch", 3 ] ],
@@ -198,7 +198,7 @@
"subcategory": "CSC_ELECTRONIC_LIGHTING",
"skill_used": "electronics",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"book_learn": [ [ "manual_electronics", 3 ], [ "mag_electronics", 4 ], [ "textbook_electronics", 2 ] ],
"using": [ [ "soldering_standard", 7 ] ],
@@ -212,7 +212,7 @@
"subcategory": "CSC_ELECTRONIC_LIGHTING",
"skill_used": "electronics",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "manual_electronics", 1 ], [ "mag_electronics", 1 ] ],
"using": [ [ "soldering_standard", 5 ] ],
"components": [
@@ -229,7 +229,7 @@
"subcategory": "CSC_ELECTRONIC_LIGHTING",
"skill_used": "electronics",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 0,
"book_learn": [ [ "manual_electronics", 0 ], [ "mag_electronics", 1 ] ],
@@ -256,7 +256,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 1 ],
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "manual_electronics", 1 ], [ "mag_electronics", 2 ] ],
@@ -275,7 +275,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 1 ],
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "manual_electronics", 1 ], [ "mag_electronics", 2 ] ],
@@ -294,7 +294,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 1 ],
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "manual_electronics", 1 ], [ "mag_electronics", 2 ] ],
@@ -316,7 +316,7 @@
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "manual_electronics", 1 ], [ "mag_electronics", 2 ] ],
- "time": 14000,
+ "time": "14 m",
"components": [
[ [ "amplifier", 3 ] ],
[ [ "plastic_chunk", 3 ], [ "scrap", 4 ] ],
@@ -331,7 +331,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": [ [ "electronics", 2 ] ],
@@ -351,7 +351,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "radio_book", 1 ], [ "textbook_anarch", 2 ] ],
"using": [ [ "soldering_standard", 5 ] ],
@@ -376,7 +376,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"book_learn": [ [ "textbook_anarch", 2 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -390,7 +390,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 2,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"book_learn": [ [ "radio_book", 2 ], [ "textbook_anarch", 3 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -405,7 +405,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 1 ],
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "advanced_electronics", 3 ], [ "manual_electronics", 2 ] ],
@@ -425,7 +425,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "advanced_electronics", 1 ], [ "mag_electronics", 3 ], [ "manual_electronics", 2 ] ],
@@ -454,7 +454,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "electronics", 3 ], [ "survival", 3 ] ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"decomp_learn": 4,
"book_learn": [ [ "textbook_survival", 3 ], [ "advanced_electronics", 3 ], [ "manual_electronics", 3 ] ],
"using": [ [ "soldering_standard", 10 ], [ "forging_standard", 10 ] ],
@@ -475,7 +475,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "advanced_electronics", 1 ], [ "mag_electronics", 3 ], [ "manual_electronics", 2 ] ],
@@ -504,7 +504,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "advanced_electronics", 2 ], [ "textbook_electronics", 3 ], [ "textbook_anarch", 3 ] ],
@@ -519,7 +519,7 @@
"subcategory": "CSC_ELECTRONIC_PARTS",
"skill_used": "electronics",
"difficulty": 2,
- "time": 11000,
+ "time": "11 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "mag_electronics", 2 ] ],
@@ -534,7 +534,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 4,
"using": [ [ "soldering_standard", 14 ] ],
@@ -556,7 +556,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 1 ],
"difficulty": 4,
- "time": 35000,
+ "time": "35 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_anarch", 3 ], [ "advanced_electronics", 5 ] ],
@@ -572,7 +572,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 1 ],
"difficulty": 5,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"note": "you might be able to reverse-engineer assembly, but not the music",
"book_learn": [ [ "textbook_electronics", 6 ], [ "textbook_robots", 5 ] ],
@@ -588,7 +588,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 5 ],
"difficulty": 8,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"note": "as with mp3, no learning how to encode the software from taking it apart",
"book_learn": [ [ "textbook_electronics", 7 ], [ "textbook_robots", 6 ] ],
@@ -611,7 +611,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 5,
- "time": 35000,
+ "time": "35 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "advanced_electronics", 4 ], [ "textbook_electronics", 4 ], [ "atomic_survival", 3 ] ],
@@ -626,7 +626,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 7,
- "time": 35000,
+ "time": "35 m",
"reversible": true,
"decomp_learn": 7,
"book_learn": [ [ "advanced_electronics", 6 ], [ "textbook_electronics", 6 ], [ "atomic_survival", 5 ] ],
@@ -641,7 +641,7 @@
"subcategory": "CSC_ELECTRONIC_COMPONENTS",
"skill_used": "electronics",
"difficulty": 5,
- "time": 45000,
+ "time": "45 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -664,7 +664,7 @@
"skill_used": "electronics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 9,
- "time": 85000,
+ "time": "85 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "recipe_lab_elec", 7 ] ],
@@ -680,7 +680,7 @@
"skill_used": "electronics",
"skills_required": [ "firstaid", 5 ],
"difficulty": 6,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ],
@@ -696,7 +696,7 @@
"skill_used": "electronics",
"skills_required": [ "firstaid", 5 ],
"difficulty": 6,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ],
@@ -712,7 +712,7 @@
"skill_used": "electronics",
"skills_required": [ "firstaid", 5 ],
"difficulty": 6,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ],
@@ -728,7 +728,7 @@
"skill_used": "electronics",
"skills_required": [ "firstaid", 5 ],
"difficulty": 6,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 6 ] ],
@@ -743,7 +743,7 @@
"subcategory": "CSC_ELECTRONIC_PARTS",
"skill_used": "electronics",
"difficulty": 6,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 6,
"book_learn": [ [ "textbook_mechanics", 7 ], [ "textbook_electronics", 6 ], [ "advanced_electronics", 6 ], [ "textbook_robots", 5 ] ],
@@ -759,7 +759,7 @@
"skill_used": "electronics",
"skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ],
"difficulty": 8,
- "time": 50000,
+ "time": "50 m",
"decomp_learn": 5,
"autolearn": true,
"book_learn": [ [ "manual_electronics", 7 ], [ "textbook_electronics", 6 ], [ "advanced_electronics", 6 ] ],
@@ -783,7 +783,7 @@
"skill_used": "electronics",
"skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ],
"difficulty": 10,
- "time": 50000,
+ "time": "50 m",
"decomp_learn": 5,
"autolearn": true,
"book_learn": [ [ "recipe_augs", 7 ], [ "recipe_lab_elec", 7 ], [ "advanced_electronics", 8 ] ],
@@ -806,7 +806,7 @@
"subcategory": "CSC_ELECTRONIC_PARTS",
"skill_used": "electronics",
"difficulty": 8,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 5,
"autolearn": true,
@@ -823,7 +823,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -846,7 +846,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 5 ],
"difficulty": 5,
- "time": 180000,
+ "time": "180 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -877,7 +877,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 4 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -906,7 +906,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 6 ],
"difficulty": 6,
- "time": 200000,
+ "time": "200 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -942,7 +942,7 @@
"subcategory": "CSC_ELECTRONIC_PARTS",
"skill_used": "electronics",
"difficulty": 10,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "textbook_robots", 8 ] ],
@@ -963,7 +963,7 @@
"subcategory": "CSC_ELECTRONIC_PARTS",
"skill_used": "mechanics",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -986,7 +986,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 4 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_mechanics", 6 ], [ "textbook_electronics", 8 ], [ "textbook_fabrication", 8 ], [ "welding_book", 5 ] ],
@@ -1002,7 +1002,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 4 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_mechanics", 6 ], [ "textbook_electronics", 8 ], [ "textbook_fabrication", 8 ], [ "welding_book", 5 ] ],
@@ -1018,7 +1018,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 4 ],
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_mechanics", 6 ], [ "textbook_electronics", 8 ], [ "textbook_fabrication", 8 ], [ "welding_book", 5 ] ],
@@ -1033,7 +1033,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 4 ],
"difficulty": 4,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_mechanics", 6 ], [ "textbook_electronics", 8 ], [ "textbook_fabrication", 8 ], [ "welding_book", 5 ] ],
@@ -1049,7 +1049,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "textbook_fabrication", 3 ], [ "manual_fabrication", 3 ], [ "manual_electronics", 3 ], [ "manual_mechanics", 3 ] ],
@@ -1073,7 +1073,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "textbook_fabrication", 3 ], [ "manual_fabrication", 3 ], [ "manual_electronics", 3 ], [ "manual_mechanics", 3 ] ],
@@ -1095,7 +1095,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 2 ],
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 3 ] ],
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1110,7 +1110,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 3 ],
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 3 ] ],
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1130,79 +1130,675 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 3 ],
"difficulty": 3,
- "time": 120000,
+ "time": "120 m",
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 3 ] ],
"using": [ [ "soldering_standard", 80 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "small_storage_battery", 80 ] ], [ [ "e_scrap", 16 ] ], [ [ "scrap", 32 ] ], [ [ "cable", 20 ] ] ]
},
+ {
+ "type": "recipe",
+ "result": "bot_manhack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
+ "difficulty": 6,
+ "time": "25 m",
+ "reversible": true,
+ "decomp_learn": 7,
+ "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "spike", 2 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_grenade_hack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
+ "difficulty": 6,
+ "time": "25 m",
+ "reversible": true,
+ "decomp_learn": 7,
+ "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "grenade", 1 ] ],
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_mininuke_hack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 6 ], [ "computer", 5 ] ],
+ "difficulty": 7,
+ "time": "35 m",
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "recipe_lab_elec", 7 ], [ "textbook_robots", 8 ] ],
+ "using": [ [ "soldering_standard", 20 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "mininuke", 1 ] ],
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_gasbomb_hack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
+ "difficulty": 6,
+ "time": "25 m",
+ "reversible": true,
+ "decomp_learn": 7,
+ "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "gasbomb", 1 ] ],
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_EMP_hack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
+ "difficulty": 6,
+ "time": "25 m",
+ "reversible": true,
+ "decomp_learn": 7,
+ "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "EMPbomb", 1 ] ],
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_flashbang_hack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
+ "difficulty": 6,
+ "time": "25 m",
+ "reversible": true,
+ "decomp_learn": 7,
+ "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "flashbang", 1 ] ],
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_c4_hack",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
+ "difficulty": 6,
+ "time": "25 m",
+ "reversible": true,
+ "decomp_learn": 7,
+ "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [
+ [ [ "c4", 1 ] ],
+ [ [ "ai_module_basic", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
{
"type": "recipe",
"result": "bot_turret",
"category": "CC_ELECTRONIC",
- "subcategory": "CSC_ELECTRONIC_PARTS",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ], [ "gun", 3 ] ],
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 5 ] ],
"difficulty": 7,
- "time": 9000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 8,
"book_learn": [ [ "recipe_lab_elec", 7 ], [ "textbook_robots", 9 ] ],
"using": [ [ "soldering_standard", 14 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
"components": [
- [ [ "uzi", 1 ], [ "tec9", 1 ], [ "calico", 1 ], [ "hk_mp5", 1 ] ],
- [ [ "processor", 2 ] ],
- [ [ "RAM", 2 ] ],
- [ [ "power_supply", 1 ], [ "plut_cell", 1 ] ],
- [ [ "scrap", 10 ] ]
+ [ [ "ai_module", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "gun_module", 2 ] ],
+ [ [ "hk_mp5", 2 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "turret_chassis", 1 ] ]
]
},
{
"type": "recipe",
"result": "bot_laserturret",
"category": "CC_ELECTRONIC",
- "subcategory": "CSC_ELECTRONIC_PARTS",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 8 ], [ "computer", 5 ], [ "gun", 3 ] ],
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 8 ], [ "computer", 5 ] ],
"difficulty": 8,
- "time": 12000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 9,
"book_learn": [ [ "recipe_lab_elec", 8 ] ],
"using": [ [ "soldering_standard", 14 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
"components": [
- [ [ "cerberus_laser", 3 ], [ "laser_rifle", 3 ], [ "v29_cheap", 3 ], [ "v29", 3 ] ],
- [ [ "processor", 2 ] ],
- [ [ "RAM", 2 ] ],
- [ [ "motor", 1 ] ],
+ [ [ "ai_module", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "gun_module", 1 ] ],
+ [ [ "laser_cannon", 1 ] ],
+ [ [ "medium_storage_battery", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
[ [ "solar_cell", 4 ] ],
- [ [ "cable", 10 ] ],
- [ [ "power_supply", 1 ], [ "plut_cell", 1 ] ],
- [ [ "scrap", 10 ] ]
+ [ [ "power_supply", 1 ] ],
+ [ [ "turret_chassis", 1 ] ]
]
},
{
"type": "recipe",
"result": "bot_rifleturret",
"category": "CC_ELECTRONIC",
- "subcategory": "CSC_ELECTRONIC_PARTS",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ], [ "gun", 3 ] ],
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 6 ], [ "computer", 5 ] ],
"difficulty": 8,
- "time": 9000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 8,
"book_learn": [ [ "recipe_lab_elec", 7 ], [ "textbook_robots", 9 ] ],
"using": [ [ "soldering_standard", 14 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
"components": [
- [ [ "m4a1", 1 ], [ "sig552", 1 ], [ "h&k416a5", 1 ], [ "m27iar", 1 ], [ "acr", 1 ], [ "hk_g36", 1 ] ],
- [ [ "processor", 2 ] ],
- [ [ "RAM", 2 ] ],
- [ [ "power_supply", 1 ], [ "plut_cell", 1 ] ],
- [ [ "scrap", 15 ] ]
+ [ [ "ai_module", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "gun_module", 1 ] ],
+ [ [ "m4a1", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "turret_chassis", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_nursebot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 7 ], [ "computer", 6 ] ],
+ "difficulty": 8,
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_nursebot", 7 ] ],
+ "time": "60 m",
+ "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module_advanced", 1 ] ],
+ [ [ "self_monitoring_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "android_legs", 1 ] ],
+ [ [ "android_chassis", 1 ] ],
+ [ [ "android_arms", 2 ] ],
+ [ [ "medium_storage_battery", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_hazmatbot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 6 ] ],
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_hazmatbot", 7 ] ],
+ "difficulty": 6,
+ "time": "50 m",
+ "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "self_monitoring_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "omni_wheel", 1 ] ],
+ [ [ "medium_storage_battery", 1 ] ],
+ [ [ "steel_chunk", 6 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_copbot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 5 ], [ "computer", 6 ] ],
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_copbot", 7 ] ],
+ "difficulty": 6,
+ "time": "50 m",
+ "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "omni_wheel", 1 ] ],
+ [ [ "copbot_chassis", 1 ] ],
+ [ [ "android_arms", 1 ] ],
+ [ [ "power_supply", 4 ] ],
+ [ [ "solar_cell", 2 ] ],
+ [ [ "tazer", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_eyebot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 4 ], [ "computer", 4 ] ],
+ "reversible": true,
+ "decomp_learn": 5,
+ "book_learn": [ [ "schematics_eyebot", 7 ] ],
+ "difficulty": 4,
+ "time": "30 m",
+ "using": [ [ "soldering_standard", 3 ], [ "welding_standard", 3 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "quad_rotors", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "lens", 1 ] ],
+ [ [ "identification_module", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_molebot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 6 ], [ "computer", 5 ] ],
+ "reversible": true,
+ "decomp_learn": 5,
+ "book_learn": [ [ "schematics_molebot", 7 ] ],
+ "difficulty": 3,
+ "time": "30 m",
+ "using": [ [ "soldering_standard", 10 ], [ "welding_standard", 6 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "medium_storage_battery", 1 ] ],
+ [ [ "motor", 1 ] ],
+ [ [ "steel_chunk", 20 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_riotbot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 7 ], [ "computer", 6 ] ],
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_riotbot", 7 ] ],
+ "difficulty": 6,
+ "time": "40 m",
+ "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "omni_wheel", 1 ] ],
+ [ [ "copbot_chassis", 1 ] ],
+ [ [ "android_arms", 1 ] ],
+ [ [ "power_supply", 4 ] ],
+ [ [ "solar_cell", 2 ] ],
+ [ [ "canister_empty", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_skitterbot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 6 ], [ "computer", 5 ] ],
+ "reversible": true,
+ "decomp_learn": 5,
+ "book_learn": [ [ "schematics_skitterbot", 7 ] ],
+ "difficulty": 5,
+ "time": "30 m",
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "scrap", 1 ] ],
+ [ [ "spidery_legs_small", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "tazer", 2 ] ],
+ [ [ "scrap", 4 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_science_bot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 6 ], [ "computer", 5 ] ],
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_sciencebot", 7 ] ],
+ "difficulty": 5,
+ "time": "60 m",
+ "using": [ [ "soldering_standard", 20 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "medium_storage_battery", 1 ] ],
+ [ [ "spidery_legs_small", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "power_supply", 3 ] ],
+ [ [ "geiger_off", 1 ] ],
+ [ [ "tazer", 2 ] ],
+ [ [ "scrap", 6 ] ],
+ [ [ "plut_cell", 1 ] ],
+ [ [ "steel_chunk", 6 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_tankbot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 9 ], [ "computer", 8 ] ],
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_tankbot", 9 ] ],
+ "difficulty": 9,
+ "time": "75 m",
+ "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "tank_tread", 1 ] ],
+ [ [ "tankbot_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "gun_module", 3 ] ],
+ [ [ "flamethrower", 1 ] ],
+ [ [ "tazer", 1 ] ],
+ [ [ "m4a1", 1 ] ],
+ [ [ "power_supply", 20 ] ],
+ [ [ "storage_battery", 1 ] ],
+ [ [ "plut_cell", 4 ] ],
+ [ [ "mil_plate", 2 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_tripod",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 9 ], [ "computer", 8 ] ],
+ "reversible": true,
+ "decomp_learn": 8,
+ "book_learn": [ [ "schematics_tripod", 9 ] ],
+ "difficulty": 9,
+ "time": "60 m",
+ "using": [ [ "soldering_standard", 10 ], [ "welding_standard", 10 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "spidery_legs_big", 1 ] ],
+ [ [ "tripod_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "gun_module", 1 ] ],
+ [ [ "power_supply", 12 ] ],
+ [ [ "storage_battery", 1 ] ],
+ [ [ "flamethrower", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_chickenbot",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 10 ], [ "computer", 9 ] ],
+ "reversible": true,
+ "decomp_learn": 9,
+ "book_learn": [ [ "schematics_chickenbot", 10 ] ],
+ "difficulty": 10,
+ "time": "75 m",
+ "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "memory_module", 1 ] ],
+ [ [ "pathfinding_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "reverse_jointed_legs", 1 ] ],
+ [ [ "chickenbot_chassis", 1 ] ],
+ [ [ "targeting_module", 1 ] ],
+ [ [ "gun_module", 3 ] ],
+ [ [ "mark19", 1 ] ],
+ [ [ "tazer", 1 ] ],
+ [ [ "m249", 1 ] ],
+ [ [ "power_supply", 20 ] ],
+ [ [ "storage_battery", 1 ] ],
+ [ [ "plut_cell", 4 ] ],
+ [ [ "mil_plate", 2 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "bot_antimateriel",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_OTHER",
+ "skill_used": "electronics",
+ "skills_required": [ [ "mechanics", 6 ], [ "computer", 5 ] ],
+ "reversible": true,
+ "decomp_learn": 5,
+ "book_learn": [ [ "schematics_antimateriel", 7 ] ],
+ "difficulty": 5,
+ "time": "75 m",
+ "using": [ [ "soldering_standard", 10 ] ],
+ "qualities": [
+ { "id": "SCREW", "level": 1 },
+ { "id": "SCREW_FINE", "level": 1 },
+ { "id": "WRENCH", "level": 2 },
+ { "id": "WRENCH_FINE", "level": 1 }
+ ],
+ "components": [
+ [ [ "ai_module", 1 ] ],
+ [ [ "RAM", 1 ] ],
+ [ [ "gun_module", 1 ] ],
+ [ [ "m107a1", 1 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "sensor_module", 1 ] ],
+ [ [ "identification_module", 1 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "turret_chassis", 1 ] ]
]
},
{
@@ -1213,7 +1809,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 4 ],
"difficulty": 7,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "recipe_lab_elec", 7 ], [ "textbook_robots", 7 ] ],
"using": [ [ "soldering_standard", 14 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1227,7 +1823,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 4,
- "time": 36000,
+ "time": "36 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -1249,17 +1845,17 @@
"category": "CC_ELECTRONIC",
"subcategory": "CSC_ELECTRONIC_LIGHTING",
"skill_used": "electronics",
- "difficulty": 3,
- "time": 20000,
+ "difficulty": 2,
+ "time": "20 m",
"reversible": true,
- "book_learn": [ [ "recipe_caseless", 6 ] ],
+ "book_learn": [ [ "textbook_electronics", 3 ], [ "advanced_electronics", 3 ], [ "recipe_caseless", 2 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "plastic_chunk", 1 ] ],
[ [ "superglue", 1 ] ],
[ [ "power_supply", 1 ] ],
[ [ "cable", 1 ] ],
- [ [ "plut_cell", 1 ] ]
+ [ [ "betavoltaic", 1 ] ]
]
},
{
@@ -1269,16 +1865,16 @@
"subcategory": "CSC_ELECTRONIC_LIGHTING",
"skill_used": "electronics",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
- "book_learn": [ [ "recipe_caseless", 6 ] ],
+ "book_learn": [ [ "textbook_electronics", 4 ], [ "advanced_electronics", 4 ], [ "recipe_caseless", 3 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "plastic_chunk", 2 ] ],
[ [ "superglue", 1 ] ],
[ [ "power_supply", 1 ] ],
[ [ "cable", 2 ] ],
- [ [ "plut_cell", 2 ] ]
+ [ [ "betavoltaic", 4 ] ]
]
},
{
@@ -1287,18 +1883,20 @@
"category": "CC_ELECTRONIC",
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
- "difficulty": 4,
- "time": 3000,
+ "difficulty": 6,
+ "time": "90 m",
"reversible": true,
"book_learn": [ [ "recipe_caseless", 8 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
[ [ "plastic_chunk", 5 ] ],
[ [ "superglue", 1 ] ],
- [ [ "power_supply", 1 ] ],
+ [ [ "power_supply", 2 ] ],
+ [ [ "thermos", 2 ] ],
[ [ "element", 1 ] ],
[ [ "scrap", 2 ] ],
- [ [ "plut_cell", 1 ] ]
+ [ [ "betavoltaic", 2 ] ],
+ [ [ "RTG_coffee", 1 ] ]
]
},
{
@@ -1309,7 +1907,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 4,
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [
@@ -1339,7 +1937,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 21000,
+ "time": "21 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ] ],
@@ -1355,7 +1953,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 2 ] ],
@@ -1371,7 +1969,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 1 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 2 ] ],
@@ -1387,7 +1985,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 2 ],
"difficulty": 5,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"charges": 1,
"qualities": [
@@ -1406,7 +2004,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [
@@ -1426,7 +2024,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [
@@ -1447,7 +2045,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 2 ],
"difficulty": 7,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"autolearn": true,
"book_learn": [ [ "recipe_lab_elec", 5 ], [ "textbook_robots", 5 ] ],
@@ -1471,7 +2069,7 @@
"skill_used": "mechanics",
"skills_required": [ "electronics", 4 ],
"difficulty": 8,
- "time": 120000,
+ "time": "120 m",
"reversible": true,
"book_learn": [ [ "textbook_mechanics", 8 ], [ "textbook_robots", 7 ] ],
"using": [ [ "soldering_standard", 30 ], [ "welding_standard", 5 ] ],
@@ -1498,7 +2096,7 @@
"skill_used": "electronics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"autolearn": true,
"using": [ [ "soldering_standard", 150 ] ],
@@ -1513,7 +2111,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 2 ],
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"reversible": true,
"autolearn": true,
"using": [ [ "soldering_standard", 150 ] ],
@@ -1528,7 +2126,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 3 ],
"difficulty": 7,
- "time": 180000,
+ "time": "180 m",
"book_learn": [ [ "textbook_electronics", 6 ], [ "advanced_electronics", 6 ] ],
"using": [ [ "soldering_standard", 50 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1544,7 +2142,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 1 ],
"difficulty": 5,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
@@ -1562,7 +2160,7 @@
"skill_used": "electronics",
"skills_required": [ "mechanics", 2 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"book_learn": [ [ "advanced_electronics", 4 ], [ "mag_electronics", 6 ], [ "manual_electronics", 5 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -1585,7 +2183,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 5 ],
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "repeater_mod_guide", 2 ] ],
@@ -1611,7 +2209,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 1 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"book_learn": [
[ "advanced_electronics", 4 ],
@@ -1634,7 +2232,7 @@
"book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 2 ] ],
"using": [ [ "soldering_standard", 5 ] ],
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1654,7 +2252,7 @@
"skill_used": "electronics",
"using": [ [ "soldering_standard", 10 ] ],
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -1669,7 +2267,7 @@
"using": [ [ "soldering_standard", 10 ] ],
"difficulty": 4,
"book_learn": [ [ "textbook_mechanics", 5 ] ],
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 2 } ],
"components": [
[ [ "cu_pipe", 3 ] ],
@@ -1687,7 +2285,7 @@
"using": [ [ "soldering_standard", 50 ] ],
"difficulty": 4,
"book_learn": [ [ "textbook_mechanics", 5 ] ],
- "time": 60000,
+ "time": "60 m",
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "ANVIL", "level": 2 } ],
"components": [ [ [ "cu_pipe", 4 ] ], [ [ "sheet_metal_small", 8 ] ], [ [ "sheet_metal", 2 ] ] ]
}
diff --git a/data/json/recipes/recipe_food.json b/data/json/recipes/recipe_food.json
index 2f6b170663d84..bf5a767bc9738 100644
--- a/data/json/recipes/recipe_food.json
+++ b/data/json/recipes/recipe_food.json
@@ -5,7 +5,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -19,7 +19,7 @@
"id_suffix": "using_water_purifier",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 150,
+ "time": "0 m",
"autolearn": true,
"tools": [ [ [ "water_purifier", 1 ] ] ],
"components": [ [ [ "water", 1 ] ] ]
@@ -31,7 +31,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -45,7 +45,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -58,7 +58,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -71,7 +71,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -82,7 +82,7 @@
"type": "recipe",
"result": "meat_scrap_cooked",
"copy-from": "meat_cooked",
- "time": 750,
+ "time": "0 m",
"tools": [ [ [ "surface_heat", 1, "LIST" ] ] ],
"components": [ [ [ "meat_scrap", 1 ] ] ]
},
@@ -95,7 +95,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"container": "jar_glass_sealed",
@@ -115,7 +115,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 24000,
+ "time": "24 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"contained": true,
@@ -141,7 +141,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"container": "jar_glass_sealed",
@@ -161,7 +161,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -174,7 +174,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -187,7 +187,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -200,7 +200,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -213,7 +213,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -227,7 +227,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"charges": 6,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -237,12 +237,12 @@
{
"type": "recipe",
"result": "lard",
- "byproducts": [ [ "cracklins" ], [ "cracklins" ], [ "cracklins" ] ],
+ "byproducts": [ [ "cracklins" ] ],
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"charges": 3,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -257,7 +257,7 @@
"skill_used": "cooking",
"difficulty": 4,
"charges": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -280,7 +280,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 16,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -293,7 +293,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -305,7 +305,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -317,7 +317,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"book_learn": [ [ "cookbook_human", 4 ] ],
"flags": [ "BLIND_HARD" ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -329,7 +329,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -341,7 +341,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -354,7 +354,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 9000,
+ "time": "9 m",
"charges": 4,
"autolearn": true,
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -380,7 +380,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"charges": 1,
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
@@ -395,7 +395,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"charges": 1,
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
@@ -411,7 +411,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 1,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "frying_oil", 1, "LIST" ] ], [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -424,7 +424,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 16000,
+ "time": "16 m",
"charges": 1,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -440,7 +440,7 @@
"difficulty": 2,
"charges": 1,
"book_learn": [ [ "cookbook_sushi", 2 ] ],
- "time": 10000,
+ "time": "10 m",
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
"components": [
@@ -458,7 +458,7 @@
"skill_used": "cooking",
"difficulty": 2,
"book_learn": [ [ "cookbook_sushi", 2 ] ],
- "time": 5000,
+ "time": "5 m",
"charges": 3,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -483,7 +483,7 @@
"skill_used": "cooking",
"difficulty": 3,
"book_learn": [ [ "cookbook_sushi", 3 ] ],
- "time": 8000,
+ "time": "8 m",
"charges": 2,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -520,7 +520,7 @@
"skill_used": "cooking",
"difficulty": 3,
"book_learn": [ [ "cookbook_sushi", 3 ] ],
- "time": 45000,
+ "time": "45 m",
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
"batch_time_factors": [ 50, 2 ],
@@ -534,7 +534,7 @@
"skill_used": "cooking",
"difficulty": 1,
"book_learn": [ [ "cookbook_sushi", 2 ] ],
- "time": 5000,
+ "time": "5 m",
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "tofu", 1 ] ] ]
@@ -547,7 +547,7 @@
"skill_used": "cooking",
"difficulty": 3,
"book_learn": [ [ "cookbook_sushi", 3 ] ],
- "time": 45000,
+ "time": "45 m",
"qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
"batch_time_factors": [ 25, 2 ],
@@ -575,7 +575,7 @@
"skill_used": "cooking",
"difficulty": 3,
"book_learn": [ [ "cookbook_sushi", 3 ] ],
- "time": 6000,
+ "time": "6 m",
"charges": 2,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -601,7 +601,7 @@
"skill_used": "cooking",
"difficulty": 3,
"book_learn": [ [ "cookbook_sushi", 3 ] ],
- "time": 6000,
+ "time": "6 m",
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [
[ [ "sushi_rice", 2 ] ],
@@ -626,7 +626,7 @@
"skill_used": "cooking",
"difficulty": 4,
"book_learn": [ [ "cookbook_sushi", 4 ] ],
- "time": 9000,
+ "time": "9 m",
"charges": 2,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -651,7 +651,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "protein_powder", 1 ] ], [ [ "water_clean", 1 ] ] ]
@@ -662,7 +662,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"book_learn": [ [ "cookbook_human", 0 ] ],
"components": [ [ [ "hflesh_powder", 1 ] ], [ [ "water_clean", 1 ] ] ]
},
@@ -672,7 +672,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -687,7 +687,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"book_learn": [ [ "cookbook_human", 0 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -703,7 +703,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"charges": 6,
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
@@ -729,7 +729,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
@@ -754,7 +754,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"charges": 6,
"autolearn": true,
"batch_time_factors": [ 50, 3 ],
@@ -778,7 +778,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -793,7 +793,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"charges": 15,
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
@@ -811,7 +811,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"charges": 15,
"batch_time_factors": [ 83, 3 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
@@ -828,7 +828,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -842,7 +842,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 83, 3 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -857,7 +857,7 @@
"skill_used": "cooking",
"difficulty": 4,
"charges": 6,
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 83, 3 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
@@ -881,7 +881,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 15000,
+ "time": "15 m",
"charges": 1,
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
@@ -896,7 +896,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -909,7 +909,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -921,7 +921,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -933,7 +933,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -948,7 +948,7 @@
"difficulty": 1,
"byproducts": [ [ "plant_fibre" ] ],
"skills_required": [ "survival", 1 ],
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 40, 5 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
@@ -963,7 +963,7 @@
"skill_used": "cooking",
"difficulty": 1,
"skills_required": [ "survival", 1 ],
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -976,7 +976,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"note": "the cooking oil isn't supposed to be expended since you can recycle it after frying the morel",
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -990,7 +990,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 12000,
+ "time": "12 m",
"book_learn": [
[ "pocket_survival", 1 ],
[ "survival_book", 1 ],
@@ -1010,7 +1010,7 @@
"skill_used": "cooking",
"difficulty": 2,
"skills_required": [ "survival", 2 ],
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -1024,7 +1024,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "survival", 2 ],
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"note": "the cooking oil isn't supposed to be expended since you can recycle it after frying the dandelions",
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
@@ -1039,7 +1039,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "survival", 2 ],
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rock_quern", -1 ], [ "clay_quern", -1 ], [ "food_processor", 20 ] ] ],
@@ -1051,7 +1051,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 2500,
+ "time": "2 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
"components": [ [ [ "frozen_burrito", 1 ] ] ]
@@ -1062,7 +1062,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
"components": [ [ [ "frozen_dinner", 1 ] ] ]
@@ -1075,7 +1075,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -1088,7 +1088,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -1101,7 +1101,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 3,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "frying_oil", 1, "LIST" ] ] ],
@@ -1114,7 +1114,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -1127,7 +1127,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 3,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "frying_oil", 1, "LIST" ] ] ],
@@ -1139,7 +1139,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 20000,
+ "time": "20 m",
"charges": 3,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -1152,7 +1152,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 20000,
+ "time": "20 m",
"charges": 5,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -1168,7 +1168,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 20000,
+ "time": "20 m",
"charges": 3,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -1185,7 +1185,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 20000,
+ "time": "20 m",
"charges": 3,
"book_learn": [ [ "cookbook_human", 0 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -1198,7 +1198,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 20000,
+ "time": "20 m",
"charges": 3,
"book_learn": [ [ "cookbook_human", 0 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -1216,7 +1216,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 16000,
+ "time": "16 m",
"autolearn": true,
"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 } ],
@@ -1229,7 +1229,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -1241,7 +1241,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -1253,7 +1253,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 300,
+ "time": "0 m",
"autolearn": true,
"components": [ [ [ "popcorn", 1 ] ], [ [ "salt", 1 ], [ "seasoning_salt", 1 ] ] ]
},
@@ -1263,7 +1263,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -1277,7 +1277,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -1292,7 +1292,7 @@
"skill_used": "cooking",
"difficulty": 2,
"skills_required": [ "survival", 2 ],
- "time": 10000,
+ "time": "10 m",
"batch_time_factors": [ 80, 4 ],
"book_learn": [
[ "pocket_survival", 1 ],
@@ -1313,7 +1313,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 12000,
+ "time": "12 m",
"batch_time_factors": [ 80, 4 ],
"book_learn": [
[ "pocket_survival", 1 ],
@@ -1327,6 +1327,28 @@
"tools": [ [ [ "water_boiling_heat", 2, "LIST" ] ] ],
"components": [ [ [ "raw_dandelion", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
},
+ {
+ "type": "recipe",
+ "result": "chamomile_tea",
+ "category": "CC_FOOD",
+ "subcategory": "CSC_FOOD_DRINKS",
+ "skill_used": "cooking",
+ "difficulty": 1,
+ "skills_required": [ "survival", 1 ],
+ "time": "10 m",
+ "batch_time_factors": [ 80, 4 ],
+ "book_learn": [
+ [ "pocket_survival", 1 ],
+ [ "survival_book", 1 ],
+ [ "textbook_survival", 1 ],
+ [ "manual_survival", 1 ],
+ [ "mag_survival", 1 ],
+ [ "family_cookbook", 1 ]
+ ],
+ "qualities": [ { "id": "BOIL", "level": 1 } ],
+ "tools": [ [ [ "water_boiling_heat", 2, "LIST" ] ] ],
+ "components": [ [ [ "chamomile", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
+ },
{
"type": "recipe",
"result": "kompot",
@@ -1335,7 +1357,7 @@
"skill_used": "cooking",
"difficulty": 3,
"result_mult": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -1349,7 +1371,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 80, 4 ],
@@ -1363,7 +1385,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 120000,
+ "time": "120 m",
"//": "2 hours of roasting are required to fully break up the toxins in raw pods",
"autolearn": true,
"batch_time_factors": [ 90, 1 ],
@@ -1378,7 +1400,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -1391,7 +1413,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -1404,7 +1426,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"tools": [ [ [ "atomic_coffeepot", -1 ] ] ],
@@ -1416,7 +1438,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -1431,7 +1453,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ], [ [ "mortar_pestle", -1 ] ] ],
"autolearn": true,
@@ -1444,7 +1466,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 9000,
+ "time": "9 m",
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "food_processor", 20 ] ], [ [ "rag", -1 ] ] ],
"autolearn": true,
@@ -1457,7 +1479,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 13000,
+ "time": "13 m",
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "food_processor", 20 ] ], [ [ "rag", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
"autolearn": true,
@@ -1471,7 +1493,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [ [ [ "milk_powder", 1 ] ], [ [ "water_clean", 1 ] ] ]
},
@@ -1483,7 +1505,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [ [ [ "con_milk", 5 ] ], [ [ "water_clean", 1 ] ] ]
},
@@ -1495,7 +1517,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -1508,7 +1530,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -1525,7 +1547,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [ [ [ "dahlia_root", 10 ], [ "potato", 5 ], [ "irradiated_potato", 5 ] ] ]
@@ -1539,7 +1561,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [ [ [ "cattail_rhizome", 2 ] ] ]
@@ -1552,7 +1574,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -1566,7 +1588,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -1580,7 +1602,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 2,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -1593,7 +1615,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [ [ [ "irradiated_lemon", 2 ], [ "lemon", 2 ] ], [ [ "sugar", 10 ] ], [ [ "water_clean", 1 ] ] ]
@@ -1605,7 +1627,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"components": [ [ [ "lemonade_powder", 1 ] ], [ [ "water_clean", 1 ] ] ]
},
@@ -1617,7 +1639,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "orangesoda", 1 ] ], [ [ "cola", 1 ] ] ]
@@ -1630,7 +1652,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "lemonlime", 1 ] ], [ [ "cranberry_juice", 1 ] ] ]
@@ -1642,7 +1664,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"charges": 1,
"autolearn": true,
"flags": [ "BLIND_HARD" ],
@@ -1660,7 +1682,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [
@@ -1679,7 +1701,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "oj", 1 ] ], [ [ "vodka", 1 ] ] ]
@@ -1691,7 +1713,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "apple_cider", 1 ] ], [ [ "vodka", 1 ] ] ]
@@ -1703,7 +1725,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "rum", 1 ] ], [ [ "cola", 1 ] ] ]
@@ -1715,7 +1737,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"batch_time_factors": [ 50, 5 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -1745,7 +1767,7 @@
"skill_used": "cooking",
"difficulty": 5,
"//": "Gelatin from bones is just boiling them long enough. Gelatin from pectin is harder. Instead of duping the ingredients, *1.5 them for aforementioned pectin.",
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"batch_time_factors": [ 50, 5 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -1759,7 +1781,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 50, 5 ],
@@ -1778,7 +1800,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"charges": 1,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -1803,7 +1825,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -1827,7 +1849,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"charges": 1,
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "cookbook_human", 3 ] ],
@@ -1853,7 +1875,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 7,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -1867,7 +1889,7 @@
"skill_used": "cooking",
"difficulty": 5,
"charges": 4,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -1909,7 +1931,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"components": [
[ [ "water_clean", 2 ] ],
@@ -1929,7 +1951,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"charges": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -1951,7 +1973,7 @@
"skill_used": "cooking",
"difficulty": 5,
"skills_required": [ "survival", 4 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"batch_time_factors": [ 50, 5 ],
"book_learn": [ [ "survival_book", 3 ], [ "textbook_survival", 3 ], [ "manual_survival", 3 ] ],
@@ -1971,7 +1993,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2007,7 +2029,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2021,7 +2043,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 80, 4 ],
"book_learn": [ [ "cookbook_human", 1 ] ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2035,7 +2057,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"charges": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -2058,7 +2080,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -2080,7 +2102,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -2106,7 +2128,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2149,7 +2171,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"charges": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -2191,7 +2213,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"charges": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -2256,7 +2278,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2307,7 +2329,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"charges": 1,
"batch_time_factors": [ 80, 4 ],
"book_learn": [ [ "cookbook_human", 2 ] ],
@@ -2348,7 +2370,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"charges": 3,
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2378,7 +2400,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2444,7 +2466,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"charges": 2,
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
@@ -2460,7 +2482,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 10,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -2474,7 +2496,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 80000,
+ "time": "80 m",
"charges": 16,
"autolearn": true,
"batch_time_factors": [ 60, 3 ],
@@ -2489,7 +2511,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "family_cookbook", 5 ] ],
"qualities": [ { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "thermometer", -1 ] ] ],
@@ -2502,7 +2524,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "family_cookbook", 5 ] ],
"qualities": [ { "id": "BUTCHER", "level": 20 }, { "id": "COOK", "level": 3 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
@@ -2530,7 +2552,7 @@
"skill_used": "cooking",
"difficulty": 4,
"charges": 6,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "family_cookbook", 4 ] ],
"batch_time_factors": [ 83, 3 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
@@ -2557,7 +2579,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 7,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -2571,7 +2593,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 10,
- "time": 18000,
+ "time": "18 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2586,7 +2608,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 5,
- "time": 18000,
+ "time": "18 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2601,7 +2623,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 1,
- "time": 90000,
+ "time": "90 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2619,7 +2641,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 2,
- "time": 28000,
+ "time": "28 m",
"charges": 8,
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
@@ -2639,7 +2661,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 1,
- "time": 14000,
+ "time": "14 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2657,7 +2679,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"batch_time_factors": [ 82, 4 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2670,7 +2692,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"batch_time_factors": [ 82, 4 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2684,7 +2706,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2731,7 +2753,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2755,7 +2777,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"batch_time_factors": [ 82, 4 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2769,7 +2791,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2808,7 +2830,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2821,7 +2843,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 300,
+ "time": "0 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2834,7 +2856,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"batch_time_factors": [ 82, 4 ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -2852,7 +2874,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 9000,
+ "time": "9 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2893,7 +2915,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 9000,
+ "time": "9 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2919,7 +2941,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rock_quern", -1 ], [ "clay_quern", -1 ] ] ],
"components": [ [ [ "oats", 2 ] ] ]
@@ -2930,7 +2952,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2942,7 +2964,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -2990,7 +3012,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rock_quern", -1 ], [ "clay_quern", -1 ] ] ],
@@ -3003,7 +3025,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 9000,
+ "time": "9 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3018,7 +3040,7 @@
"skills_required": [ "survival", 2 ],
"difficulty": 1,
"charges": 1,
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
"components": [ [ [ "pinecone", 1 ] ] ]
@@ -3031,7 +3053,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3045,7 +3067,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3060,7 +3082,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3075,7 +3097,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3090,7 +3112,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3104,7 +3126,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3119,7 +3141,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3133,7 +3155,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3148,7 +3170,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3162,7 +3184,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3177,7 +3199,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3191,7 +3213,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3206,7 +3228,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3220,7 +3242,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3235,7 +3257,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3250,7 +3272,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3264,7 +3286,7 @@
"skill_used": "survival",
"difficulty": 1,
"charges": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"flags": [ "BLIND_EASY" ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3279,7 +3301,7 @@
"skills_required": [ "survival", 1 ],
"difficulty": 1,
"charges": 1,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -3292,7 +3314,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 48000,
+ "time": "48 m",
"charges": 10,
"book_learn": [ [ "family_cookbook", 5 ], [ "survival_book", 3 ], [ "textbook_survival", 3 ] ],
"qualities": [ { "id": "COOK", "level": 3 }, { "id": "BOIL", "level": 2 } ],
@@ -3318,7 +3340,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 3,
- "time": 45000,
+ "time": "45 m",
"charges": 6,
"autolearn": true,
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -3350,7 +3372,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3364,7 +3386,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3377,7 +3399,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"batch_time_factors": [ 80, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -3391,7 +3413,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3432,7 +3454,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3473,7 +3495,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3493,7 +3515,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3514,7 +3536,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3535,7 +3557,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"charges": 3,
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -3561,7 +3583,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "waffleiron", -1 ] ] ],
"components": [
@@ -3581,7 +3603,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "waffleiron", -1 ] ] ],
"components": [
@@ -3602,7 +3624,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 3,
- "time": 12000,
+ "time": "12 m",
"charges": 5,
"autolearn": true,
"tools": [ [ [ "surface_heat", 8, "LIST" ] ], [ [ "waffleiron", -1 ] ], [ [ "cooking_oil", 1 ], [ "cooking_oil2", 1 ] ] ],
@@ -3624,7 +3646,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 1,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3648,7 +3670,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3678,7 +3700,7 @@
"skill_used": "cooking",
"difficulty": 1,
"result_mult": 2,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3692,7 +3714,7 @@
"skill_used": "cooking",
"difficulty": 1,
"result_mult": 2,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3705,7 +3727,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 4,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3745,7 +3767,7 @@
"skill_used": "cooking",
"difficulty": 4,
"result_mult": 2,
- "time": 8000,
+ "time": "8 m",
"book_learn": [ [ "cookbook_italian", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -3758,7 +3780,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -3777,7 +3799,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 4,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -3795,7 +3817,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 4,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -3822,7 +3844,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 4,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -3840,7 +3862,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 6,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 6, "LIST" ] ] ],
@@ -3858,7 +3880,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3892,7 +3914,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -3928,7 +3950,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"charges": 2,
"book_learn": [ [ "cookbook_italian", 2 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -3958,7 +3980,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 2 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
@@ -3988,7 +4010,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_italian", 2 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -4015,7 +4037,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -4029,7 +4051,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "cookbook_italian", 2 ] ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -4046,7 +4068,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_italian", 2 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -4064,7 +4086,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_italian", 2 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -4093,7 +4115,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -4117,7 +4139,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 5,
- "time": 5000,
+ "time": "5 m",
"book_learn": [
[ "textbook_chemistry", 6 ],
[ "adv_chemistry", 6 ],
@@ -4136,7 +4158,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 6,
- "time": 48000,
+ "time": "48 m",
"autolearn": true,
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 50, "LIST" ] ] ],
@@ -4151,7 +4173,7 @@
"skills_required": [ "survival", 2 ],
"skill_used": "cooking",
"difficulty": 2,
- "time": 48000,
+ "time": "48 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 50, "LIST" ] ] ],
@@ -4165,7 +4187,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"charges": 10,
"autolearn": true,
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -4201,7 +4223,7 @@
"note": "high-temperature acid hydrolysis, to extract edible wood sugars",
"skill_used": "cooking",
"difficulty": 7,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "adv_chemistry", 7 ], [ "textbook_chemistry", 8 ], [ "recipe_labchem", 6 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 50, "LIST" ] ] ],
@@ -4219,7 +4241,7 @@
"note": "process sugar beets into sugar",
"skill_used": "cooking",
"difficulty": 5,
- "time": 90000,
+ "time": "90 m",
"book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ], [ "recipe_labchem", 5 ] ],
"qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 1 } ],
"tools": [ [ [ "surface_heat", 40, "LIST" ] ] ],
@@ -4235,7 +4257,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -4252,7 +4274,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -4270,7 +4292,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 83, 5 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -4287,7 +4309,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -4309,7 +4331,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -4333,7 +4355,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4389,7 +4411,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4434,7 +4456,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4482,7 +4504,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4553,7 +4575,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 80, 4 ],
@@ -4598,7 +4620,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4640,7 +4662,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4659,7 +4681,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"result_mult": 2,
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 80, 4 ],
@@ -4676,7 +4698,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -4696,7 +4718,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ],
@@ -4716,7 +4738,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -4736,7 +4758,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ],
@@ -4756,7 +4778,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -4776,7 +4798,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ],
@@ -4796,7 +4818,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -4816,7 +4838,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "vac_sealer", 10 ], [ "makeshift_sealer", 20 ] ] ],
@@ -4836,7 +4858,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "vac_sealer", 5 ], [ "makeshift_sealer", 10 ] ] ],
@@ -4855,7 +4877,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "vac_sealer", 5 ], [ "makeshift_sealer", 10 ] ] ],
@@ -4877,7 +4899,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -4897,7 +4919,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 1,
- "time": 2750,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -4910,7 +4932,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"charges": 15,
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
@@ -4935,7 +4957,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "rock_quern", -1 ], [ "clay_quern", -1 ] ] ],
@@ -4948,7 +4970,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -4962,7 +4984,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -4976,7 +4998,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 20,
+ "time": "0 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "chem_ethanol", 125 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
@@ -4987,7 +5009,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 20,
+ "time": "0 m",
"charges": 1,
"autolearn": true,
"flags": [ "BLIND_EASY" ],
@@ -5010,7 +5032,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 20,
+ "time": "0 m",
"charges": 1,
"autolearn": true,
"flags": [ "BLIND_EASY" ],
@@ -5034,7 +5056,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "water_boiling_heat", 6, "LIST" ] ] ],
@@ -5047,7 +5069,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "water_boiling_heat", 6, "LIST" ] ] ],
@@ -5060,7 +5082,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 4, "LIST" ] ] ],
@@ -5073,7 +5095,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -5086,7 +5108,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 9000,
+ "time": "9 m",
"charges": 2,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5125,7 +5147,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 1,
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5160,7 +5182,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5173,7 +5195,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 7500,
+ "time": "7 m",
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5254,7 +5276,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 7500,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5322,7 +5344,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 9000,
+ "time": "9 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5359,7 +5381,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"charges": 2,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5396,7 +5418,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 3,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5414,7 +5436,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 3,
- "time": 8000,
+ "time": "8 m",
"book_learn": [ [ "cookbook_human", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5430,7 +5452,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -5442,7 +5464,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 1000,
+ "time": "1 m",
"charges": 1,
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
@@ -5457,7 +5479,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5475,7 +5497,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5493,7 +5515,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"charges": 4,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5519,7 +5541,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"charges": 4,
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5546,7 +5568,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5563,7 +5585,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"book_learn": [ [ "cookbook_human", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5581,7 +5603,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"book_learn": [ [ "cookbook_human", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5598,7 +5620,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 1750,
+ "time": "1 m",
"charges": 1,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5612,7 +5634,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5648,7 +5670,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5666,7 +5688,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5683,7 +5705,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5700,7 +5722,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5714,7 +5736,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5728,7 +5750,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5743,7 +5765,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5758,7 +5780,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5773,7 +5795,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"book_learn": [ [ "cookbook_human", 4 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -5787,7 +5809,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 2500,
+ "time": "2 m",
"charges": 1,
"autolearn": true,
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5801,7 +5823,7 @@
"skill_used": "cooking",
"difficulty": 3,
"charges": 4,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -5814,7 +5836,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 18000,
+ "time": "18 m",
"charges": 2,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -5834,7 +5856,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -5876,7 +5898,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -5894,7 +5916,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -5913,7 +5935,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -5932,7 +5954,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -5952,7 +5974,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -5973,7 +5995,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -5995,7 +6017,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "cookbook_human", 6 ] ],
"batch_time_factors": [ 83, 5 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -6013,7 +6035,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -6026,7 +6048,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"charges": 8,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -6042,7 +6064,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -6057,7 +6079,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -6070,7 +6092,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -6091,7 +6113,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -6143,7 +6165,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -6155,7 +6177,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [
@@ -6176,7 +6198,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 50, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -6190,7 +6212,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 3,
- "time": 3500,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
@@ -6203,7 +6225,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 90000,
+ "time": "90 m",
"book_learn": [ [ "recipe_creepy", 5 ], [ "recipe_serum", 6 ] ],
"qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "CUT", "level": 1 } ],
"components": [
@@ -6222,7 +6244,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -6240,7 +6262,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"result_mult": 2,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -6259,7 +6281,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6284,7 +6306,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6309,7 +6331,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6334,7 +6356,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6373,7 +6395,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"charges": 1,
"autolearn": true,
"contained": true,
@@ -6400,7 +6422,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6425,7 +6447,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6451,7 +6473,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6513,7 +6535,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6560,7 +6582,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6607,7 +6629,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"contained": true,
"batch_time_factors": [ 83, 5 ],
"book_learn": [ [ "cookbook_human", 4 ] ],
@@ -6655,7 +6677,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -6727,7 +6749,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -6742,7 +6764,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 3,
- "time": 35000,
+ "time": "35 m",
"charges": 3,
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
@@ -6769,7 +6791,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -6826,7 +6848,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -6841,7 +6863,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -6855,7 +6877,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -6869,7 +6891,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -6883,7 +6905,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -6897,7 +6919,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -6911,7 +6933,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 6 ],
"difficulty": 5,
- "time": 12000,
+ "time": "12 m",
"batch_time_factors": [ 80, 4 ],
"book_learn": [ [ "textbook_survival", 5 ], [ "atomic_survival", 4 ], [ "survival_book", 3 ] ],
"qualities": [ { "id": "BOIL", "level": 1 }, { "id": "CUT", "level": 1 } ],
@@ -6924,7 +6946,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "tea", 1 ] ], [ [ "milk", 1 ], [ "milk_reconstituted", 1 ], [ "milk_powder", 1 ], [ "con_milk", 1 ] ] ]
@@ -6935,7 +6957,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 1500,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [
@@ -6950,7 +6972,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -6971,7 +6993,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 2,
- "time": 3500,
+ "time": "3 m",
"autolearn": true,
"components": [ [ [ "gin", 1 ] ], [ [ "honeycomb", 1 ], [ "honey_bottled", 1 ] ], [ [ "lemonade", 1 ] ] ]
},
@@ -6982,7 +7004,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "lemon", 1 ], [ "irradiated_lemon", 1 ] ], [ [ "whiskey", 1 ], [ "single_malt_whiskey", 1 ] ] ]
@@ -6993,7 +7015,7 @@
"category": "CC_FOOD",
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
- "time": 3000,
+ "time": "3 m",
"charges": 5,
"autolearn": true,
"flags": [ "BLIND_HARD" ],
@@ -7006,7 +7028,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 4000,
+ "time": "4 m",
"charges": 15,
"autolearn": true,
"flags": [ "BLIND_HARD" ],
@@ -7024,7 +7046,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 4 ],
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"batch_time_factors": [ 80, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -7039,7 +7061,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 5,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "water_boiling_heat", 1, "LIST" ] ] ],
@@ -7052,7 +7074,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 12, "LIST" ] ] ],
@@ -7070,7 +7092,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "rag", -1 ] ] ],
@@ -7085,7 +7107,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 5,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 80, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
@@ -7100,7 +7122,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "tailor", 1 ],
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "survival_book", 6 ], [ "scots_cookbook", 3 ] ],
"batch_time_factors": [ 50, 4 ],
"using": [ [ "sewing_standard", 2 ] ],
@@ -7122,7 +7144,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "tailor", 1 ],
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "survival_book", 6 ], [ "scots_cookbook", 3 ] ],
"result_mult": 2,
"batch_time_factors": [ 50, 4 ],
@@ -7144,7 +7166,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "tailor", 1 ],
- "time": 30000,
+ "time": "30 m",
"charges": 2,
"book_learn": [ [ "cookbook_human", 3 ] ],
"batch_time_factors": [ 50, 4 ],
@@ -7173,7 +7195,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"book_learn": [ [ "family_cookbook", 4 ], [ "scots_cookbook", 2 ] ],
"batch_time_factors": [ 50, 4 ],
"qualities": [ { "id": "COOK", "level": 3 }, { "id": "CUT", "level": 1 } ],
@@ -7191,7 +7213,7 @@
"subcategory": "CSC_FOOD_SNACK",
"skill_used": "cooking",
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"charges": 5,
"book_learn": [ [ "family_cookbook", 6 ], [ "scots_cookbook", 2 ] ],
"batch_time_factors": [ 50, 4 ],
@@ -7220,7 +7242,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"components": [ [ [ "honey_bottled", 5 ] ], [ [ "sugar", 35 ] ] ]
@@ -7232,7 +7254,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -7246,7 +7268,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"charges": 4,
"book_learn": [ [ "family_cookbook", 2 ] ],
"qualities": [ { "id": "COOK", "level": 3 }, { "id": "BOIL", "level": 2 } ],
@@ -7267,7 +7289,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 6,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "family_cookbook", 2 ] ],
"qualities": [ { "id": "COOK", "level": 3 }, { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
@@ -7287,7 +7309,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"result_mult": 2,
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -7306,7 +7328,7 @@
"subcategory": "CSC_FOOD_DRINKS",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "family_cookbook", 2 ] ],
"charges": 6,
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -7329,7 +7351,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 11250,
+ "time": "11 m",
"autolearn": true,
"tools": [ [ [ "food_processor", 20 ] ] ],
"components": [ [ [ "oats", 2 ] ] ]
@@ -7342,7 +7364,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 11250,
+ "time": "11 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "food_processor", 20 ] ] ],
@@ -7357,7 +7379,7 @@
"skill_used": "cooking",
"difficulty": 2,
"charges": 15,
- "time": 11250,
+ "time": "11 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "food_processor", 20 ] ] ],
@@ -7381,7 +7403,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "food_processor", 20 ] ] ],
@@ -7395,7 +7417,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "food_processor", 20 ] ] ],
@@ -7409,7 +7431,7 @@
"skill_used": "cooking",
"difficulty": 2,
"skills_required": [ "survival", 1 ],
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"components": [
[
@@ -7433,7 +7455,7 @@
"skill_used": "cooking",
"difficulty": 1,
"skills_required": [ "survival", 1 ],
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"components": [
[
@@ -7447,6 +7469,19 @@
[ "seed_blackberries", 1 ],
[ "seed_blueberries", 1 ],
[ "seed_cranberries", 1 ],
+ [ "seed_huckleberries", 1 ],
+ [ "seed_mulberries", 1 ],
+ [ "seed_elderberries", 1 ],
+ [ "seed_grapes", 1 ],
+ [ "seed_rose", 1 ],
+ [ "seed_tobacco", 1 ],
+ [ "seed_beans", 1 ],
+ [ "soybean_seed", 1 ],
+ [ "seed_lentils", 1 ],
+ [ "seed_cattail", 1 ],
+ [ "seed_dahlia", 1 ],
+ [ "seed_flower", 1 ],
+ [ "seed_cactus", 1 ],
[ "seed_hops", 1 ],
[ "seed_raspberries", 1 ],
[ "seed_strawberries", 1 ],
@@ -7502,7 +7537,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "food_processor", 20 ] ] ],
@@ -7516,7 +7551,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 11250,
+ "time": "11 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "food_processor", 20 ] ] ],
@@ -7530,7 +7565,7 @@
"skill_used": "cooking",
"difficulty": 4,
"charges": 2,
- "time": 70000,
+ "time": "70 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
@@ -7559,7 +7594,7 @@
"skill_used": "cooking",
"difficulty": 4,
"charges": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"batch_time_factors": [ 50, 3 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
@@ -7588,7 +7623,7 @@
"skill_used": "cooking",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 2,
- "time": 67500,
+ "time": "67 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ],
@@ -7604,7 +7639,7 @@
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 2,
"charges": 15,
- "time": 67500,
+ "time": "67 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -7630,7 +7665,7 @@
"skill_used": "cooking",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 2,
- "time": 67500,
+ "time": "67 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ],
@@ -7645,7 +7680,7 @@
"skill_used": "cooking",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -7661,7 +7696,7 @@
"skill_used": "cooking",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -7677,7 +7712,7 @@
"skill_used": "cooking",
"difficulty": 3,
"skills_required": [ "survival", 2 ],
- "time": 67500,
+ "time": "67 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "surface_heat", 5, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ],
@@ -7690,7 +7725,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 5,
- "time": 45000,
+ "time": "45 m",
"charges": 3,
"autolearn": false,
"book_learn": [ [ "cookbook_human", 5 ] ],
@@ -7726,7 +7761,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"charges": 4,
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
@@ -7741,7 +7776,7 @@
"skill_used": "cooking",
"difficulty": 1,
"charges": 3,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "food_processor", 40 ] ] ],
@@ -7772,7 +7807,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -7790,7 +7825,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -7812,7 +7847,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -7835,7 +7870,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -7852,7 +7887,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"batch_time_factors": [ 83, 5 ],
"autolearn": true,
@@ -7875,7 +7910,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
"result_mult": 12,
@@ -7897,7 +7932,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
"result_mult": 12,
@@ -7918,7 +7953,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -7941,7 +7976,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"book_learn": [ [ "cookbook_human", 6 ] ],
"batch_time_factors": [ 83, 5 ],
@@ -7963,7 +7998,7 @@
"subcategory": "CSC_FOOD_MEAT",
"skill_used": "cooking",
"difficulty": 6,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -7985,7 +8020,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 5,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 83, 5 ],
@@ -8031,7 +8066,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8090,7 +8125,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8135,7 +8170,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8180,7 +8215,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8251,7 +8286,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 80, 4 ],
@@ -8296,7 +8331,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8338,7 +8373,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 70000,
+ "time": "70 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8357,7 +8392,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 70000,
+ "time": "70 m",
"result_mult": 12,
"book_learn": [ [ "cookbook_human", 4 ] ],
"batch_time_factors": [ 80, 4 ],
@@ -8375,7 +8410,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 120000,
+ "time": "120 m",
"result_mult": 12,
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
@@ -8397,7 +8432,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ],
@@ -8416,7 +8451,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -8445,7 +8480,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -8465,7 +8500,7 @@
"skill_used": "cooking",
"difficulty": 3,
"autolearn": true,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "cookbook_italian", 2 ], [ "family_cookbook", 2 ], [ "mag_cooking", 2 ] ],
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -8494,7 +8529,7 @@
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
"autolearn": true,
- "time": 120000,
+ "time": "120 m",
"result_mult": 12,
"book_learn": [ [ "cookbook_italian", 2 ], [ "family_cookbook", 2 ], [ "mag_cooking", 2 ] ],
"batch_time_factors": [ 80, 4 ],
@@ -8526,7 +8561,7 @@
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
"autolearn": true,
- "time": 45000,
+ "time": "45 m",
"result_mult": 2,
"book_learn": [ [ "cookbook_italian", 2 ], [ "family_cookbook", 2 ], [ "mag_cooking", 2 ] ],
"batch_time_factors": [ 80, 4 ],
@@ -8555,7 +8590,7 @@
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
"autolearn": true,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "cookbook_italian", 2 ], [ "family_cookbook", 2 ], [ "mag_cooking", 2 ] ],
"contained": true,
"batch_time_factors": [ 83, 5 ],
@@ -8587,7 +8622,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"//": "Making the very first starter is a lot more finnicky than splitting it once it's mature.",
"autolearn": true,
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -8600,7 +8635,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"result_mult": 2,
"autolearn": true,
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
@@ -8614,7 +8649,7 @@
"subcategory": "CSC_FOOD_BREAD",
"skill_used": "cooking",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 50, 4 ],
"autolearn": true,
"qualities": [ { "id": "COOK", "level": 3 } ],
@@ -8628,7 +8663,7 @@
"subcategory": "CSC_FOOD_VEGGI",
"skill_used": "cooking",
"difficulty": 2,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 1 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
diff --git a/data/json/recipes/recipe_groups.json b/data/json/recipes/recipe_groups.json
index 42d82a9c3d991..48572ecd51ebd 100644
--- a/data/json/recipes/recipe_groups.json
+++ b/data/json/recipes/recipe_groups.json
@@ -12,20 +12,13 @@
},
{
"type": "recipe_group",
- "name": "faction_base_kitchen_1",
+ "name": "kitchen_recipes_1",
"building_type": "COOK",
"recipes": [
{ "id": "tinder", "description": " Craft: Tinder" },
{ "id": "meat_cooked", "description": " Cook: Meat, Cooked" },
{ "id": "fish_cooked", "description": " Cook: Fish, Cooked" },
- { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_kitchen_2",
- "building_type": "COOK",
- "recipes": [
+ { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" },
{ "id": "boiled_egg", "description": " Cook: Egg, Boiled" },
{ "id": "starch", "description": " Cook: Starch" },
{ "id": "flatbread", "description": " Cook: Flatbread" },
@@ -34,64 +27,36 @@
},
{
"type": "recipe_group",
- "name": "faction_base_kitchen_3",
+ "name": "kitchen_recipes_2",
"building_type": "COOK",
"recipes": [
{ "id": "flour", "description": " Cook: Flour" },
{ "id": "salt", "description": " Cook: Salt" },
{ "id": "bread", "description": " Cook: Bread" },
- { "id": "fruit_leather", "description": " Cook: Fruit Leather" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_kitchen_4",
- "building_type": "COOK",
- "recipes": [
+ { "id": "fruit_leather", "description": " Cook: Fruit Leather" },
{ "id": "jerky", "description": " Cook: Meat Jerky" },
{ "id": "mushroom_cooked", "description": " Cook: Mushroom, Cooked" },
{ "id": "lard", "description": " Cook: Lard" },
- { "id": "cornmeal", "description": " Cook: Cornmeal" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_kitchen_5",
- "building_type": "COOK",
- "recipes": [
- { "id": "pie_meat", "description": " Cook: Meat Pie" },
+ { "id": "cornmeal", "description": " Cook: Cornmeal" },
{ "id": "meat_smoked", "description": " Cook: Meat, Smoked" },
- { "id": "pie_veggy", "description": " Cook: Veggy Pie" },
- { "id": "fish_smoked", "description": " Cook: Fish, Smoked" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_kitchen_6",
- "building_type": "COOK",
- "recipes": [
- { "id": "sugar", "description": " Cook: Sugar" },
+ { "id": "fish_smoked", "description": " Cook: Fish, Smoked" },
{ "id": "dry_mushroom", "description": " Cook: Mushroom, Dried" },
{ "id": "dry_fruit", "description": " Cook: Fruit, Dehydrated" },
- { "id": "sausage", "description": " Cook: Sausage" }
+ { "id": "sausage", "description": " Cook: Sausage" },
+ { "id": "sausage_wasteland", "description": " Cook: Sausage, Wasteland" }
]
},
{
"type": "recipe_group",
- "name": "faction_base_kitchen_7",
+ "name": "kitchen_recipes_3",
"building_type": "COOK",
"recipes": [
+ { "id": "pie_meat", "description": " Cook: Meat Pie" },
+ { "id": "pie_veggy", "description": " Cook: Veggy Pie" },
+ { "id": "sugar", "description": " Cook: Sugar" },
{ "id": "hardtack", "description": " Cook: Hardtack" },
- { "id": "sausage_wasteland", "description": " Cook: Sausage, Wasteland" },
{ "id": "veggy_pickled_jarred", "description": " Cook: Veggy, Pickled" },
- { "id": "cheese_hard", "description": " Cook: Cheese, Hard" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_kitchen_8",
- "building_type": "COOK",
- "recipes": [
+ { "id": "cheese_hard", "description": " Cook: Cheese, Hard" },
{ "id": "pemmican", "description": " Cook: Pemmican" },
{ "id": "veggy_aspic", "description": " Cook: Veggy Aspic" },
{ "id": "meat_canned_jarred", "description": " Cook: Meat, Canned" },
@@ -100,19 +65,16 @@
},
{
"type": "recipe_group",
- "name": "faction_base_camp_0",
+ "name": "primitive_camp_recipes_1",
"building_type": "BASE",
- "recipes": [ { "id": "tinder", "description": " Craft: Tinder" } ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_camp_9",
- "building_type": "BASE",
- "recipes": [ { "id": "pointy_stick", "description": " Craft: Pointy Sticks" } ]
+ "recipes": [
+ { "id": "tinder", "description": " Craft: Tinder" },
+ { "id": "pointy_stick", "description": " Craft: Pointy Sticks" }
+ ]
},
{
"type": "recipe_group",
- "name": "faction_base_farm_4",
+ "name": "farm_recipes_1",
"building_type": "FARM",
"recipes": [
{ "id": "seed_veggy_wild", "description": " Craft: Wild Veggy Stems" },
@@ -123,33 +85,27 @@
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_1",
+ "name": "blacksmith_recipes_1",
"building_type": "SMITH",
"recipes": [
{ "id": "scrap_copper", "description": " Craft: Copper, Scrap" },
{ "id": "charcoal_npc", "description": " Craft: Charcoal" },
{ "id": "spike", "description": " Craft: Spike" },
{ "id": "caltrops_glass", "description": " Craft: Glass Caltrops" },
- { "id": "steel_chunk", "description": " Craft: Steel, Chunk" }
+ { "id": "steel_chunk", "description": " Craft: Steel, Chunk" },
+ { "id": "crucible", "description": " Craft: Crucible" },
+ { "id": "anvil", "description": " Craft: Anvil" },
+ { "id": "steel_lump", "description": " Craft: Steel, Lump" }
]
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_2",
+ "name": "blacksmith_recipes_2",
"building_type": "SMITH",
"recipes": [
{ "id": "copper_knife", "description": " Craft: Knife, Copper" },
{ "id": "sword_crude", "description": " Craft: Sword, Crude" },
{ "id": "pot_copper", "description": " Craft: Pot, Copper" },
- { "id": "anvil", "description": " Craft: Anvil" },
- { "id": "steel_lump", "description": " Craft: Steel, Lump" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_blacksmith_3",
- "building_type": "SMITH",
- "recipes": [
{ "id": "bolt_metal", "description": " Craft: Crossbow Bolt, Steel" },
{ "id": "armor_scrapsuit", "description": " Craft: Armor, Scrap Suit" },
{ "id": "copper_ax", "description": " Craft: Axe, Copper" },
@@ -158,7 +114,7 @@
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_4",
+ "name": "blacksmith_recipes_3",
"building_type": "SMITH",
"recipes": [
{ "id": "chisel", "description": " Craft: Metalworking Chisel" },
@@ -171,20 +127,13 @@
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_5",
+ "name": "blacksmith_recipes_4",
"building_type": "SMITH",
"recipes": [
{ "id": "blade", "description": " Craft: Blade" },
{ "id": "bearing", "description": " Craft: Bearings" },
{ "id": "caltrops", "description": " Craft: Caltrops" },
- { "id": "hand_drill", "description": " Craft: Hand Drill" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_blacksmith_6",
- "building_type": "SMITH",
- "recipes": [
+ { "id": "hand_drill", "description": " Craft: Hand Drill" },
{ "id": "sheet_metal", "description": " Craft: Sheet Metal" },
{ "id": "chain", "description": " Craft: Chain" },
{ "id": "shovel", "description": " Craft: Shovel" },
@@ -195,7 +144,7 @@
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_7",
+ "name": "blacksmith_recipes_5",
"building_type": "SMITH",
"recipes": [
{ "id": "knife_combat", "description": " Craft: Knife, Combat" },
@@ -203,14 +152,7 @@
{ "id": "machete", "description": " Craft: Machete" },
{ "id": "pipe", "description": " Craft: Pipe" },
{ "id": "screwdriver", "description": " Craft: Screwdriver" },
- { "id": "throwing_axe", "description": " Craft: Axe, Throwing" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_blacksmith_8",
- "building_type": "SMITH",
- "recipes": [
+ { "id": "throwing_axe", "description": " Craft: Axe, Throwing" },
{ "id": "wrench", "description": " Craft: Wrench" },
{ "id": "hatchet", "description": " Craft: Hatchet" },
{ "id": "throwing_knife", "description": " Craft: Knife, Throwing" },
@@ -221,7 +163,7 @@
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_9",
+ "name": "blacksmith_recipes_6",
"building_type": "SMITH",
"recipes": [
{ "id": "pliers", "description": " Craft: Pliers" },
@@ -229,27 +171,13 @@
{ "id": "cuirass_lightplate", "description": " Craft: Armor, Cuirass" },
{ "id": "pockknife", "description": " Craft: Knife, Pocket" },
{ "id": "warhammer", "description": " Craft: Hammer, War" },
- { "id": "helmet_plate", "description": " Craft: Helm, Great" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_blacksmith_10",
- "building_type": "SMITH",
- "recipes": [
+ { "id": "helmet_plate", "description": " Craft: Helm, Great" },
{ "id": "armor_lightplate", "description": " Craft: Armor, Plate" },
{ "id": "broadsword", "description": " Craft: Sword, Broadsword" },
{ "id": "scimitar", "description": " Craft: Sword, Scimitar" },
{ "id": "fire_ax", "description": " Craft: Axe, Fire" },
{ "id": "hacksaw", "description": " Craft: Hacksaw" },
- { "id": "saw", "description": " Craft: Woodsaw" }
- ]
- },
- {
- "type": "recipe_group",
- "name": "faction_base_blacksmith_11",
- "building_type": "SMITH",
- "recipes": [
+ { "id": "saw", "description": " Craft: Woodsaw" },
{ "id": "pike", "description": " Craft: Spear, Awl Pike" },
{ "id": "rapier", "description": " Craft: Sword, Rapier" },
{ "id": "halligan", "description": " Craft: Halligan Bar" },
@@ -259,7 +187,7 @@
},
{
"type": "recipe_group",
- "name": "faction_base_blacksmith_12",
+ "name": "blacksmith_recipes_7",
"building_type": "SMITH",
"recipes": [
{ "id": "sheet_metal_npc_drop", "description": " Craft: Sheet Metal, Drop Hammer" },
diff --git a/data/json/recipes/recipe_medsandchemicals.json b/data/json/recipes/recipe_medsandchemicals.json
index 2147044dea41b..e1b03e84737d3 100644
--- a/data/json/recipes/recipe_medsandchemicals.json
+++ b/data/json/recipes/recipe_medsandchemicals.json
@@ -5,7 +5,7 @@
"category": "CC_CHEM",
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"flags": [ "BLIND_HARD" ],
"components": [ [ [ "water_clean", 1 ], [ "water", 1 ] ], [ [ "salt", 10 ] ] ]
@@ -18,7 +18,7 @@
"skill_used": "firstaid",
"difficulty": 2,
"skills_required": [ "cooking", 2 ],
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "textbook_firstaid", 2 ],
[ "pocket_firstaid", 2 ],
@@ -39,7 +39,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -54,7 +54,7 @@
"skill_used": "electronics",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
@@ -77,7 +77,7 @@
"skill_used": "cooking",
"skills_required": [ "electronics", 1 ],
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "adv_chemistry", 1 ], [ "textbook_chemistry", 1 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"components": [ [ [ "salt_water", 1 ] ] ]
@@ -89,7 +89,7 @@
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
"tools": [ [ [ "surface_heat", 7, "LIST" ] ] ],
@@ -101,7 +101,7 @@
"category": "CC_CHEM",
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"reversible": true,
"flags": [ "BLIND_HARD" ],
@@ -114,7 +114,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"batch_time_factors": [ 67, 5 ],
"tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ],
@@ -126,7 +126,7 @@
"category": "CC_CHEM",
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"reversible": true,
"flags": [ "BLIND_HARD" ],
@@ -139,7 +139,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "textbook_chemistry", 5 ], [ "adv_chemistry", 5 ], [ "recipe_labchem", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 15, "LIST" ] ] ],
@@ -156,7 +156,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
@@ -170,7 +170,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [
[ "textbook_chemistry", 2 ],
[ "adv_chemistry", 2 ],
@@ -191,7 +191,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "pocket_survival", 3 ], [ "atomic_survival", 2 ], [ "textbook_survival", 2 ], [ "survival_book", 3 ] ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
"components": [ [ [ "meal_bone", 1 ] ], [ [ "water_clean", 1 ] ] ]
@@ -204,7 +204,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "pocket_survival", 3 ], [ "atomic_survival", 2 ], [ "textbook_survival", 2 ], [ "survival_book", 3 ] ],
"tools": [ [ [ "surface_heat", 8, "LIST" ] ] ],
"components": [ [ [ "meal_bone", 1 ] ], [ [ "dry_fruit", 1 ], [ "sugar", 45 ] ], [ [ "water_clean", 1 ] ] ]
@@ -217,7 +217,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [
[ "textbook_chemistry", 2 ],
[ "adv_chemistry", 2 ],
@@ -238,7 +238,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [
[ "textbook_chemistry", 2 ],
[ "adv_chemistry", 2 ],
@@ -259,7 +259,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "textbook_chemistry", 5 ],
[ "adv_chemistry", 4 ],
@@ -280,7 +280,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "textbook_chemistry", 7 ],
[ "adv_chemistry", 6 ],
@@ -306,7 +306,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "textbook_chemistry", 8 ],
[ "adv_chemistry", 7 ],
@@ -333,7 +333,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 2000,
+ "time": "2 m",
"book_learn": [ [ "textbook_chemistry", 7 ], [ "adv_chemistry", 7 ], [ "atomic_survival", 6 ], [ "recipe_labchem", 6 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -349,7 +349,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 4000,
+ "time": "4 m",
"book_learn": [ [ "textbook_chemistry", 7 ], [ "adv_chemistry", 7 ], [ "atomic_survival", 6 ], [ "recipe_labchem", 6 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -362,7 +362,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 7,
- "time": 4000,
+ "time": "4 m",
"book_learn": [ [ "textbook_chemistry", 8 ], [ "adv_chemistry", 8 ], [ "atomic_survival", 7 ], [ "recipe_labchem", 7 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
@@ -375,7 +375,7 @@
"subcategory": "CSC_CHEM_DRUGS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_chemistry", 8 ], [ "adv_chemistry", 6 ], [ "recipe_labchem", 7 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -395,7 +395,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 8,
- "time": 10000,
+ "time": "10 m",
"book_learn": [
[ "textbook_gaswarfare", 8 ],
[ "recipe_creepy", 8 ],
@@ -429,7 +429,7 @@
"subcategory": "CSC_CHEM_MUTAGEN",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "jabberwock_heart", 1 ] ] ]
@@ -442,7 +442,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_labchem", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -456,7 +456,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -474,7 +474,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -488,7 +488,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_maiar", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -506,7 +506,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -520,7 +520,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_maiar", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -534,7 +534,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -548,7 +548,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_maiar", 8 ], [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -562,7 +562,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ], [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -576,7 +576,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -594,7 +594,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -608,7 +608,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -626,7 +626,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -640,7 +640,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 7 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -654,7 +654,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -668,7 +668,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -682,7 +682,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -696,7 +696,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -724,7 +724,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -738,7 +738,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -752,7 +752,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -766,7 +766,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -780,7 +780,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -794,7 +794,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -808,7 +808,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -822,7 +822,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -840,7 +840,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -854,7 +854,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -868,7 +868,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -882,7 +882,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -896,7 +896,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -910,7 +910,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_maiar", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -924,7 +924,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 9,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -938,7 +938,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "recipe_medicalmut", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -978,7 +978,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_medicalmut", 9 ], [ "recipe_serum", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -991,7 +991,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"note": "'stick the blob globs in a can and seal it' does not seem hugely challenging",
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1005,7 +1005,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 9,
- "time": 10000,
+ "time": "10 m",
"book_learn": [
[ "textbook_gaswarfare", 9 ],
[ "atomic_survival", 9 ],
@@ -1029,7 +1029,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_serum", 9 ], [ "recipe_labchem", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -1043,7 +1043,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 10,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_alpha", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 50, "LIST" ] ] ],
@@ -1062,7 +1062,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_alpha", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -1076,7 +1076,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 10,
- "time": 12500,
+ "time": "12 m",
"book_learn": [ [ "recipe_elfa", 10 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 31, "LIST" ] ] ],
@@ -1090,7 +1090,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_elfa", 10 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -1104,7 +1104,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_chimera", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -1118,7 +1118,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_chimera", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -1132,7 +1132,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 10,
- "time": 12500,
+ "time": "12 m",
"book_learn": [ [ "recipe_raptor", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 31, "LIST" ] ] ],
@@ -1146,7 +1146,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 3 ],
"difficulty": 10,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "recipe_raptor", 9 ] ],
"qualities": [ { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 37, "LIST" ] ] ],
@@ -1160,7 +1160,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ], [ "atomic_survival", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1174,7 +1174,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 7,
- "time": 36000,
+ "time": "36 m",
"book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 7 ], [ "recipe_labchem", 6 ], [ "atomic_survival", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1194,7 +1194,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 4,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "adv_chemistry", 2 ], [ "textbook_chemistry", 2 ], [ "recipe_labchem", 2 ], [ "atomic_survival", 3 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1207,7 +1207,7 @@
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [
[ "adv_chemistry", 5 ],
[ "textbook_chemistry", 5 ],
@@ -1226,7 +1226,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -1239,7 +1239,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 36000,
+ "time": "36 m",
"book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -1256,7 +1256,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 8,
- "time": 12000,
+ "time": "12 m",
"book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1269,7 +1269,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 180000,
+ "time": "180 m",
"batch_time_factors": [ 80, 4 ],
"book_learn": [ [ "adv_chemistry", 5 ], [ "textbook_chemistry", 5 ], [ "recipe_labchem", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 1 } ],
@@ -1284,7 +1284,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 1 } ],
@@ -1298,7 +1298,7 @@
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
"difficulty": 3,
- "time": 6000,
+ "time": "6 m",
"book_learn": [ [ "adv_chemistry", 3 ], [ "textbook_chemistry", 3 ], [ "atomic_survival", 4 ] ],
"using": [ [ "sewing_standard", 1 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -1313,7 +1313,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 3,
- "time": 1200,
+ "time": "1 m",
"book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ], [ "recipe_labchem", 3 ] ],
"tools": [ [ [ "surface_heat", 18, "LIST" ] ] ],
"components": [ [ [ "meat_tainted", 1 ], [ "dry_meat_tainted", 1 ] ], [ [ "ammonia", 1 ] ] ]
@@ -1326,7 +1326,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "survival",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"flags": [ "BLIND_HARD", "ALLOW_ROTTEN" ],
@@ -1347,7 +1347,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "adv_chemistry", 2 ], [ "textbook_chemistry", 2 ], [ "recipe_labchem", 3 ], [ "atomic_survival", 2 ] ],
"flags": [ "ALLOW_ROTTEN" ],
@@ -1367,7 +1367,7 @@
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 7, "LIST" ] ] ],
"components": [
@@ -1384,7 +1384,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "recipe_creepy", 7 ], [ "recipe_serum", 7 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -1397,7 +1397,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 45000,
+ "time": "45 m",
"qualities": [ { "id": "CHEM", "level": 1 } ],
"autolearn": true,
"tools": [ [ [ "surface_heat", 18, "LIST" ] ] ],
@@ -1416,7 +1416,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [
[ "textbook_chemistry", 2 ],
[ "adv_chemistry", 2 ],
@@ -1436,7 +1436,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 7,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "recipe_labchem", 7 ], [ "textbook_chemistry", 7 ] ],
"qualities": [ { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1451,7 +1451,7 @@
"skill_used": "cooking",
"skills_required": [ [ "firstaid", 3 ] ],
"difficulty": 4,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"book_learn": [ [ "recipe_labchem", 3 ], [ "textbook_chemistry", 3 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 1 } ],
@@ -1465,7 +1465,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 7,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -1478,7 +1478,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 50, "LIST" ] ] ],
@@ -1492,7 +1492,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ] ],
"batch_time_factors": [ 80, 4 ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 }, { "id": "DISTILL", "level": 1 } ],
@@ -1506,7 +1506,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 2500,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1520,7 +1520,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1534,7 +1534,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "textbook_anarch", 7 ], [ "recipe_labchem", 5 ], [ "textbook_chemistry", 6 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -1549,7 +1549,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"batch_time_factors": [ 80, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CONTAIN", "level": 1 } ],
@@ -1563,7 +1563,7 @@
"subcategory": "CSC_AMMO_COMPONENTS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "textbook_anarch", 6 ], [ "recipe_labchem", 4 ], [ "textbook_chemistry", 5 ], [ "textbook_armschina", 5 ] ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"components": [ [ [ "chem_saltpetre", 150 ] ], [ [ "chem_sulphur", 20 ] ], [ [ "charcoal", 10 ], [ "coal_lump", 10 ] ] ]
@@ -1577,7 +1577,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 1 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"book_learn": [
[ "textbook_anarch", 4 ],
[ "recipe_bullets", 2 ],
@@ -1597,7 +1597,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 180000,
+ "time": "180 m",
"book_learn": [ [ "textbook_anarch", 6 ], [ "recipe_labchem", 5 ], [ "textbook_chemistry", 7 ] ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"components": [ [ [ "chem_ammonium_nitrate", 90 ] ], [ [ "diesel", 500 ], [ "gasoline", 500 ] ] ]
@@ -1609,7 +1609,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 4000,
+ "time": "4 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -1622,7 +1622,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"batch_time_factors": [ 67, 5 ],
"book_learn": [ [ "recipe_labchem", 6 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 3 } ],
@@ -1635,7 +1635,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"batch_time_factors": [ 80, 4 ],
"book_learn": [ [ "textbook_chemistry", 5 ], [ "adv_chemistry", 5 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 2 } ],
@@ -1650,7 +1650,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"batch_time_factors": [ 80, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ],
@@ -1665,7 +1665,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 80, 4 ],
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "DISTILL", "level": 1 } ],
@@ -1679,7 +1679,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 7,
- "time": 75000,
+ "time": "75 m",
"book_learn": [ [ "recipe_labchem", 8 ], [ "textbook_anarch", 10 ] ],
"qualities": [ { "id": "BOIL", "level": 2 }, { "id": "CHEM", "level": 3 } ],
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
@@ -1692,7 +1692,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "BOIL", "level": 2 } ],
"components": [ [ [ "chem_aluminium_powder", 50 ] ], [ [ "chem_chromium_oxide", 50 ] ] ]
@@ -1704,7 +1704,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 7,
- "time": 55000,
+ "time": "55 m",
"book_learn": [ [ "recipe_labchem", 8 ] ],
"qualities": [ { "id": "BOIL", "level": 2 } ],
"components": [ [ [ "chem_hexamine", 25 ] ], [ [ "chem_hydrogen_peroxide_conc", 5 ] ], [ [ "chem_acetic_acid", 2 ] ] ]
@@ -1716,7 +1716,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 4,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_anarch", 5 ], [ "recipe_labchem", 4 ], [ "textbook_chemistry", 5 ] ],
"qualities": [ { "id": "BOIL", "level": 2 } ],
"components": [ [ [ "chem_zinc_powder", 50 ] ], [ [ "chem_sulphur", 50 ] ], [ [ "superglue", 2 ] ] ]
@@ -1728,7 +1728,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_anarch", 4 ], [ "recipe_labchem", 3 ], [ "textbook_chemistry", 5 ] ],
"qualities": [ { "id": "BOIL", "level": 2 } ],
"tools": [ [ [ "hotplate", 50 ], [ "toolset", 50 ] ] ],
@@ -1742,7 +1742,7 @@
"skill_used": "survival",
"difficulty": 2,
"skills_required": [ "cooking", 1 ],
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 99, 1 ],
"autolearn": true,
"qualities": [ { "id": "CHEM", "level": 1 } ],
@@ -1757,7 +1757,7 @@
"skill_used": "firstaid",
"difficulty": 3,
"//": "This difficulty assumes that anaesthesia administration will be handled by the autodoc or the person using the kit. The included amount of ether is an estimate, based on average body size.",
- "time": 2500,
+ "time": "2 m",
"book_learn": [ [ "textbook_firstaid", 6 ], [ "emergency_book", 5 ] ],
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"components": [
@@ -1772,7 +1772,7 @@
"subcategory": "CSC_CHEM_CHEMICALS",
"skill_used": "cooking",
"difficulty": 6,
- "time": 80000,
+ "time": "80 m",
"book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 7 ] ],
"charges": 250,
"qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONTAIN", "level": 1 } ],
diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json
index 285ed91db9f5c..18b224acd9f92 100644
--- a/data/json/recipes/recipe_others.json
+++ b/data/json/recipes/recipe_others.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"skills_required": [ "traps", 1 ],
"difficulty": 2,
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -21,7 +21,7 @@
"skill_used": "fabrication",
"skills_required": [ "traps", 1 ],
"difficulty": 1,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "glass_shard", 3 ], [ "glass_sheet", 1 ] ], [ [ "superglue", 1 ], [ "bone_glue", 1 ] ] ]
@@ -33,7 +33,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"tools": [ [ [ "con_mix", 50 ] ] ],
"components": [ [ [ "material_cement", 50 ] ], [ [ "material_sand", 25 ] ], [ [ "pebble", 20 ] ] ]
@@ -45,7 +45,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 } ],
"components": [ [ [ "nail", 8 ] ], [ [ "2x4", 3 ] ] ]
@@ -56,7 +56,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "tailor",
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
@@ -68,12 +68,23 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "tailor",
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 12 ] ],
"components": [ [ [ "rag", 4 ] ], [ [ "cotton_ball", 8 ] ] ]
},
+ {
+ "type": "recipe",
+ "result": "wood_panel",
+ "category": "CC_OTHER",
+ "skill_used": "fabrication",
+ "time": 1000,
+ "autolearn": true,
+ "byproducts": [ [ "wood_panel", 1 ] ],
+ "qualities": [ { "id": "SAW_W", "level": 2 } ],
+ "components": [ [ [ "wood_sheet", 1 ] ] ]
+ },
{
"type": "recipe",
"result": "wind_mill",
@@ -81,7 +92,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 4 ],
"difficulty": 4,
- "time": 500000,
+ "time": "500 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -105,7 +116,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 4 ],
"difficulty": 4,
- "time": 550000,
+ "time": "550 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -116,7 +127,8 @@
{ "id": "SAW_W", "level": 2 }
],
"components": [
- [ [ "2x4", 30 ], [ "frame_wood", 5 ] ],
+ [ [ "2x4", 15 ], [ "frame_wood", 3 ] ],
+ [ [ "wood_panel", 6 ], [ "wood_sheet", 3 ] ],
[ [ "sheet_metal_small", 6 ] ],
[ [ "nail", 100 ] ],
[ [ "pipe", 8 ] ],
@@ -138,7 +150,7 @@
"difficulty": 2,
"book_learn": [ [ "fun_survival", 1 ], [ "manual_survival", 1 ], [ "textbook_survival", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "SCREW", "level": 1 } ],
- "time": 28000,
+ "time": "28 m",
"autolearn": true,
"components": [ [ [ "largebroketent", 1 ], [ "broketent", 2 ] ], [ [ "superglue", 2 ], [ "duct_tape", 20 ] ] ]
},
@@ -152,7 +164,7 @@
"difficulty": 2,
"book_learn": [ [ "fun_survival", 1 ], [ "manual_survival", 1 ], [ "textbook_survival", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "SCREW", "level": 1 } ],
- "time": 32000,
+ "time": "32 m",
"autolearn": true,
"components": [ [ [ "largebroketent", 2 ], [ "broketent", 4 ], [ "tent_kit", 3 ] ], [ [ "superglue", 3 ], [ "duct_tape", 40 ] ] ]
},
@@ -164,7 +176,7 @@
"skill_used": "fabrication",
"skills_required": [ "tailor", 1 ],
"difficulty": 1,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"components": [ [ [ "soap", 5 ] ], [ [ "water_clean", 3 ] ], [ [ "wool_staple", 1 ] ] ]
},
@@ -177,7 +189,7 @@
"skill_used": "fabrication",
"skills_required": [ "traps", 2 ],
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ],
@@ -190,7 +202,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "cooking",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -206,7 +218,7 @@
"skill_used": "cooking",
"skills_required": [ [ "survival", 1 ] ],
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 83, 3 ],
"flags": [ "BLIND_EASY" ],
@@ -220,7 +232,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -235,7 +247,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "mechanics",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "book_icef", 3 ], [ "textbook_mechanics", 3 ], [ "textbook_carpentry", 3 ] ],
@@ -250,7 +262,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -270,7 +282,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"reversible": true,
"decomp_learn": 3,
"autolearn": true,
@@ -291,7 +303,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 3 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_bullets", 6 ], [ "textbook_fabrication", 7 ] ],
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "swage", -1 ] ] ],
@@ -305,7 +317,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 2 ],
"difficulty": 5,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "manual_shotgun", 2 ], [ "manual_rifle", 2 ], [ "manual_smg", 2 ], [ "manual_pistol", 3 ], [ "recipe_bullets", 2 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -318,7 +330,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"using": [ [ "soldering_standard", 5 ] ],
@@ -338,7 +350,7 @@
"subcategory": "CSC_OTHER_MEDICAL",
"skill_used": "firstaid",
"difficulty": 3,
- "time": 2500,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
@@ -351,7 +363,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -369,7 +381,7 @@
"skill_used": "electronics",
"skills_required": [ "survival", 3 ],
"difficulty": 2,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"using": [ [ "soldering_standard", 10 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "SCREW", "level": 1 } ],
@@ -395,7 +407,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [
@@ -418,7 +430,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [
@@ -441,7 +453,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "textbook_mechanics", 3 ], [ "welding_book", 5 ] ],
"using": [ [ "welding_standard", 4 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -454,7 +466,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "textbook_mechanics", 3 ], [ "welding_book", 5 ] ],
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -467,7 +479,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 24000,
+ "time": "24 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "textbook_mechanics", 3 ], [ "welding_book", 5 ] ],
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -480,7 +492,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 4 ] ],
@@ -494,7 +506,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 10,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"book_learn": [ [ "textbook_robots", 8 ] ],
"using": [ [ "welding_standard", 5 ] ],
@@ -509,7 +521,7 @@
"skill_used": "traps",
"skills_required": [ "electronics", 8 ],
"difficulty": 5,
- "time": 4500,
+ "time": "4 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "recipe_lab_elec", 8 ] ],
@@ -523,7 +535,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "2x4", 1 ] ], [ [ "rock", 1 ] ], [ [ "filament", 40, "LIST" ], [ "cordage_short", 2, "LIST" ] ] ]
@@ -534,7 +546,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [
@@ -550,7 +562,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "bone", 1 ], [ "bone_human", 1 ], [ "skewer_bone", 1 ] ] ]
@@ -562,7 +574,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "splinter", 1 ] ] ]
@@ -575,7 +587,7 @@
"skill_used": "survival",
"difficulty": 3,
"skills_required": [ "fabrication", 3 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "bone", 1 ], [ "bone_human", 1 ] ] ]
@@ -586,7 +598,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [
@@ -602,7 +614,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "2x4", 1 ] ] ]
@@ -615,7 +627,7 @@
"skill_used": "survival",
"skills_required": [ "cooking", 1 ],
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "rock", 3 ] ], [ [ "cordage", 1, "LIST" ], [ "filament", 80, "LIST" ] ] ]
@@ -628,7 +640,7 @@
"skill_used": "survival",
"skills_required": [ "fabrication", 2 ],
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [
@@ -644,7 +656,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"autolearn": true,
"book_learn": [ [ "mag_survival", 1 ], [ "atomic_survival", 1 ], [ "textbook_carpentry", 2 ] ],
@@ -664,7 +676,7 @@
"skill_used": "survival",
"skills_required": [ "fabrication", 2 ],
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"book_learn": [ [ "mag_survival", 1 ], [ "atomic_survival", 1 ], [ "textbook_carpentry", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -682,7 +694,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 2 ],
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 } ],
"components": [
@@ -698,7 +710,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"using": [ [ "cordage_short", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -711,7 +723,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "cordage", 2 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -724,7 +736,7 @@
"subcategory": "CSC_ELECTRONIC_TOOLS",
"skill_used": "electronics",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -737,7 +749,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "skewer_bone", 2 ], [ "splinter", 2 ] ] ]
@@ -749,7 +761,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "broom", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ] ] ]
@@ -761,7 +773,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 9000,
+ "time": "9 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 2 ], [ "2x4", 1 ] ], [ [ "skewer_bone", 20 ], [ "splinter", 20 ] ] ]
@@ -774,7 +786,7 @@
"skill_used": "tailor",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -790,7 +802,7 @@
"skill_used": "tailor",
"skills_required": [ "survival", 2 ],
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -806,7 +818,7 @@
"skill_used": "tailor",
"skills_required": [ "survival", 2 ],
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -821,7 +833,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "jug_plastic", 1 ], [ "bottle_plastic", 3 ], [ "bottle_plastic_small", 6 ], [ "aluminum_foil", 6 ] ] ]
@@ -834,7 +846,7 @@
"skill_used": "survival",
"skills_required": [ "fabrication", 1 ],
"difficulty": 2,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -851,7 +863,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "survival",
"skills_required": [ "tailor", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SEW", "level": 1 } ],
"components": [
@@ -869,7 +881,7 @@
"skill_used": "survival",
"skills_required": [ "tailor", 1 ],
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 0,
"autolearn": true,
@@ -884,7 +896,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 7000,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ] ]
@@ -897,7 +909,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "rope_natural", 4 ], [ "welding_standard", 10 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -910,12 +922,12 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 1,
"autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 1 } ],
- "components": [ [ [ "2x4", 6 ] ], [ [ "nail", 8 ] ] ]
+ "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_W", "level": 2 } ],
+ "components": [ [ [ "2x4", 4 ] ], [ [ "wood_panel", 1 ] ], [ [ "nail", 8 ] ] ]
},
{
"type": "recipe",
@@ -924,7 +936,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 1,
"autolearn": true,
@@ -938,7 +950,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "WRENCH", "level": 1 } ],
@@ -951,7 +963,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 5 ] ],
@@ -965,7 +977,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 50 ], [ "welding_standard", 5 ] ],
@@ -982,7 +994,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"id_suffix": "by hand",
"skill_used": "tailor",
- "time": 54000,
+ "time": "54 m",
"autolearn": true,
"byproducts": [ [ "seed_cotton_boll", 2 ] ],
"components": [ [ [ "cotton_boll", 1 ] ] ]
@@ -993,7 +1005,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
- "time": 9000,
+ "time": "9 m",
"autolearn": true,
"byproducts": [ [ "seed_cotton_boll", 2 ] ],
"tools": [ [ [ "carding_paddles", -1 ] ] ],
@@ -1007,7 +1019,7 @@
"skill_used": "tailor",
"difficulty": 1,
"skills_required": [ "fabrication", 1 ],
- "time": 9000,
+ "time": "9 m",
"autolearn": true,
"tools": [ [ [ "distaff_spindle", -1 ] ] ],
"components": [ [ [ "cotton_ball", 3 ] ] ]
@@ -1020,7 +1032,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
"difficulty": 2,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"using": [ [ "filament", 80 ] ],
"qualities": [ { "id": "KNIT", "level": 1 } ]
@@ -1031,7 +1043,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 3, "LIST" ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "rag_bloody", 1 ] ] ]
@@ -1042,7 +1054,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"reversible": true,
"using": [ [ "sewing_standard", 50 ] ],
@@ -1055,7 +1067,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "textbook_fabrication", 5 ], [ "textbook_mechanics", 3 ], [ "manual_mechanics", 3 ] ],
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
@@ -1068,7 +1080,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "textbook_fabrication", 4 ], [ "manual_mechanics", 4 ], [ "textbook_mechanics", 4 ] ],
@@ -1088,7 +1100,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"charges": 6,
"flags": [ "BLIND_HARD" ],
@@ -1100,7 +1112,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "filament", 50, "LIST" ] ] ]
@@ -1111,7 +1123,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "string_6", 6 ], [ "filament", 300, "LIST" ] ] ]
@@ -1123,7 +1135,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
- "time": 7500,
+ "time": "7 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "string_36", 6 ], [ "string_6", 36 ] ] ]
@@ -1136,7 +1148,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 30 ], [ "leather", 30 ], [ "felt_patch", 30 ], [ "tanned_hide", 5 ] ] ]
@@ -1147,7 +1159,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "tailor",
- "time": 7500,
+ "time": "7 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rope_6", 5 ], [ "string_36", 30 ] ] ]
@@ -1158,7 +1170,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
- "time": 7500,
+ "time": "7 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "withered", 36 ], [ "straw_pile", 36 ] ] ]
@@ -1169,7 +1181,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
- "time": 7500,
+ "time": "7 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "rope_makeshift_6", 5 ], [ "withered", 180 ], [ "straw_pile", 180 ] ] ]
@@ -1181,7 +1193,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -1194,7 +1206,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ] ],
@@ -1206,7 +1218,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CONTAIN", "level": 1 } ],
"tools": [ [ [ "lighter", 5 ], [ "ref_lighter", 5 ], [ "surface_heat", 2, "LIST" ] ] ],
@@ -1218,7 +1230,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "cordage_short", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -1230,7 +1242,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -1242,7 +1254,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "broadsword", 1 ], [ "machete", 1 ] ] ]
@@ -1253,7 +1265,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"using": [ [ "steel_tiny", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -1267,7 +1279,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "forging_standard", 10 ], [ "steel_tiny", 2 ] ],
"qualities": [
@@ -1287,7 +1299,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 6000,
+ "time": "6 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_W", "level": 1 } ],
@@ -1300,7 +1312,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 18000,
+ "time": "18 m",
"book_learn": [ [ "textbook_fabrication", 3 ], [ "textbook_chemistry", 3 ], [ "adv_chemistry", 3 ], [ "textbook_mechanics", 5 ] ],
"using": [ [ "filament", 50 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
@@ -1314,7 +1326,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 50000,
+ "time": "50 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 5 ], [ "cutting_wire_standard", 1 ] ],
@@ -1327,7 +1339,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 5 ], [ "cutting_wire_standard", 1 ] ],
@@ -1340,7 +1352,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 35000,
+ "time": "35 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 2 ], [ "cutting_wire_standard", 1 ] ],
@@ -1353,7 +1365,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 6 ] ],
@@ -1366,7 +1378,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 9000,
+ "time": "9 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 } ],
@@ -1379,7 +1391,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 4 ] ],
@@ -1393,7 +1405,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 4000,
+ "time": "4 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 2 ] ],
@@ -1407,7 +1419,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 45000,
+ "time": "45 m",
"reversible": true,
"autolearn": true,
"using": [ [ "steel_standard", 20 ] ],
@@ -1424,7 +1436,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 90000,
+ "time": "90 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "GLARE", "level": 2 } ],
@@ -1441,7 +1453,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -1453,7 +1465,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
- "time": 4000,
+ "time": "4 m",
"reversible": true,
"autolearn": true,
"using": [ [ "rope_natural_short", 3 ] ],
@@ -1466,7 +1478,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 6000,
+ "time": "6 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_W", "level": 1 } ],
@@ -1479,7 +1491,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_W", "level": 1 } ],
@@ -1492,7 +1504,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 6000,
+ "time": "6 m",
"reversible": true,
"autolearn": true,
"using": [ [ "rope_natural_short", 2 ] ],
@@ -1505,7 +1517,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"note": "sawing it down doesn't teach anything useful",
"autolearn": true,
@@ -1520,7 +1532,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"book_learn": [ [ "textbook_fabrication", 3 ], [ "welding_book", 3 ], [ "textbook_mechanics", 4 ] ],
"qualities": [ { "id": "GLARE", "level": 2 } ],
@@ -1535,7 +1547,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"note": "hardened metal tools require high fabrication, so +1 diff here",
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"book_learn": [ [ "textbook_fabrication", 5 ], [ "adv_chemistry", 6 ], [ "welding_book", 5 ] ],
"qualities": [ { "id": "GLARE", "level": 2 } ],
@@ -1549,7 +1561,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 2 ] ] ]
@@ -1560,7 +1572,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ] ]
@@ -1572,7 +1584,7 @@
"subcategory": "CSC_OTHER_TRAPS",
"skill_used": "traps",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
"components": [ [ [ "superglue", 1 ] ] ]
@@ -1583,7 +1595,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TRAPS",
"skill_used": "traps",
- "time": 2500,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -1596,7 +1608,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TRAPS",
"skill_used": "traps",
- "time": 250,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -1610,7 +1622,7 @@
"skill_used": "traps",
"skills_required": [ "mechanics", 3 ],
"difficulty": 2,
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -1626,7 +1638,7 @@
"skill_used": "traps",
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
- "time": 4500,
+ "time": "4 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -1641,7 +1653,7 @@
"skill_used": "traps",
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": true,
@@ -1656,7 +1668,7 @@
"skill_used": "traps",
"skills_required": [ "mechanics", 3 ],
"difficulty": 4,
- "time": 8000,
+ "time": "8 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "manual_mechanics", 3 ], [ "manual_traps", 3 ], [ "howto_traps", 3 ], [ "book_icef", 4 ] ],
@@ -1671,7 +1683,7 @@
"subcategory": "CSC_OTHER_TRAPS",
"skill_used": "traps",
"difficulty": 3,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_traps", 2 ], [ "manual_traps", 3 ], [ "howto_traps", 3 ] ],
"using": [ [ "cordage_short", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -1688,7 +1700,7 @@
"skill_used": "traps",
"skills_required": [ "mechanics", 3 ],
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"book_learn": [ [ "textbook_traps", 5 ], [ "manual_traps", 5 ], [ "howto_traps", 4 ], [ "recipe_bullets", 6 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -1723,11 +1735,37 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 } ],
"components": [ [ [ "sheet_metal", 1 ] ] ]
},
+ {
+ "type": "recipe",
+ "result": "55gal_firebarrel",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_TOOLS",
+ "skill_used": "survival",
+ "difficulty": 1,
+ "time": "2 m",
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "tools": [ [ [ "spike", -1 ], [ "sharp_rock", -1 ], [ "rebar", -1 ], [ "spear_rebar", -1 ] ] ],
+ "components": [ [ [ "55gal_drum", 1 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "30gal_firebarrel",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_TOOLS",
+ "skill_used": "survival",
+ "difficulty": 1,
+ "time": "2 m",
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "tools": [ [ [ "spike", -1 ], [ "sharp_rock", -1 ], [ "rebar", -1 ], [ "spear_rebar", -1 ] ] ],
+ "components": [ [ [ "30gal_drum", 1 ] ] ]
+ },
{
"type": "recipe",
"result": "metal_tank",
@@ -1735,7 +1773,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -1748,7 +1786,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GLARE", "level": 2 } ],
@@ -1762,7 +1800,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"autolearn": true,
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -1776,7 +1814,7 @@
"skill_used": "firstaid",
"skills_required": [ "survival", 1 ],
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"components": [
[ [ "rag", 10 ], [ "medical_gauze", 4 ] ],
@@ -1792,7 +1830,7 @@
"skill_used": "firstaid",
"skills_required": [ "survival", 1 ],
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [
[ [ "rag", 5 ], [ "medical_gauze", 2 ] ],
@@ -1808,7 +1846,7 @@
"skill_used": "firstaid",
"skills_required": [ "survival", 1 ],
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [
[ [ "rag", 10 ], [ "medical_gauze", 4 ] ],
@@ -1824,7 +1862,7 @@
"skill_used": "firstaid",
"skills_required": [ "survival", 1 ],
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"components": [
[ [ "rag", 10 ], [ "medical_gauze", 4 ] ],
@@ -1832,181 +1870,13 @@
[ [ "stick", 4 ], [ "broom", 4 ], [ "2x4", 4 ], [ "pool_cue", 4 ] ]
]
},
- {
- "type": "recipe",
- "result": "bot_manhack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 6,
- "time": 25000,
- "reversible": true,
- "decomp_learn": 7,
- "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "spike", 2 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "scrap", 2 ] ],
- [ [ "motor_small", 1 ] ]
- ]
- },
- {
- "type": "recipe",
- "result": "bot_grenade_hack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 6,
- "time": 25000,
- "reversible": true,
- "decomp_learn": 7,
- "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "grenade", 1 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "scrap", 2 ] ],
- [ [ "motor_small", 1 ] ]
- ]
- },
- {
- "type": "recipe",
- "result": "bot_mininuke_hack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 7,
- "time": 35000,
- "reversible": true,
- "decomp_learn": 8,
- "book_learn": [ [ "recipe_lab_elec", 7 ], [ "textbook_robots", 8 ] ],
- "using": [ [ "soldering_standard", 20 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "mininuke", 1 ] ],
- [ [ "processor", 2 ] ],
- [ [ "RAM", 2 ] ],
- [ [ "power_supply", 2 ] ],
- [ [ "small_storage_battery", 2 ] ],
- [ [ "scrap", 4 ] ],
- [ [ "motor_small", 2 ] ]
- ]
- },
- {
- "type": "recipe",
- "result": "bot_gasbomb_hack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 6,
- "time": 25000,
- "reversible": true,
- "decomp_learn": 7,
- "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "gasbomb", 1 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "scrap", 2 ] ],
- [ [ "motor_small", 1 ] ]
- ]
- },
- {
- "type": "recipe",
- "result": "bot_EMP_hack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 6,
- "time": 25000,
- "reversible": true,
- "decomp_learn": 7,
- "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "EMPbomb", 1 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "scrap", 2 ] ],
- [ [ "motor_small", 1 ] ]
- ]
- },
- {
- "type": "recipe",
- "result": "bot_flashbang_hack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 6,
- "time": 25000,
- "reversible": true,
- "decomp_learn": 7,
- "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "flashbang", 1 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "scrap", 2 ] ],
- [ [ "motor_small", 1 ] ]
- ]
- },
- {
- "type": "recipe",
- "result": "bot_c4_hack",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_OTHER",
- "skill_used": "mechanics",
- "skills_required": [ [ "electronics", 5 ], [ "computer", 5 ] ],
- "difficulty": 6,
- "time": 25000,
- "reversible": true,
- "decomp_learn": 7,
- "book_learn": [ [ "recipe_lab_elec", 6 ], [ "textbook_robots", 7 ] ],
- "using": [ [ "soldering_standard", 10 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [
- [ [ "c4", 1 ] ],
- [ [ "processor", 1 ] ],
- [ [ "RAM", 1 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "scrap", 2 ] ],
- [ [ "motor_small", 1 ] ]
- ]
- },
{
"type": "recipe",
"result": "scrap_copper",
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 2500,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -2020,7 +1890,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "duct_tape", 10 ] ], [ [ "bottle_plastic", 8 ], [ "bottle_plastic_small", 16 ] ] ]
@@ -2032,7 +1902,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -2045,7 +1915,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
@@ -2059,7 +1929,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -2072,7 +1942,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [
@@ -2090,7 +1960,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 2, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 3 ] ] ]
@@ -2102,7 +1972,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
"components": [ [ [ "bowl_plastic", 4 ] ] ]
@@ -2114,7 +1984,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 5, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 2 ] ] ]
@@ -2126,7 +1996,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 3, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 1 ] ] ]
@@ -2138,7 +2008,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 8 ] ] ]
@@ -2150,7 +2020,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"skills_required": [ "cooking", 2 ],
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"decomp_learn": 0,
"flags": [ "BLIND_EASY" ],
@@ -2169,7 +2039,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"skills_required": [ "cooking", 2 ],
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"decomp_learn": 0,
"flags": [ "BLIND_HARD" ],
@@ -2183,7 +2053,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
@@ -2196,7 +2066,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "mechanics",
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"book_learn": [
[ "manual_shotgun", 0 ],
@@ -2227,7 +2097,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 1 ], [ "cooking", 2 ] ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"book_learn": [ [ "atomic_survival", 1 ], [ "textbook_survival", 1 ], [ "cookbook", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -2240,7 +2110,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "mechanics",
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"decomp_learn": 2,
"autolearn": [ [ "mechanics", 3 ], [ "electronics", 2 ] ],
@@ -2255,7 +2125,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "fun_survival", 1 ], [ "manual_fabrication", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "can_drink_unsealed", 2 ] ], [ [ "bottle_plastic", 1 ] ] ]
@@ -2267,7 +2137,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 180000,
+ "time": "180 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -2299,7 +2169,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 } ],
"tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -2312,7 +2182,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 } ],
"tools": [ [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2325,7 +2195,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"tools": [ [ [ "brick_kiln", 90 ], [ "kiln", 90 ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 5 ] ] ]
@@ -2337,7 +2207,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 2 } ],
"tools": [ [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -2350,7 +2220,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"reversible": true,
"note": "melting the chisel back down seems unlikely to teach anything useful",
"autolearn": true,
@@ -2372,7 +2242,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"book_learn": [
[ "textbook_fabrication", 4 ],
@@ -2392,7 +2262,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 2 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ],
@@ -2405,7 +2275,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 140000,
+ "time": "140 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 2 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ],
@@ -2418,7 +2288,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 2 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -2431,7 +2301,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 2 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2445,7 +2315,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "press", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -2460,7 +2330,7 @@
"skill_used": "cooking",
"difficulty": 4,
"book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_fabrication", 4 ], [ "welding_book", 4 ] ],
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "electrolysis_kit", 10 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -2478,7 +2348,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2491,7 +2361,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2505,7 +2375,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2518,7 +2388,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 300000,
+ "time": "300 m",
"autolearn": true,
"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 ] ] ],
@@ -2531,7 +2401,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 300000,
+ "time": "300 m",
"autolearn": true,
"using": [ [ "forging_standard", 5 ], [ "steel_tiny", 1 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -2545,7 +2415,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 320000,
+ "time": "320 m",
"autolearn": true,
"using": [ [ "forging_standard", 10 ], [ "steel_standard", 1 ] ],
"book_learn": [ [ "manual_mechanics", 3 ], [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ],
@@ -2561,7 +2431,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"note": "not so much the engineering as hardening the edge",
- "time": 380000,
+ "time": "380 m",
"autolearn": true,
"using": [ [ "forging_standard", 15 ], [ "steel_standard", 2 ] ],
"book_learn": [ [ "manual_mechanics", 4 ], [ "manual_fabrication", 4 ], [ "textbook_fabrication", 4 ] ],
@@ -2576,7 +2446,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 280000,
+ "time": "280 m",
"autolearn": true,
"using": [ [ "forging_standard", 10 ], [ "steel_standard", 2 ] ],
"book_learn": [ [ "manual_fabrication", 2 ], [ "textbook_fabrication", 3 ] ],
@@ -2591,7 +2461,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 320000,
+ "time": "320 m",
"autolearn": true,
"using": [ [ "forging_standard", 15 ], [ "steel_standard", 4 ] ],
"book_learn": [ [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ],
@@ -2605,7 +2475,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 320000,
+ "time": "320 m",
"autolearn": true,
"using": [ [ "forging_standard", 10 ], [ "steel_standard", 2 ] ],
"book_learn": [ [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ],
@@ -2620,7 +2490,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"using": [ [ "forging_standard", 15 ], [ "steel_standard", 3 ] ],
"book_learn": [ [ "textbook_fabrication", 4 ] ],
@@ -2635,7 +2505,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 420000,
+ "time": "420 m",
"autolearn": true,
"book_learn": [ [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -2649,7 +2519,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 460000,
+ "time": "460 m",
"autolearn": true,
"book_learn": [ [ "manual_fabrication", 3 ], [ "textbook_fabrication", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -2663,7 +2533,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 520000,
+ "time": "520 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [
@@ -2681,7 +2551,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 20 ], [ "oxy_torch", 4 ] ] ],
@@ -2694,7 +2564,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "textbook_mechanics", 5 ], [ "textbook_carpentry", 5 ], [ "book_icef", 6 ] ],
@@ -2714,7 +2584,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
@@ -2728,7 +2598,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
@@ -2741,7 +2611,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 20, "LIST" ] ] ],
"components": [ [ [ "bottle_glass", 1 ], [ "flask_glass", 1 ] ] ]
@@ -2754,7 +2624,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 4,
- "time": 1200,
+ "time": "1 m",
"book_learn": [ [ "textbook_firstaid", 3 ], [ "adv_chemistry", 4 ], [ "emergency_book", 4 ] ],
"qualities": [ { "id": "CHEM", "level": 1 } ],
"tools": [ [ [ "surface_heat", 18, "LIST" ] ] ],
@@ -2768,7 +2638,7 @@
"skill_used": "cooking",
"skills_required": [ "firstaid", 1 ],
"difficulty": 6,
- "time": 1200,
+ "time": "1 m",
"book_learn": [ [ "textbook_firstaid", 8 ], [ "textbook_chemistry", 7 ], [ "adv_chemistry", 6 ], [ "emergency_book", 8 ] ],
"qualities": [ { "id": "CHEM", "level": 1 } ],
"tools": [ [ [ "surface_heat", 18, "LIST" ] ] ],
@@ -2781,7 +2651,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 120000,
+ "time": "120 m",
"book_learn": [
[ "textbook_fabrication", 4 ],
[ "textbook_weapeast", 5 ],
@@ -2811,7 +2681,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 2 ],
"difficulty": 2,
- "time": 70000,
+ "time": "70 m",
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "textbook_fabrication", 2 ], [ "manual_fabrication", 3 ], [ "cookbook", 3 ] ],
@@ -2831,7 +2701,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 150000,
+ "time": "150 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -2844,7 +2714,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 150000,
+ "time": "150 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -2857,7 +2727,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 4 ], [ "manual_fabrication", 4 ] ],
"using": [ [ "welding_standard", 15 ] ],
@@ -2876,7 +2746,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"reversible": true,
"decomp_learn": 4,
"autolearn": true,
@@ -2905,7 +2775,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "electronics", 3 ] ],
"difficulty": 7,
- "time": 150000,
+ "time": "150 m",
"reversible": true,
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 7 ], [ "manual_fabrication", 7 ] ],
@@ -2932,7 +2802,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2945,7 +2815,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 2 ], [ "manual_fabrication", 2 ] ],
"qualities": [
@@ -2964,7 +2834,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"components": [
[
@@ -2987,7 +2857,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "jug_plastic", 1 ] ], [ [ "rag", 4 ] ], [ [ "charcoal", 75 ] ] ]
@@ -2999,7 +2869,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ],
"components": [ [ [ "2x4", 30 ] ], [ [ "scrap", 6 ] ] ]
@@ -3012,7 +2882,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 400 ], [ "oxy_torch", 80 ] ] ],
@@ -3026,7 +2896,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 262500,
+ "time": "262 m",
"autolearn": true,
"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", 40 ] ] ],
@@ -3040,7 +2910,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 42000,
+ "time": "42 m",
"autolearn": true,
"using": [ [ "welding_standard", 15 ] ],
"components": [ [ [ "sheet_metal", 3 ], [ "sheet_metal_small", 72 ] ] ]
@@ -3053,7 +2923,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 26250,
+ "time": "26 m",
"autolearn": true,
"using": [ [ "welding_standard", 10 ] ],
"components": [ [ [ "sheet_metal", 2 ], [ "sheet_metal_small", 48 ] ] ]
@@ -3065,7 +2935,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "soldering_standard", 40 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -3077,7 +2947,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
@@ -3093,7 +2963,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 4 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "glassblowing_book", 5 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [
@@ -3117,7 +2987,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 90000,
+ "time": "90 m",
"book_learn": [ [ "glassblowing_book", 5 ] ],
"qualities": [ { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 150 ] ] ],
@@ -3130,7 +3000,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "glassblowing_book", 5 ] ],
"qualities": [ { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 75 ] ] ],
@@ -3143,7 +3013,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 40000,
+ "time": "40 m",
"book_learn": [ [ "glassblowing_book", 4 ] ],
"qualities": [ { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 50 ] ] ],
@@ -3156,7 +3026,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "glassblowing_book", 4 ] ],
"qualities": [ { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 25 ] ] ],
@@ -3169,7 +3039,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 4000,
+ "time": "4 m",
"book_learn": [ [ "glassblowing_book", 4 ] ],
"qualities": [ { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 5 ] ] ],
@@ -3182,7 +3052,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "glassblowing_book", 5 ] ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 75 ] ] ],
"components": [ [ [ "glass_sheet", 1 ] ], [ [ "silver_small", 10 ] ] ]
@@ -3195,7 +3065,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "polisher", 20 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 50 ] ] ],
@@ -3208,7 +3078,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "glassblowing_book", 6 ] ],
"qualities": [ { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "pipe", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 25 ] ] ],
@@ -3221,7 +3091,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "sheet_metal", -1 ] ], [ [ "forge", 75 ] ] ],
"components": [ [ [ "glass_shard", 16 ], [ "flask_glass", 4 ], [ "jar_glass", 2 ] ] ]
@@ -3233,7 +3103,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "mag_survival", 4 ], [ "atomic_survival", 3 ], [ "textbook_survival", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "rope_30", 1 ], [ "vine_30", 1 ], [ "rope_6", 5 ] ], [ [ "scrap", 4 ] ] ]
@@ -3245,7 +3115,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 4 ], [ "manual_fabrication", 4 ] ],
"qualities": [
@@ -3264,7 +3134,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 6 ] ],
@@ -3278,7 +3148,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"qualities": [ { "id": "CUT", "level": 1 } ],
"book_learn": [ [ "recipe_caseless", 5 ] ],
"components": [
@@ -3292,7 +3162,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -3306,7 +3176,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 1,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -3327,7 +3197,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "bone", 1 ], [ "bone_human", 1 ] ] ]
@@ -3339,7 +3209,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "survival",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "mag_survival", 2 ], [ "textbook_survival", 2 ], [ "survival_book", 1 ], [ "pocket_survival", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -3354,7 +3224,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "tailor",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "filament", 20 ], [ "cordage_short", 1 ] ],
"components": [ [ [ "rag", 2 ] ] ]
@@ -3366,7 +3236,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"using": [ [ "filament", 80 ], [ "cordage", 1 ] ],
"components": [ [ [ "rag", 12 ] ] ]
@@ -3379,7 +3249,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 2 ],
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"batch_time_factors": [ 75, 4 ],
"autolearn": true,
"tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ],
@@ -3393,7 +3263,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 3 ],
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"batch_time_factors": [ 75, 3 ],
"tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ],
@@ -3406,7 +3276,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -3420,7 +3290,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 2 ],
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "scrap", 3 ] ], [ [ "cable", 2 ] ] ]
@@ -3433,7 +3303,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 4 ],
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 }, { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "sheet_metal", -1 ] ] ],
@@ -3447,7 +3317,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 3 ],
"difficulty": 4,
- "time": 4000,
+ "time": "4 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -3470,7 +3340,7 @@
"skill_used": "firstaid",
"skills_required": [ "fabrication", 2 ],
"difficulty": 4,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "CUT", "level": 1 } ],
"components": [ [ [ "syringe", 1 ] ], [ [ "flask_glass", 1 ], [ "bottle_plastic_small", 1 ] ] ]
@@ -3482,7 +3352,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "cooking",
"difficulty": 5,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"batch_time_factors": [ 80, 4 ],
"result_mult": 15,
@@ -3497,7 +3367,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -3510,7 +3380,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"components": [ [ [ "charcoal", 5 ], [ "coal_lump", 5 ] ] ],
"qualities": [ { "id": "CUT", "level": 1 } ]
@@ -3522,7 +3392,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 4, "LIST" ] ], [ [ "mold_plastic", -1 ] ] ],
"components": [ [ [ "bag_plastic", 3 ] ] ]
@@ -3534,7 +3404,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 6, "LIST" ], [ "soldering_iron", 10 ] ] ],
"components": [ [ [ "cash_card", 4 ] ] ]
@@ -3546,7 +3416,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "chitin_piece", 20 ] ], [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ], [ "adhesive", 4, "LIST" ] ] ]
@@ -3558,7 +3428,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 55000,
+ "time": "55 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "acidchitin_piece", 25 ] ], [ [ "rope_makeshift_6", 2 ], [ "rope_6", 2 ], [ "adhesive", 4, "LIST" ] ] ]
@@ -3570,7 +3440,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -3585,7 +3455,7 @@
"subcategory": "CSC_WEAPON_PARTS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"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 ] ] ],
@@ -3598,7 +3468,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -3611,7 +3481,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -3625,7 +3495,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 2 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"using": [ [ "soldering_standard", 25 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -3638,7 +3508,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 3 ] ],
@@ -3652,13 +3522,26 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "sheet_metal", 1 ] ], [ [ "steel_chunk", 3 ], [ "scrap", 9 ] ] ]
},
+ {
+ "type": "recipe",
+ "result": "tarp_raincatcher",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_TOOLS",
+ "skill_used": "survival",
+ "difficulty": 2,
+ "time": "45m",
+ "reversible": true,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
+ "components": [ [ [ "pointy_stick", 3 ] ], [ [ "string_36", 1 ], [ "string_6", 3 ] ], [ [ "tarp", 1 ], [ "plastic_sheet", 1 ] ] ]
+ },
{
"type": "recipe",
"result": "funnel",
@@ -3666,7 +3549,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 5, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 3 ] ] ]
@@ -3679,7 +3562,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 15, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 15 ] ] ]
@@ -3692,7 +3575,7 @@
"skill_used": "tailor",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"using": [ [ "sewing_standard", 60 ] ],
"components": [ [ [ "leather", 4 ], [ "tanned_hide", 1 ], [ "fur", 4 ], [ "tanned_pelt", 1 ] ] ]
@@ -3705,7 +3588,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "chunk_sulfur", 1 ] ] ]
@@ -3718,7 +3601,7 @@
"skill_used": "survival",
"skills_required": [ "cooking", 1 ],
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -3734,7 +3617,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
"difficulty": 1,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "cured_pelt", 1 ] ] ]
@@ -3747,7 +3630,7 @@
"skill_used": "survival",
"skills_required": [ "cooking", 2 ],
"difficulty": 3,
- "time": 48000,
+ "time": "48 m",
"batch_time_factors": [ 20, 10 ],
"autolearn": true,
"qualities": [
@@ -3773,7 +3656,7 @@
"skill_used": "survival",
"skills_required": [ "cooking", 1 ],
"difficulty": 1,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "salt_water", 2 ], [ "saline", 10 ], [ "salt", 10 ] ], [ [ "raw_fur", 50 ], [ "raw_tainted_fur", 50 ] ] ]
@@ -3786,7 +3669,7 @@
"skill_used": "survival",
"skills_required": [ "cooking", 2 ],
"difficulty": 3,
- "time": 48000,
+ "time": "48 m",
"batch_time_factors": [ 20, 10 ],
"autolearn": true,
"qualities": [
@@ -3813,7 +3696,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 3 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 50, 5 ],
"book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 5 ], [ "modern_tanner", 4 ] ],
"qualities": [
@@ -3834,7 +3717,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 3 ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"batch_time_factors": [ 50, 5 ],
"book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 5 ], [ "modern_tanner", 4 ] ],
"qualities": [
@@ -3853,7 +3736,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 440000,
+ "time": "440 m",
"autolearn": true,
"book_learn": [ [ "manual_fabrication", 8 ], [ "textbook_fabrication", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -3867,7 +3750,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 } ],
"components": [ [ [ "scrap", 1 ] ], [ [ "2x4", 1 ], [ "stick", 1 ], [ "broom", 1 ] ] ]
@@ -3879,7 +3762,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rag", 1 ] ], [ [ "2x4", 1 ], [ "stick", 1 ], [ "broom", 1 ] ] ]
@@ -3892,7 +3775,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"tools": [ [ [ "brick_kiln", 90 ], [ "kiln", 90 ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 5 ] ] ]
@@ -3905,7 +3788,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"tools": [ [ [ "brick_kiln", 75 ], [ "kiln", 75 ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 4 ] ] ]
@@ -3918,7 +3801,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 50000,
+ "time": "50 m",
"autolearn": true,
"tools": [ [ [ "brick_kiln", 100 ], [ "kiln", 100 ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 8 ] ] ]
@@ -3931,7 +3814,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"tools": [ [ [ "brick_kiln", 40 ], [ "kiln", 40 ] ] ],
"components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 3 ] ] ]
@@ -3943,12 +3826,57 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"batch_time_factors": [ 75, 4 ],
"tools": [ [ [ "brick_kiln", 60 ], [ "kiln", 60 ] ] ],
"components": [ [ [ "clay_lump", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ]
},
+ {
+ "type": "recipe",
+ "result": "soft_adobe_brick",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_MATERIALS",
+ "skill_used": "fabrication",
+ "skills_required": [ "survival", 1 ],
+ "difficulty": 2,
+ "time": 10000,
+ "autolearn": true,
+ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "CONTAIN", "level": 1 } ],
+ "tools": [ [ [ "frame_wood", -1 ], [ "frame_wood_light", -1 ] ] ],
+ "batch_time_factors": [ 75, 4 ],
+ "components": [
+ [ [ "water", 1 ], [ "water_clean", 1 ] ],
+ [ [ "material_soil", 2 ] ],
+ [ [ "withered", 2 ], [ "straw_pile", 2 ], [ "feces_cow", 1 ], [ "feces_roach", 1 ], [ "feces_manure", 1 ] ]
+ ]
+ },
+ {
+ "type": "recipe",
+ "result": "adobe_pallet_full",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_MATERIALS",
+ "skill_used": "fabrication",
+ "skills_required": [ "survival", 1 ],
+ "difficulty": 2,
+ "time": 30000,
+ "autolearn": true,
+ "components": [ [ [ "soft_adobe_brick", 20 ] ], [ [ "frame_wood_light", 1 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "mortar_adobe",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_MATERIALS",
+ "skill_used": "fabrication",
+ "skills_required": [ "survival", 1 ],
+ "difficulty": 2,
+ "time": 5000,
+ "autolearn": true,
+ "qualities": [ { "id": "CONTAIN", "level": 1 } ],
+ "batch_time_factors": [ 50, 5 ],
+ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "material_soil", 1 ] ] ]
+ },
{
"type": "recipe",
"result": "mortar_build",
@@ -3956,7 +3884,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"tools": [ [ [ "con_mix", 50 ] ] ],
"components": [ [ [ "material_cement", 50 ] ], [ [ "material_sand", 150 ] ] ]
@@ -3968,7 +3896,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ], [ "rock_pot", 1 ] ], [ [ "oil_cooker", 1 ] ] ]
@@ -3980,7 +3908,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
@@ -3993,7 +3921,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "oil_lamp", 1 ] ], [ [ "pilot_light", 1 ] ], [ [ "scrap", 3 ] ], [ [ "duct_tape", 50 ] ] ]
@@ -4005,7 +3933,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "gasoline_lantern", 1 ] ], [ [ "pilot_light", 1 ] ], [ [ "scrap", 3 ] ], [ [ "duct_tape", 50 ] ] ]
@@ -4017,7 +3945,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [
@@ -4033,7 +3961,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 35000,
+ "time": "35 m",
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -4046,7 +3974,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 15, "LIST" ] ] ],
@@ -4060,7 +3988,7 @@
"skill_used": "fabrication",
"skills_required": [ "tailor", 4 ],
"difficulty": 6,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "scots_cookbook", 3 ] ],
"using": [ [ "sewing_standard", 20 ] ],
"components": [
@@ -4077,7 +4005,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage_short", 2 ] ],
@@ -4096,7 +4024,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage_short", 4 ] ],
@@ -4109,7 +4037,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"components": [ [ [ "dogbane", 1 ], [ "cattail_stalk", 1 ] ] ]
},
@@ -4120,7 +4048,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "textbook_mechanics", 4 ] ],
"reversible": true,
"using": [ [ "welding_standard", 5 ] ],
@@ -4134,7 +4062,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "textbook_mechanics", 4 ] ],
"reversible": true,
"using": [ [ "welding_standard", 5 ] ],
@@ -4148,7 +4076,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "textbook_mechanics", 4 ] ],
"reversible": true,
"using": [ [ "welding_standard", 5 ] ],
@@ -4162,7 +4090,7 @@
"subcategory": "CSC_OTHER_PARTS",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "textbook_mechanics", 4 ] ],
"reversible": true,
"using": [ [ "welding_standard", 5 ] ],
@@ -4176,7 +4104,7 @@
"subcategory": "CSC_CHEM_OTHER",
"skill_used": "cooking",
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "adv_chemistry", 3 ], [ "textbook_chemistry", 3 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "hotplate", 100 ], [ "toolset", 100 ] ] ],
@@ -4196,7 +4124,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "tailor",
"difficulty": 3,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_tailor", 3 ], [ "manual_tailor", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"components": [ [ [ "sewing_kit", 1 ], [ "tailors_kit", 1 ] ] ]
@@ -4208,7 +4136,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 1 ] ] ]
@@ -4219,7 +4147,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "survival",
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"tools": [ [ [ "surface_heat", 5, "LIST" ] ] ],
"components": [ [ [ "splinter", 5 ], [ "2x4", 1 ], [ "stick", 1 ] ] ]
@@ -4232,7 +4160,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"book_learn": [ [ "textbook_armwest", 1 ], [ "textbook_fabrication", 1 ], [ "recipe_melee", 1 ] ],
"tools": [ [ [ "pliers", -1 ], [ "multitool", -1 ] ], [ [ "boltcutters", -1 ], [ "toolset", -1 ] ], [ [ "cu_pipe", -1 ] ] ],
"components": [ [ [ "wire", 1 ] ] ]
@@ -4245,7 +4173,7 @@
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "textbook_armwest", 2 ], [ "textbook_fabrication", 2 ], [ "recipe_melee", 2 ] ],
"using": [ [ "chainmail_standard", 1 ] ],
"components": [ [ [ "chain_link", 1000 ] ], [ [ "wire", 1 ] ] ]
@@ -4258,7 +4186,7 @@
"skill_used": "fabrication",
"skill_required": [ "tailor", 1 ],
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"using": [ [ "filament", 8 ] ],
"qualities": [ { "id": "SEW", "level": 1 } ],
@@ -4273,7 +4201,7 @@
"skill_used": "fabrication",
"skill_required": [ "tailor", 1 ],
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"using": [ [ "filament", 8 ] ],
"qualities": [ { "id": "SEW", "level": 1 } ],
@@ -4288,7 +4216,7 @@
"skill_used": "fabrication",
"skill_required": [ "tailor", 1 ],
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"using": [ [ "filament", 8 ] ],
"qualities": [ { "id": "SEW", "level": 1 } ],
@@ -4302,7 +4230,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 2 ], [ "textbook_mechanics", 3 ] ],
"qualities": [
@@ -4328,7 +4256,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 2 ], [ "textbook_mechanics", 3 ] ],
"qualities": [
@@ -4353,7 +4281,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 2 ], [ "textbook_mechanics", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "DRILL", "level": 1 }, { "id": "SCREW", "level": 1 } ],
@@ -4366,7 +4294,7 @@
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "tailor",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 30 ] ],
@@ -4378,7 +4306,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"skill_used": "tailor",
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "withered", 12 ], [ "straw_pile", 12 ], [ "willowbark", 6 ], [ "birchbark", 6 ] ], [ [ "plant_fibre", 100 ] ] ]
@@ -4390,7 +4318,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "welding_standard", 30 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ],
@@ -4404,7 +4332,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"book_learn": [ [ "textbook_chemistry", 5 ], [ "textbook_fabrication", 4 ] ],
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "electrolysis_kit", 10 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -4422,7 +4350,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -4436,7 +4364,7 @@
"subcategory": "CSC_OTHER_TOOLS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ],
@@ -4448,7 +4376,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_AMMO_OTHER",
"skill_used": "fabrication",
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "splinter", 1 ] ] ]
@@ -4459,7 +4387,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "DIG", "level": 3 } ],
"components": [ [ [ "bag_canvas", 1 ] ], [ [ "material_sand", 60 ] ] ]
@@ -4470,7 +4398,7 @@
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_MATERIALS",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "DIG", "level": 3 } ],
"components": [ [ [ "bag_canvas", 1 ] ], [ [ "material_soil", 3 ] ] ]
diff --git a/data/json/recipes/recipe_vehicle.json b/data/json/recipes/recipe_vehicle.json
index e6de8010fe2f4..e592593d832ec 100644
--- a/data/json/recipes/recipe_vehicle.json
+++ b/data/json/recipes/recipe_vehicle.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 240000,
+ "time": "240 m",
"reversible": true,
"autolearn": false,
"book_learn": [ [ "textbook_fabrication", 5 ], [ "welding_book", 6 ], [ "textbook_carpentry", 5 ] ],
@@ -23,7 +23,7 @@
[ [ "cable", 40 ] ],
[ [ "frame", 1 ] ],
[ [ "steel_plate", 8 ] ],
- [ [ "water", 150 ] ]
+ [ [ "water", 150 ], [ "water_clean", 150 ] ]
]
},
{
@@ -33,7 +33,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"using": [ [ "welding_standard", 10 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -46,7 +46,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"book_learn": [ [ "textbook_fabrication", 5 ], [ "welding_book", 6 ], [ "textbook_carpentry", 5 ] ],
"using": [ [ "welding_standard", 2 ] ],
@@ -61,7 +61,7 @@
"//": "sawing it down doesn't teach anything useful",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 8000,
+ "time": "8 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 10 ] ],
@@ -75,7 +75,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"autolearn": true,
"using": [ [ "welding_standard", 10 ] ],
@@ -88,7 +88,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "welding_standard", 10 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 } ],
@@ -107,7 +107,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 180000,
+ "time": "180 m",
"reversible": true,
"autolearn": false,
"book_learn": [ [ "textbook_mechanics", 5 ], [ "manual_mechanics", 5 ], [ "textbook_fabrication", 5 ] ],
@@ -151,12 +151,37 @@
"skill_used": "fabrication",
"skill_required": [ "mechanics", 2 ],
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "large_space_heater", 1 ] ], [ [ "wire", 2 ] ] ]
},
+ {
+ "result": "mountable_cooler",
+ "type": "recipe",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_PARTS",
+ "skill_used": "mechanics",
+ "difficulty": 5,
+ "time": 180000,
+ "reversible": true,
+ "autolearn": false,
+ "book_learn": [ [ "textbook_mechanics", 5 ], [ "manual_mechanics", 5 ], [ "textbook_fabrication", 5 ] ],
+ "using": [ [ "welding_standard", 20 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
+ "components": [
+ [ [ "sheet_metal", 2 ] ],
+ [ [ "condensor_coil", 2 ] ],
+ [ [ "evaporator_coil", 2 ] ],
+ [ [ "thermostat", 1 ] ],
+ [ [ "motor_tiny", 1 ] ],
+ [ [ "refrigerant_tank", 1 ] ],
+ [ [ "plastic_chunk", 8 ] ],
+ [ [ "wire", 2 ] ],
+ [ [ "fan", 1 ] ]
+ ]
+ },
{
"result": "washing_machine",
"type": "recipe",
@@ -165,7 +190,7 @@
"skill_used": "fabrication",
"skill_required": [ "mechanics", 5 ],
"difficulty": 5,
- "time": 170000,
+ "time": "170 m",
"book_learn": [ [ "textbook_fabrication", 6 ], [ "textbook_mechanics", 5 ] ],
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 2 }, { "id": "DRILL", "level": 2 } ],
@@ -189,7 +214,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"using": [ [ "welding_standard", 4 ], [ "steel_tiny", 4 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ] ],
@@ -203,7 +228,7 @@
"subcategory": "CSC_OTHER_VEHICLE",
"skill_used": "mechanics",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "WRENCH", "level": 2 } ],
@@ -212,6 +237,58 @@
[ [ "spare_tire_carrier", 1 ] ]
]
},
+ {
+ "type": "recipe",
+ "result": "boat_board",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_VEHICLES",
+ "skill_used": "fabrication",
+ "difficulty": 3,
+ "time": 6000,
+ "reversible": true,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
+ "components": [ [ [ "2x4", 5 ] ], [ [ "nail", 30 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "plastic_boat_hull",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_VEHICLES",
+ "skill_used": "fabrication",
+ "difficulty": 4,
+ "time": 30000,
+ "autolearn": true,
+ "tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 50, "LIST" ] ] ],
+ "components": [ [ [ "plastic_chunk", 50 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "sail",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_VEHICLES",
+ "skill_used": "fabrication",
+ "difficulty": 2,
+ "time": 30000,
+ "reversible": true,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
+ "using": [ [ "sewing_standard", 100 ] ],
+ "components": [ [ [ "rag", 40 ], [ "sheet", 2 ] ], [ [ "2x4", 10 ], [ "stick", 8 ], [ "stick_long", 4 ] ], [ [ "nail", 30 ] ] ]
+ },
+ {
+ "type": "recipe",
+ "result": "hand_paddles",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_VEHICLES",
+ "skill_used": "fabrication",
+ "difficulty": 1,
+ "time": 500,
+ "reversible": true,
+ "autolearn": true,
+ "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
+ "components": [ [ [ "2x4", 1 ] ], [ [ "nail", 5 ] ] ]
+ },
{
"result": "cargo_aisle",
"type": "recipe",
@@ -221,7 +298,7 @@
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
"autolearn": true,
- "time": 60000,
+ "time": "60 m",
"using": [ [ "welding_standard", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"components": [ [ [ "sheet_metal", 3 ] ], [ [ "clockworks", 2 ] ] ]
diff --git a/data/json/recipes/recipe_weapon.json b/data/json/recipes/recipe_weapon.json
index f011e6ad41f30..3d8663e435ce0 100644
--- a/data/json/recipes/recipe_weapon.json
+++ b/data/json/recipes/recipe_weapon.json
@@ -5,7 +5,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "duct_tape", 50 ] ], [ [ "blade", 1 ] ] ]
@@ -16,7 +16,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "duct_tape", 100 ] ], [ [ "blade", 1 ] ], [ [ "stick_long", 1 ] ] ]
@@ -28,7 +28,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 1,
"autolearn": true,
@@ -43,7 +43,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 460000,
+ "time": "460 m",
"autolearn": true,
"using": [ [ "forging_standard", 15 ], [ "steel_standard", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -57,7 +57,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -73,7 +73,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
@@ -88,7 +88,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
- "time": 800,
+ "time": "0 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "2x4", 1 ], [ "broom", 1 ], [ "pool_cue", 1 ] ] ]
@@ -101,7 +101,7 @@
"skill_used": "survival",
"skills_required": [ "fabrication", 1 ],
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "2x4", 1 ] ] ]
@@ -112,7 +112,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ] ] ]
@@ -123,7 +123,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
- "time": 100000,
+ "time": "100 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "rebar", 1 ] ] ]
@@ -134,7 +134,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -148,7 +148,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 3 ] ]
@@ -159,7 +159,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
- "time": 3000,
+ "time": "3 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "2x4", 1 ] ], [ [ "hose", 1 ] ] ]
@@ -171,7 +171,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -185,7 +185,7 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "fire", -1 ] ] ],
@@ -202,7 +202,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 2400,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
@@ -222,11 +222,10 @@
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
"difficulty": 2,
- "time": 2600,
+ "time": "2 m",
"autolearn": true,
- "//": "Hammer to kinda shape the spikes for stable attachment--no forge used",
- "qualities": [ { "id": "HAMMER", "level": 1 } ],
"//": "Extra duct tape/string needed to attach the spikes; rag/leather for grip.",
+ "qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [
[ [ "stick_long", 1 ], [ "pool_cue", 1 ] ],
[ [ "rag", 1 ], [ "felt_patch", 1 ], [ "leather", 1 ], [ "fur", 1 ] ],
@@ -242,7 +241,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 1 ], [ "stabbing", 1 ] ],
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 1 }, { "id": "CUT_FINE", "level": 1 } ],
"components": [
@@ -260,7 +259,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "survival", 1 ], [ "throw", 2 ] ],
"difficulty": 3,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"tools": [ [ [ "fire", -1 ] ] ],
@@ -278,7 +277,7 @@
"skill_used": "fabrication",
"skills_required": [ "throw", 2 ],
"difficulty": 2,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -290,7 +289,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -308,7 +307,7 @@
"skill_used": "fabrication",
"skills_required": [ "archery", 3 ],
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 1,
"autolearn": true,
@@ -324,7 +323,7 @@
"skill_used": "fabrication",
"skills_required": [ "archery", 3 ],
"difficulty": 8,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"decomp_learn": 1,
"book_learn": [ [ "manual_archery", 6 ], [ "recipe_bows", 5 ], [ "book_archery", 7 ] ],
@@ -338,7 +337,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"skills_required": [ "survival", 1 ],
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -352,7 +351,7 @@
"skill_used": "fabrication",
"skills_required": [ "archery", 1 ],
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 1,
"autolearn": true,
@@ -368,7 +367,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 7 ] ],
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"book_learn": [ [ "recipe_bows", 6 ], [ "manual_archery", 7 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
@@ -385,7 +384,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 2 ] ],
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "recipe_bows", 4 ], [ "manual_archery", 5 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -403,7 +402,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "mechanics", 2 ] ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "recipe_bows", 6 ] ],
"qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 } ],
"components": [
@@ -423,7 +422,7 @@
"skills_required": [ [ "mechanics", 4 ] ],
"using": [ [ "forging_standard", 4 ] ],
"difficulty": 7,
- "time": 240000,
+ "time": "240 m",
"book_learn": [ [ "recipe_bows", 8 ], [ "welding_book", 7 ], [ "textbook_mechanics", 7 ] ],
"qualities": [
{ "id": "ANVIL", "level": 3 },
@@ -452,7 +451,7 @@
"skills_required": [ [ "mechanics", 5 ] ],
"using": [ [ "forging_standard", 10 ] ],
"difficulty": 10,
- "time": 240000,
+ "time": "240 m",
"book_learn": [ [ "recipe_bows", 9 ], [ "welding_book", 8 ], [ "textbook_mechanics", 8 ] ],
"qualities": [
{ "id": "ANVIL", "level": 3 },
@@ -478,7 +477,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "2x4", 1 ], [ "stick", 1 ] ], [ [ "nail", 6 ] ] ]
@@ -489,7 +488,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 8 ] ],
@@ -501,7 +500,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "bat", 1 ] ], [ [ "nail", 6 ] ] ]
@@ -512,7 +511,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "bat", 1 ] ], [ [ "wire_barbed", 1 ] ] ]
@@ -523,7 +522,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"components": [ [ [ "bowling_pin", 1 ] ], [ [ "spike", 2 ] ], [ [ "duct_tape", 100 ] ] ]
@@ -536,7 +535,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"book_learn": [ [ "manual_shotgun", 2 ], [ "manual_pistol", 2 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ],
@@ -565,7 +564,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"book_learn": [ [ "manual_pistol", 3 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ],
@@ -589,7 +588,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"book_learn": [ [ "manual_pistol", 5 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ],
@@ -614,10 +613,9 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 180000,
- "//": "Three hours to remove the action, preserve the old stock, install the action in the new stock, and prep it for use",
- "autolearn": true,
+ "time": "180 m",
"//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
+ "autolearn": true,
"tools": [ [ [ "small_repairkit", -1 ], [ "large_repairkit", -1 ] ] ],
"components": [ [ [ "mosin91_30_ebr", 1 ] ], [ [ "mn_classic_kit", 1 ] ] ]
},
@@ -630,10 +628,9 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 180000,
- "//": "Three hours to remove the action, preserve the old stock, install the action in the new stock, and prep it for use",
- "autolearn": true,
+ "time": "180 m",
"//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
+ "autolearn": true,
"tools": [ [ [ "small_repairkit", -1 ], [ "large_repairkit", -1 ] ] ],
"components": [ [ [ "mosin44_ebr", 1 ] ], [ [ "mn_classic_kit", 1 ] ] ]
},
@@ -646,10 +643,9 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 180000,
- "//": "Three hours to remove the action, preserve the old stock, install the action in the new stock, and prep it for use",
- "autolearn": true,
+ "time": "180 m",
"//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
+ "autolearn": true,
"tools": [ [ [ "small_repairkit", -1 ], [ "large_repairkit", -1 ] ] ],
"components": [ [ [ "mosin91_30", 1 ] ], [ [ "mn_ebr_kit", 1 ] ] ]
},
@@ -662,10 +658,9 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 180000,
- "//": "Three hours to remove the action, preserve the old stock, install the action in the new stock, and prep it for use",
- "autolearn": true,
+ "time": "180 m",
"//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
+ "autolearn": true,
"tools": [ [ [ "small_repairkit", -1 ], [ "large_repairkit", -1 ] ] ],
"components": [ [ [ "mosin44", 1 ] ], [ [ "mn_ebr_kit", 1 ] ] ]
},
@@ -677,11 +672,10 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 90000,
- "//": "90 minutes to set up",
+ "time": "90 m",
+ "//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
"reversible": true,
"autolearn": true,
- "//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
"tools": [ [ [ "small_repairkit", -1 ], [ "large_repairkit", -1 ] ] ],
"components": [ [ [ "l_base_223", 1 ] ], [ [ "l_car_223_kit", 1 ] ] ]
},
@@ -693,7 +687,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 5,
- "time": 95000,
+ "time": "95 m",
"reversible": true,
"autolearn": true,
"//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
@@ -708,7 +702,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 6 ] ],
"difficulty": 6,
- "time": 120000,
+ "time": "120 m",
"reversible": true,
"autolearn": true,
"//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
@@ -723,11 +717,10 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 5 ] ],
"difficulty": 7,
- "time": 100000,
- "//": "Should be 100 minutes",
+ "time": "100 m",
+ "//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
"reversible": true,
"autolearn": true,
- "//": "Firearms kits are mandatory by design--you're doing significant modifications to your gun and should use the right gear to sight everything in, etc.",
"tools": [ [ [ "small_repairkit", -1 ], [ "large_repairkit", -1 ] ] ],
"components": [ [ [ "l_base_223", 1 ] ], [ [ "l_lmg_223_kit", 1 ] ] ]
},
@@ -738,7 +731,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "recipe_bows", 3 ], [ "manual_archery", 5 ], [ "book_archery", 4 ] ],
@@ -757,7 +750,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [
@@ -778,7 +771,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "mechanics", 3 ] ],
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [ [ "recipe_bows", 5 ], [ "manual_archery", 6 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -797,9 +790,10 @@
"skills_required": [ [ "mechanics", 5 ] ],
"using": [ [ "forging_standard", 4 ] ],
"difficulty": 7,
- "time": 240000,
+ "time": "240 m",
"book_learn": [ [ "recipe_bows", 9 ], [ "welding_book", 8 ], [ "textbook_mechanics", 8 ] ],
"qualities": [
+ { "id": "ANVIL", "level": 3 },
{ "id": "CUT", "level": 1 },
{ "id": "SCREW", "level": 1 },
{ "id": "HAMMER", "level": 3 },
@@ -823,7 +817,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"decomp_learn": 2,
"book_learn": [ [ "recipe_bows", 1 ], [ "manual_archery", 3 ], [ "book_archery", 2 ] ],
@@ -837,7 +831,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "mechanics",
"difficulty": 1,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -851,7 +845,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -865,7 +859,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "pipe", 1 ] ], [ [ "2x4", 1 ] ], [ [ "scrap", 2 ] ] ]
@@ -878,7 +872,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 2,
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -892,7 +886,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 18000,
+ "time": "18 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -906,7 +900,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 5 ],
"difficulty": 7,
- "time": 270000,
+ "time": "270 m",
"autolearn": true,
"qualities": [
{ "id": "HAMMER_FINE", "level": 1 },
@@ -934,7 +928,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -948,7 +942,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 3 ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -963,7 +957,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 5 ],
"difficulty": 7,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "welding_standard", 30 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
@@ -978,7 +972,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 4 ],
"difficulty": 6,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"qualities": [
{ "id": "SAW_M_FINE", "level": 1 },
@@ -1006,7 +1000,7 @@
"skill_used": "mechanics",
"skills_required": [ "launcher", 4 ],
"difficulty": 7,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"qualities": [
{ "id": "SAW_M_FINE", "level": 1 },
@@ -1034,7 +1028,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 3 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -1054,7 +1048,7 @@
"skill_used": "mechanics",
"skills_required": [ "launcher", 3 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -1069,7 +1063,7 @@
"skill_used": "mechanics",
"skills_required": [ "launcher", 3 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "manual_launcher", 3 ], [ "mag_launcher", 4 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "pipe", 1 ] ], [ [ "duct_tape", 50 ] ], [ [ "nail", 1 ] ] ]
@@ -1080,7 +1074,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "launcher",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"decomp_learn": 0,
@@ -1094,7 +1088,7 @@
"skill_used": "mechanics",
"skills_required": [ "shotgun", 3 ],
"difficulty": 6,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "manual_shotgun", 4 ], [ "mag_shotgun", 5 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 } ],
"components": [ [ [ "pipe", 2 ] ], [ [ "duct_tape", 75 ] ], [ [ "nail", 2 ] ] ]
@@ -1107,7 +1101,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 3 ],
"difficulty": 6,
- "time": 18000,
+ "time": "18 m",
"reversible": true,
"decomp_learn": 5,
"autolearn": true,
@@ -1129,7 +1123,7 @@
"skill_used": "mechanics",
"skills_required": [ "melee", 2 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "textbook_mechanics", 4 ], [ "recipe_melee", 5 ] ],
"using": [ [ "welding_standard", 10 ] ],
@@ -1149,7 +1143,7 @@
"skill_used": "mechanics",
"skills_required": [ "melee", 2 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "textbook_mechanics", 4 ], [ "recipe_melee", 5 ] ],
"using": [ [ "welding_standard", 10 ] ],
@@ -1169,7 +1163,7 @@
"skill_used": "electronics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 3 ], [ "textbook_anarch", 4 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 } ],
@@ -1183,7 +1177,7 @@
"subcategory": "CSC_WEAPON_MODS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "rope_6", 1 ], [ "rag", 3 ], [ "string_36", 6 ] ] ]
@@ -1195,7 +1189,7 @@
"subcategory": "CSC_WEAPON_MODS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 1 ] ],
@@ -1209,7 +1203,7 @@
"skill_used": "fabrication",
"skills_required": [ "gun", 1 ],
"difficulty": 9,
- "time": 55000,
+ "time": "55 m",
"book_learn": [ [ "welding_book", 7 ], [ "recipe_melee", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "swage", -1 ], [ "tongs", -1 ] ], [ [ "forge", 475 ], [ "oxy_torch", 95 ] ] ],
@@ -1222,7 +1216,7 @@
"subcategory": "CSC_WEAPON_MODS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 500,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage_short", 2 ] ],
@@ -1236,7 +1230,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 1,
- "time": 650,
+ "time": "0 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 } ],
"components": [ [ [ "rag", 4 ], [ "plastic_chunk", 4 ], [ "felt_patch", 4 ], [ "leather", 4 ] ], [ [ "pipe", 1 ] ] ]
@@ -1249,7 +1243,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 8,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"tools": [ [ [ "large_repairkit", 250 ] ] ],
"components": [ [ [ "scrap", 1 ] ], [ [ "pipe", 2 ] ] ]
@@ -1262,7 +1256,7 @@
"skill_used": "tailor",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 65000,
+ "time": "65 m",
"reversible": true,
"autolearn": true,
"using": [ [ "sewing_standard", 4 ] ],
@@ -1276,7 +1270,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 5,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"book_learn": [
[ "manual_fabrication", 3 ],
@@ -1311,7 +1305,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 4,
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"book_learn": [ [ "manual_fabrication", 3 ], [ "manual_shotgun", 4 ], [ "manual_smg", 4 ], [ "manual_rifle", 4 ] ],
"qualities": [
@@ -1340,7 +1334,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "textbook_mechanics", 3 ],
[ "manual_pistol", 4 ],
@@ -1359,7 +1353,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 2 ] ],
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "manual_fabrication", 2 ], [ "manual_rifle", 3 ], [ "manual_launcher", 3 ] ],
"qualities": [
@@ -1388,7 +1382,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 5,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [
[ "manual_fabrication", 3 ],
@@ -1410,7 +1404,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 4 ] ],
"difficulty": 8,
- "time": 60000,
+ "time": "60 m",
"book_learn": [ [ "textbook_mechanics", 4 ], [ "manual_shotgun", 5 ], [ "manual_rifle", 5 ] ],
"tools": [ [ [ "large_repairkit", 150 ] ], [ [ "swage", -1 ] ] ],
"components": [ [ [ "pipe", 1 ] ] ]
@@ -1423,7 +1417,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 6,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"book_learn": [
[ "textbook_mechanics", 3 ],
@@ -1445,7 +1439,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "manual_fabrication", 3 ], [ "manual_pistol", 4 ] ],
"qualities": [
@@ -1474,7 +1468,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [
[ "manual_fabrication", 3 ],
@@ -1509,7 +1503,7 @@
"skill_used": "mechanics",
"skills_required": [ [ "gun", 3 ] ],
"difficulty": 6,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [
[ "textbook_mechanics", 3 ],
@@ -1530,7 +1524,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "rifle", 3 ] ],
"difficulty": 5,
- "time": 140000,
+ "time": "140 m",
"//": "Pipe/sheet metal is to add trip to non M16-style carriers, since both types are in civilian AR's.",
"book_learn": [ [ "manual_rifle", 5 ], [ "textbook_anarch", 5 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "DRILL", "level": 1 } ],
@@ -1549,7 +1543,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "rifle", 3 ] ],
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"//": "Simple to manufacture, hence it's not gonna be in published in too much detail in gun-mags.",
"book_learn": [ [ "manual_rifle", 6 ], [ "textbook_anarch", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
@@ -1564,7 +1558,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 2 ] ],
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"book_learn": [ [ "manual_gun", 3 ], [ "mag_archery", 2 ], [ "manual_archery", 1 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -1579,7 +1573,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 3 ] ],
"difficulty": 3,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"book_learn": [ [ "mag_archery", 3 ], [ "manual_archery", 2 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -1594,7 +1588,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 1 ] ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"book_learn": [ [ "mag_archery", 2 ], [ "manual_archery", 1 ] ],
"using": [ [ "soldering_standard", 5 ] ],
@@ -1608,7 +1602,7 @@
"subcategory": "CSC_WEAPON_MODS",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 35000,
+ "time": "35 m",
"book_learn": [ [ "recipe_bows", 3 ], [ "manual_archery", 5 ], [ "book_archery", 4 ] ],
"qualities": [
{ "id": "CUT", "level": 1 },
@@ -1631,7 +1625,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 25000,
+ "time": "25 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 2 ], [ "stick", 4 ] ] ]
@@ -1643,7 +1637,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "sword_wood", 1 ] ], [ [ "nail", 12 ] ] ]
@@ -1655,7 +1649,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "mechanics",
"difficulty": 1,
- "time": 10000,
+ "time": "10 m",
"reversible": true,
"decomp_learn": 3,
"book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ],
@@ -1668,7 +1662,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "mechanics",
"difficulty": 4,
- "time": 20000,
+ "time": "20 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ],
@@ -1682,7 +1676,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ],
@@ -1696,7 +1690,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ],
@@ -1710,7 +1704,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "mechanics",
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ],
@@ -1725,7 +1719,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 2 ],
"difficulty": 6,
- "time": 160000,
+ "time": "160 m",
"autolearn": true,
"using": [ [ "welding_standard", 15 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
@@ -1745,7 +1739,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 2 ],
"difficulty": 7,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "welding_standard", 20 ] ],
"qualities": [
@@ -1771,7 +1765,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 3 ],
"difficulty": 8,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"using": [ [ "welding_standard", 30 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
@@ -1791,7 +1785,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 3 ],
"difficulty": 8,
- "time": 240000,
+ "time": "240 m",
"book_learn": [ [ "recipe_mininuke_launch", 5 ] ],
"using": [ [ "welding_standard", 20 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH_FINE", "level": 1 } ],
@@ -1811,7 +1805,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 2 ],
"difficulty": 3,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"book_learn": [ [ "textbook_fabrication", 2 ] ],
"qualities": [
@@ -1831,7 +1825,7 @@
"skill_used": "electronics",
"skills_required": [ "mechanics", 6 ],
"difficulty": 9,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"qualities": [
{ "id": "SAW_M_FINE", "level": 1 },
@@ -1856,7 +1850,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "survival",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "spray_can", 1 ] ], [ [ "duct_tape", 25 ] ], [ [ "lighter", 1 ] ] ]
@@ -1869,7 +1863,7 @@
"skill_used": "fabrication",
"skills_required": [ "bashing", 1 ],
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "rag", 4 ] ], [ [ "scrap", 4 ] ] ]
@@ -1882,7 +1876,7 @@
"skill_used": "fabrication",
"skills_required": [ "bashing", 1 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "recipe_melee", 3 ], [ "textbook_weapeast", 8 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "2x4", 4 ], [ "stick", 8 ] ], [ [ "rebar", 5 ] ] ]
@@ -1893,7 +1887,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"using": [ [ "cordage", 4 ] ],
@@ -1908,7 +1902,7 @@
"skill_used": "fabrication",
"skills_required": [ "bashing", 1 ],
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_melee", 1 ], [ "textbook_weapeast", 7 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
"components": [ [ [ "leather", 4 ] ], [ [ "scrap", 8 ] ] ]
@@ -1920,7 +1914,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 300000,
+ "time": "300 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ],
@@ -1933,7 +1927,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ],
@@ -1950,7 +1944,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ],
@@ -1963,7 +1957,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 360000,
+ "time": "360 m",
"book_learn": [ [ "manual_knives", 4 ], [ "recipe_melee", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ],
@@ -1976,7 +1970,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 390000,
+ "time": "390 m",
"book_learn": [ [ "manual_knives", 4 ], [ "recipe_melee", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ],
@@ -1989,7 +1983,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 390000,
+ "time": "390 m",
"book_learn": [ [ "manual_knives", 3 ], [ "recipe_melee", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ],
@@ -2002,7 +1996,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 360000,
+ "time": "360 m",
"book_learn": [ [ "manual_knives", 9 ], [ "textbook_weapeast", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 400 ], [ "oxy_torch", 80 ] ] ],
@@ -2015,7 +2009,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ],
@@ -2028,7 +2022,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [
{ "id": "ANVIL", "level": 3 },
@@ -2047,7 +2041,7 @@
"skill_used": "fabrication",
"skills_required": [ "throw", 1 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
@@ -2060,7 +2054,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 460000,
+ "time": "460 m",
"autolearn": true,
"book_learn": [ [ "manual_knives", 5 ], [ "recipe_melee", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -2074,7 +2068,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 360000,
+ "time": "360 m",
"autolearn": true,
"book_learn": [ [ "manual_knives", 5 ], [ "recipe_melee", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -2088,7 +2082,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"book_learn": [ [ "manual_knives", 3 ], [ "recipe_melee", 2 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -2102,7 +2096,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"components": [ [ [ "q_staff", 1 ] ], [ [ "duct_tape", 200 ] ], [ [ "chainsaw_off", 2 ] ] ]
},
@@ -2113,7 +2107,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"components": [ [ [ "q_staff", 1 ] ], [ [ "duct_tape", 200 ] ], [ [ "elec_chainsaw_off", 2 ] ] ]
},
@@ -2124,7 +2118,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_fireman", 8 ], [ "textbook_fabrication", 9 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2137,7 +2131,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 460000,
+ "time": "460 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ],
@@ -2150,7 +2144,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 260000,
+ "time": "260 m",
"book_learn": [ [ "manual_knives", 3 ], [ "recipe_melee", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 350 ], [ "oxy_torch", 70 ] ] ],
@@ -2162,7 +2156,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"flags": [ "BLIND_EASY" ],
@@ -2176,7 +2170,7 @@
"skill_used": "electronics",
"skills_required": [ "fabrication", 4, "gun", 2 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "recipe_lab_elec", 5 ] ],
"qualities": [ { "id": "SCREW_FINE", "level": 1 } ],
"tools": [ [ [ "soldering_standard", 20, "LIST" ], [ "small_repairkit", 20 ], [ "large_repairkit", 10 ] ] ],
@@ -2196,7 +2190,7 @@
"skill_used": "fabrication",
"skills_required": [ "melee", 1 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "recipe_melee", 4 ] ],
"tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "plastic_chunk", 10 ] ] ]
@@ -2209,7 +2203,7 @@
"skill_used": "fabrication",
"skills_required": [ "bashing", 3 ],
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"book_learn": [ [ "recipe_melee", 3 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 1 ], [ "stick", 2 ] ] ]
@@ -2222,7 +2216,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 6,
- "time": 45000,
+ "time": "45 m",
"book_learn": [ [ "recipe_melee", 5 ] ],
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -2242,7 +2236,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"skills_required": [ ],
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"tools": [ ],
@@ -2255,7 +2249,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "sword_wood", 1 ] ], [ [ "scrap", 4 ] ] ]
@@ -2267,7 +2261,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 400000,
+ "time": "400 m",
"book_learn": [ [ "textbook_weapwest", 6 ], [ "scots_cookbook", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ],
@@ -2284,7 +2278,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 425 ], [ "oxy_torch", 85 ] ] ],
@@ -2301,7 +2295,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 400 ], [ "oxy_torch", 80 ] ] ],
@@ -2318,7 +2312,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_weapwest", 8 ], [ "recipe_melee", 7 ], [ "scots_cookbook", 9 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 400 ], [ "oxy_torch", 80 ] ] ],
@@ -2335,7 +2329,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_weapwest", 8 ], [ "recipe_melee", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 350 ], [ "oxy_torch", 70 ] ] ],
@@ -2348,7 +2342,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_weapwest", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2365,7 +2359,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_armschina", 7 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 425 ], [ "oxy_torch", 85 ] ] ],
@@ -2383,7 +2377,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_armschina", 7 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2400,7 +2394,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 490000,
+ "time": "490 m",
"book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2417,7 +2411,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_weapwest", 7 ], [ "scots_cookbook", 9 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2434,7 +2428,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_weapwest", 8 ], [ "scots_cookbook", 10 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2452,7 +2446,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 340000,
+ "time": "340 m",
"book_learn": [ [ "textbook_weapeast", 6 ] ],
"qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 1 } ],
"//": "Bokken is a single piece of wood, and the heavy stick just isn't large enough.",
@@ -2470,7 +2464,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 380000,
+ "time": "380 m",
"book_learn": [ [ "textbook_weapeast", 6 ], [ "manual_knives", 7 ], [ "recipe_melee", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 310 ], [ "oxy_torch", 70 ] ] ],
@@ -2487,7 +2481,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_weapeast", 7 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 400 ], [ "oxy_torch", 80 ] ] ],
@@ -2504,7 +2498,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_weapeast", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2521,7 +2515,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 10,
- "time": 580000,
+ "time": "580 m",
"book_learn": [ [ "textbook_weapeast", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 500 ], [ "oxy_torch", 100 ] ] ],
@@ -2538,7 +2532,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 180000,
+ "time": "180 m",
"book_learn": [ [ "textbook_weapwest", 3 ], [ "recipe_melee", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "forge", 200 ], [ "oxy_torch", 40 ] ] ],
@@ -2555,7 +2549,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 240000,
+ "time": "240 m",
"book_learn": [ [ "textbook_weapwest", 5 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ],
@@ -2572,7 +2566,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 360000,
+ "time": "360 m",
"book_learn": [ [ "textbook_weapwest", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 350 ], [ "oxy_torch", 70 ] ] ],
@@ -2590,7 +2584,7 @@
"skill_used": "fabrication",
"skills_required": [ "bashing", 2 ],
"difficulty": 2,
- "time": 18000,
+ "time": "18 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "2x4", 1 ], [ "stick", 2 ] ], [ [ "leather", 2 ] ] ]
@@ -2602,7 +2596,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 24000,
+ "time": "24 m",
"autolearn": true,
"book_learn": [ [ "textbook_weapwest", 2 ], [ "recipe_melee", 3 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ],
@@ -2616,7 +2610,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 480000,
+ "time": "480 m",
"book_learn": [ [ "textbook_weapeast", 9 ], [ "recipe_melee", 4 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 250 ], [ "oxy_torch", 50 ] ] ],
@@ -2630,7 +2624,7 @@
"skill_used": "fabrication",
"skills_required": [ "electronics", 3 ],
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"book_learn": [ [ "textbook_electronics", 3 ], [ "advanced_electronics", 3 ], [ "recipe_melee", 4 ] ],
"using": [ [ "soldering_standard", 10 ] ],
@@ -2644,7 +2638,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 15000,
+ "time": "15 m",
"autolearn": true,
"components": [ [ [ "q_staff", 1 ] ], [ [ "duct_tape", 100 ] ], [ [ "blade", 2 ] ] ]
},
@@ -2655,7 +2649,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 60000,
+ "time": "60 m",
"reversible": true,
"decomp_learn": 5,
"book_learn": [ [ "recipe_bows", 6 ], [ "textbook_weapwest", 6 ] ],
@@ -2683,7 +2677,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 45000,
+ "time": "45 m",
"reversible": true,
"decomp_learn": 4,
"book_learn": [ [ "recipe_bows", 4 ], [ "textbook_weapeast", 6 ] ],
@@ -2697,7 +2691,7 @@
"skill_used": "fabrication",
"skills_required": [ "launcher", 3 ],
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "2x4", 2 ], [ "stick", 2 ] ], [ [ "scrap", 1 ] ] ]
@@ -2710,7 +2704,7 @@
"skill_used": "fabrication",
"skills_required": [ ],
"difficulty": 1,
- "time": 8000,
+ "time": "8 m",
"reversible": true,
"autolearn": true,
"using": [ [ "adhesive", 1 ] ],
@@ -2725,7 +2719,7 @@
"skill_used": "electronics",
"skills_required": [ "gun", 1 ],
"difficulty": 5,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -2738,7 +2732,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 50 ], [ "oxy_torch", 10 ] ] ],
@@ -2751,7 +2745,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2764,7 +2758,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 460000,
+ "time": "460 m",
"book_learn": [ [ "textbook_armschina", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2782,7 +2776,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 360000,
+ "time": "360 m",
"book_learn": [ [ "textbook_weapwest", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 350 ], [ "oxy_torch", 70 ] ] ],
@@ -2799,7 +2793,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 460000,
+ "time": "460 m",
"book_learn": [ [ "textbook_weapwest", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2816,7 +2810,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 460000,
+ "time": "460 m",
"book_learn": [ [ "textbook_weapeast", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 450 ], [ "oxy_torch", 90 ] ] ],
@@ -2834,7 +2828,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 7,
- "time": 46000,
+ "time": "46 m",
"book_learn": [ [ "textbook_weapeast", 6 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
"tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
@@ -2848,7 +2842,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "melee", 5 ],
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"qualities": [
{ "id": "ANVIL", "level": 3 },
@@ -2867,7 +2861,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ "melee", 5 ],
- "time": 5000,
+ "time": "5 m",
"autolearn": true,
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
@@ -2881,7 +2875,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 4 ],
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "GLARE", "level": 2 } ],
"tools": [
@@ -2897,7 +2891,7 @@
"subcategory": "CSC_WEAPON_RANGED",
"skill_used": "fabrication",
"difficulty": 6,
- "time": 210000,
+ "time": "210 m",
"book_learn": [ [ "manual_launcher", 7 ] ],
"using": [ [ "welding_standard", 3 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ],
@@ -2912,7 +2906,7 @@
"skills_required": [ [ "mechanics", 10 ], [ "electronics", 9 ], [ "computer", 2 ] ],
"using": [ [ "soldering_standard", 20 ], [ "welding_standard", 50 ], [ "forging_standard", 4 ], [ "surface_heat", 30 ] ],
"difficulty": 10,
- "time": 720000,
+ "time": "720 m",
"autolearn": true,
"qualities": [
{ "id": "ANVIL", "level": 3 },
@@ -2952,7 +2946,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "mechanics", 6 ], [ "gun", 4 ] ],
"difficulty": 6,
- "time": 180000,
+ "time": "180 m",
"autolearn": true,
"qualities": [
{ "id": "SAW_M", "level": 1 },
diff --git a/data/json/recipes/weapon/bashing.json b/data/json/recipes/weapon/bashing.json
index 6f83c2ca4683c..d9e70ec9ddc62 100644
--- a/data/json/recipes/weapon/bashing.json
+++ b/data/json/recipes/weapon/bashing.json
@@ -5,7 +5,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -28,7 +28,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 120000,
+ "time": "120 m",
"autolearn": true,
"using": [ [ "forging_standard", 8 ], [ "steel_standard", 2 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -41,7 +41,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_fireman", 8 ] ],
"using": [ [ "forging_standard", 20 ], [ "steel_standard", 3 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -54,7 +54,7 @@
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
"difficulty": 5,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"using": [ [ "forging_standard", 8 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -71,7 +71,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 1000,
+ "time": "1 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 1 } ],
"components": [ [ [ "pipe", 1 ] ] ]
@@ -82,7 +82,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_BASHING",
"skill_used": "fabrication",
- "time": 2000,
+ "time": "2 m",
"autolearn": true,
"components": [
[ [ "rag", 1 ] ],
@@ -96,5 +96,19 @@
]
],
"flags": [ "BLIND_HARD" ]
+ },
+ {
+ "type": "recipe",
+ "result": "torch",
+ "id_suffix": "pine",
+ "category": "CC_WEAPON",
+ "subcategory": "CSC_WEAPON_BASHING",
+ "skill_used": "survival",
+ "time": "3 m",
+ "autolearn": true,
+ "batch_time_factors": [ 50, 5 ],
+ "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
+ "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ],
+ "components": [ [ [ "stick", 1 ], [ "2x4", 1 ], [ "splinter", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ], [ [ "pine_bough", 2 ] ] ]
}
]
diff --git a/data/json/recipes/weapon/cutting.json b/data/json/recipes/weapon/cutting.json
index 4498ba3536a14..f08e754a2788d 100644
--- a/data/json/recipes/weapon/cutting.json
+++ b/data/json/recipes/weapon/cutting.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_WEAPON_CUTTING",
"skill_used": "fabrication",
"difficulty": 8,
- "time": 420000,
+ "time": "420 m",
"book_learn": [ [ "textbook_weapwest", 7 ] ],
"using": [ [ "forging_standard", 2 ], [ "steel_standard", 2 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
diff --git a/data/json/recipes/weapon/explosive.json b/data/json/recipes/weapon/explosive.json
index 4f5a552ec07ff..ff44f1d383630 100644
--- a/data/json/recipes/weapon/explosive.json
+++ b/data/json/recipes/weapon/explosive.json
@@ -5,7 +5,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
- "time": 500,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -21,7 +21,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "cooking",
"difficulty": 7,
- "time": 10000,
+ "time": "10 m",
"book_learn": [ [ "textbook_anarch", 5 ], [ "adv_chemistry", 6 ], [ "textbook_chemistry", 6 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
"tools": [ [ [ "surface_heat", 25, "LIST" ] ] ],
@@ -46,7 +46,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "electronics",
"difficulty": 4,
- "time": 32000,
+ "time": "32 m",
"reversible": true,
"book_learn": [ [ "textbook_anarch", 5 ], [ "advanced_electronics", 5 ] ],
"using": [ [ "soldering_standard", 6 ] ],
@@ -71,7 +71,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 1000,
+ "time": "1 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -83,7 +83,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
- "time": 3000,
+ "time": "3 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
@@ -97,7 +97,7 @@
"skill_used": "cooking",
"skills_required": [ "survival", 2 ],
"difficulty": 3,
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"book_learn": [ [ "adv_chemistry", 2 ], [ "textbook_chemistry", 2 ], [ "recipe_labchem", 3 ], [ "atomic_survival", 2 ] ],
"qualities": [ { "id": "CHEM", "level": 2 } ],
@@ -116,7 +116,7 @@
"skill_used": "fabrication",
"skills_required": [ "cooking", 6 ],
"difficulty": 6,
- "time": 40000,
+ "time": "40 m",
"reversible": true,
"book_learn": [ [ "recipe_labchem", 7 ], [ "textbook_anarch", 7 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -137,7 +137,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 4,
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"book_learn": [ [ "textbook_gaswarfare", 3 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -156,7 +156,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SCREW", "level": 1 } ],
@@ -183,7 +183,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 3,
- "time": 10000,
+ "time": "10 m",
"autolearn": true,
"tools": [ [ [ "matches", 20 ] ] ],
"components": [ [ [ "string_6", 1 ] ], [ [ "bottle_glass", 1 ], [ "clay_canister", 1 ], [ "flask_glass", 1 ], [ "jar_glass", 1 ] ] ]
@@ -194,7 +194,7 @@
"category": "CC_WEAPON",
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
- "time": 500,
+ "time": "0 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -219,7 +219,7 @@
"skill_used": "fabrication",
"skills_required": [ "mechanics", 1 ],
"difficulty": 2,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"components": [
@@ -244,7 +244,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 5000,
+ "time": "5 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -270,7 +270,7 @@
"skill_used": "electronics",
"skills_required": [ "computer", 4 ],
"difficulty": 8,
- "time": 32000,
+ "time": "32 m",
"reversible": true,
"book_learn": [ [ "textbook_anarch", 8 ], [ "advanced_electronics", 8 ] ],
"using": [ [ "soldering_standard", 6 ] ],
@@ -285,7 +285,7 @@
"skill_used": "cooking",
"skills_required": [ "mechanics", 1 ],
"difficulty": 3,
- "time": 7500,
+ "time": "7 m",
"autolearn": true,
"qualities": [ { "id": "SCREW", "level": 1 } ],
"components": [
@@ -303,7 +303,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "cooking",
"difficulty": 7,
- "time": 120000,
+ "time": "120 m",
"reversible": true,
"book_learn": [ [ "manual_launcher", 7 ], [ "textbook_anarch", 8 ] ],
"tools": [ [ [ "welder", 20 ], [ "welder_crude", 30 ], [ "toolset", 30 ], [ "soldering_iron", 30 ] ] ],
@@ -316,7 +316,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 2,
- "time": 15000,
+ "time": "15 m",
"reversible": true,
"book_learn": [ [ "manual_launcher", 2 ], [ "textbook_anarch", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -329,7 +329,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 25000,
+ "time": "25 m",
"reversible": true,
"book_learn": [ [ "manual_launcher", 4 ], [ "textbook_anarch", 5 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
@@ -342,7 +342,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 9,
- "time": 300000,
+ "time": "300 m",
"reversible": true,
"using": [ [ "cordage", 5 ] ],
"book_learn": [ [ "manual_launcher", 9 ] ],
@@ -356,7 +356,7 @@
"subcategory": "CSC_WEAPON_EXPLOSIVE",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"book_learn": [ [ "manual_launcher", 4 ], [ "textbook_anarch", 5 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 } ],
diff --git a/data/json/recipes/weapon/magazines.json b/data/json/recipes/weapon/magazines.json
index 6e2bdc2bf3c98..67a817456b0d0 100644
--- a/data/json/recipes/weapon/magazines.json
+++ b/data/json/recipes/weapon/magazines.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 2 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "small_repairkit", 10 ], [ "large_repairkit", 5 ] ] ],
@@ -21,7 +21,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 2 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "small_repairkit", 10 ], [ "large_repairkit", 5 ] ] ],
@@ -35,7 +35,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 2 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "small_repairkit", 10 ], [ "large_repairkit", 5 ] ] ],
@@ -49,7 +49,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 2 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "small_repairkit", 10 ], [ "large_repairkit", 5 ] ] ],
@@ -63,7 +63,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ "gun", 2 ],
- "time": 20000,
+ "time": "20 m",
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 3 ] ],
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
"tools": [ [ [ "small_repairkit", 10 ], [ "large_repairkit", 5 ] ] ],
@@ -77,7 +77,7 @@
"skill_used": "fabrication",
"difficulty": 1,
"skills_required": [ "gun", 2 ],
- "time": 8000,
+ "time": "8 m",
"autolearn": true,
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [
@@ -95,7 +95,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "mechanics", 3 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
@@ -109,7 +109,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 1 ] ], [ [ "spring", 1 ] ], [ [ "duct_tape", 40 ] ] ]
@@ -122,7 +122,7 @@
"skill_used": "tailor",
"difficulty": 3,
"skills_required": [ "gun", 1 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "sewing_standard", 40 ] ],
"components": [ [ [ "rag", 2 ] ] ]
@@ -135,7 +135,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 1 ] ], [ [ "spring", 1 ] ], [ [ "duct_tape", 40 ] ] ]
@@ -148,7 +148,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 1 ] ], [ [ "spring", 1 ] ], [ [ "duct_tape", 40 ] ] ]
@@ -161,7 +161,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 1 ] ], [ [ "spring", 1 ] ], [ [ "duct_tape", 40 ] ] ]
@@ -174,7 +174,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 1 ] ], [ [ "spring", 1 ] ], [ [ "duct_tape", 40 ] ] ]
@@ -187,7 +187,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ "gun", 1 ],
- "time": 20000,
+ "time": "20 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
"components": [ [ [ "sheet_metal_small", 1 ] ], [ [ "spring", 1 ] ], [ [ "duct_tape", 40 ] ] ]
@@ -200,7 +200,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "mechanics", 3 ],
- "time": 40000,
+ "time": "40 m",
"autolearn": true,
"using": [ [ "welding_standard", 2 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 } ],
diff --git a/data/json/recipes/weapon/mods.json b/data/json/recipes/weapon/mods.json
index a2658382b220b..2ccd7e64285ae 100644
--- a/data/json/recipes/weapon/mods.json
+++ b/data/json/recipes/weapon/mods.json
@@ -7,7 +7,7 @@
"skill_used": "fabrication",
"difficulty": 2,
"skills_required": [ [ "gun", 3 ] ],
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "mag_guns", 3 ],
[ "mag_pistol", 3 ],
@@ -33,7 +33,7 @@
"skill_used": "fabrication",
"difficulty": 3,
"skills_required": [ [ "gun", 4 ] ],
- "time": 30000,
+ "time": "30 m",
"book_learn": [
[ "mag_guns", 4 ],
[ "mag_pistol", 4 ],
@@ -59,7 +59,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ [ "gun", 4 ] ],
- "time": 15000,
+ "time": "15 m",
"decomp_learn": 3,
"book_learn": [ [ "manual_rifle", 2 ], [ "manual_fabrication", 3 ], [ "textbook_fabrication", 3 ] ],
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
@@ -85,7 +85,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ [ "pistol", 5 ] ],
- "time": 15000,
+ "time": "15 m",
"decomp_learn": 4,
"book_learn": [ [ "manual_pistol", 2 ], [ "manual_fabrication", 3 ], [ "textbook_fabrication", 3 ] ],
"using": [ [ "soldering_standard", 10 ], [ "surface_heat", 10 ] ],
@@ -111,7 +111,7 @@
"skill_used": "fabrication",
"difficulty": 6,
"skills_required": [ [ "pistol", 3 ] ],
- "time": 15000,
+ "time": "15 m",
"decomp_learn": 4,
"book_learn": [ [ "manual_pistol", 3 ], [ "manual_fabrication", 4 ], [ "textbook_fabrication", 4 ] ],
"using": [ [ "welding_standard", 15 ] ],
@@ -127,7 +127,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 2 ] ],
"difficulty": 2,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"book_learn": [ [ "manual_gun", 3 ], [ "mag_archery", 2 ], [ "manual_archery", 1 ] ],
"using": [ [ "soldering_standard", 8 ] ],
@@ -142,7 +142,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 3 ] ],
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "manual_gun", 3 ], [ "mag_archery", 2 ], [ "manual_archery", 1 ] ],
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ],
@@ -156,7 +156,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 3 ] ],
"difficulty": 4,
- "time": 15000,
+ "time": "15 m",
"book_learn": [ [ "mag_archery", 3 ], [ "manual_archery", 2 ] ],
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [
@@ -175,7 +175,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "mechanics", 2 ] ],
"difficulty": 2,
- "time": 2600,
+ "time": "2 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 } ],
"components": [ [ [ "filter_liquid", 1 ], [ "muffler", 1 ] ], [ [ "pipe", 1 ] ], [ [ "scrap", 2 ] ] ]
@@ -187,7 +187,7 @@
"subcategory": "CSC_OTHER_CONTAINERS",
"skill_used": "fabrication",
"difficulty": 1,
- "time": 6000,
+ "time": "6 m",
"autolearn": true,
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "duct_tape", 75 ] ], [ [ "bottle_twoliter", 1 ] ], [ [ "bottle_plastic", 4 ], [ "bottle_plastic_small", 4 ] ] ]
@@ -200,7 +200,7 @@
"skill_used": "fabrication",
"skills_required": [ [ "archery", 2 ] ],
"difficulty": 2,
- "time": 1500,
+ "time": "1 m",
"book_learn": [ [ "mag_archery", 1 ], [ "manual_archery", 1 ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "plastic_chunk", 1 ], [ "fur", 1 ] ], [ [ "superglue", 1 ], [ "bone_glue", 1 ] ] ]
diff --git a/data/json/recipes/weapon/piercing.json b/data/json/recipes/weapon/piercing.json
index 0631f05492c93..86522ae1cdd6a 100644
--- a/data/json/recipes/weapon/piercing.json
+++ b/data/json/recipes/weapon/piercing.json
@@ -6,7 +6,7 @@
"subcategory": "CSC_WEAPON_PIERCING",
"skill_used": "fabrication",
"difficulty": 4,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "forging_standard", 1 ], [ "steel_standard", 1 ] ],
"qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
@@ -25,7 +25,7 @@
"skill_used": "fabrication",
"difficulty": 1,
"skills_required": [ "melee", 1 ],
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"using": [ [ "welding_standard", 2 ], [ "steel_tiny", 1 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ],
diff --git a/data/json/recipes/weapon/ranged.json b/data/json/recipes/weapon/ranged.json
index 3d22141a6fadb..48157a1d643e3 100644
--- a/data/json/recipes/weapon/ranged.json
+++ b/data/json/recipes/weapon/ranged.json
@@ -7,7 +7,7 @@
"skill_used": "mechanics",
"skills_required": [ "launcher", 2 ],
"difficulty": 6,
- "time": 30000,
+ "time": "30 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "HAMMER", "level": 2 } ],
@@ -22,7 +22,7 @@
"skill_used": "fabrication",
"difficulty": 1,
"skills_required": [ "gun", 2 ],
- "time": 12000,
+ "time": "12 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -36,7 +36,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -50,7 +50,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -64,7 +64,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -78,7 +78,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -92,7 +92,7 @@
"skill_used": "mechanics",
"skills_required": [ "gun", 1 ],
"difficulty": 3,
- "time": 14000,
+ "time": "14 m",
"reversible": true,
"autolearn": true,
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -106,7 +106,7 @@
"skill_used": "fabrication",
"skills_required": [ "rifle", 4 ],
"difficulty": 8,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"book_learn": [ [ "manual_rifle", 5 ], [ "mag_rifle", 6 ] ],
"qualities": [
@@ -128,7 +128,7 @@
"skill_used": "fabrication",
"skills_required": [ "rifle", 4 ],
"difficulty": 7,
- "time": 240000,
+ "time": "240 m",
"autolearn": true,
"book_learn": [ [ "manual_rifle", 5 ], [ "mag_rifle", 6 ] ],
"qualities": [
@@ -150,7 +150,7 @@
"skill_used": "fabrication",
"skills_required": [ "pistol", 4 ],
"difficulty": 8,
- "time": 80000,
+ "time": "80 m",
"autolearn": true,
"book_learn": [ [ "manual_pistol", 5 ], [ "mag_pistol", 6 ] ],
"qualities": [
@@ -172,7 +172,7 @@
"skill_used": "fabrication",
"difficulty": 5,
"skills_required": [ "rifle", 3 ],
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "manual_rifle", 3 ], [ "mag_rifle", 4 ] ],
"qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 } ],
@@ -188,7 +188,7 @@
"skill_used": "fabrication",
"difficulty": 4,
"skills_required": [ "rifle", 1 ],
- "time": 30000,
+ "time": "30 m",
"autolearn": true,
"book_learn": [ [ "manual_rifle", 2 ], [ "mag_rifle", 3 ] ],
"qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ],
@@ -202,7 +202,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 2 ],
"difficulty": 3,
- "time": 60000,
+ "time": "60 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "2x4", 2 ], [ "stick", 2 ] ], [ [ "hose", 4 ] ], [ [ "scrap", 4 ] ] ]
@@ -215,7 +215,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 2 ],
"difficulty": 4,
- "time": 90000,
+ "time": "90 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "2x4", 3 ], [ "stick", 3 ] ], [ [ "hose", 8 ] ], [ [ "scrap", 6 ] ] ]
@@ -228,7 +228,7 @@
"skill_used": "mechanics",
"skills_required": [ "fabrication", 2 ],
"difficulty": 4,
- "time": 45000,
+ "time": "45 m",
"autolearn": true,
"qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "SCREW", "level": 1 } ],
"components": [ [ [ "2x4", 1 ], [ "stick", 1 ] ], [ [ "hose", 2 ] ], [ [ "scrap", 3 ] ] ]
diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json
index 81f5c9555db22..29f3b67e629bb 100644
--- a/data/json/regional_map_settings.json
+++ b/data/json/regional_map_settings.json
@@ -26,6 +26,7 @@
"t_tree_apple": 0.02,
"t_tree_apricot": 0.02,
"t_tree_cherry": 0.02,
+ "t_tree_juniper": 0.02,
"t_tree_peach": 0.02,
"t_tree_pear": 0.02,
"t_tree_plum": 0.02,
@@ -79,6 +80,7 @@
"t_tree_apricot": 0.02,
"t_tree_cherry": 0.02,
"t_tree_peach": 0.02,
+ "t_tree_juniper": 0.02,
"t_tree_pear": 0.02,
"t_tree_plum": 0.02,
"t_tree_elderberry": 0.02,
@@ -153,6 +155,7 @@
"t_tree_apple": 2,
"t_tree_apricot": 2,
"t_tree_cherry": 2,
+ "t_tree_juniper": 2,
"t_tree_peach": 2,
"t_tree_pear": 2,
"t_tree_plum": 2,
@@ -243,6 +246,7 @@
"t_tree_apple": 2,
"t_tree_apricot": 2,
"t_tree_cherry": 2,
+ "t_tree_juniper": 2,
"t_tree_peach": 2,
"t_tree_pear": 2,
"t_tree_plum": 2,
@@ -330,6 +334,7 @@
"t_tree_hickory": 8,
"t_tree_apple": 2,
"t_tree_cherry": 2,
+ "t_tree_juniper": 2,
"t_tree_peach": 2,
"t_tree_pear": 2,
"t_tree_plum": 2,
@@ -418,7 +423,9 @@
"mx_shrubbery": 500,
"mx_clearcut": 125,
"mx_pond": 125,
- "mx_clay_deposit": 125
+ "mx_clay_deposit": 125,
+ "mx_point_dead_vegetation": 500,
+ "mx_point_burned_ground": 500
}
},
"forest_thick": {
@@ -443,7 +450,9 @@
"mx_shrubbery": 500,
"mx_clearcut": 125,
"mx_pond": 125,
- "mx_clay_deposit": 125
+ "mx_clay_deposit": 125,
+ "mx_point_dead_vegetation": 500,
+ "mx_point_burned_ground": 500
}
},
"forest_water": {
@@ -466,7 +475,9 @@
"mx_shrubbery": 500,
"mx_clearcut": 125,
"mx_pond": 125,
- "mx_clay_deposit": 125
+ "mx_clay_deposit": 125,
+ "mx_point_dead_vegetation": 500,
+ "mx_point_burned_ground": 500
}
},
"field": {
@@ -483,7 +494,9 @@
"mx_crater": 10,
"mx_fumarole": 8,
"mx_portal_in": 1,
- "mx_anomaly": 3
+ "mx_anomaly": 3,
+ "mx_point_dead_vegetation": 50,
+ "mx_point_burned_ground": 50
}
},
"road": {
@@ -502,7 +515,8 @@
"mx_crater": 10,
"mx_fumarole": 8,
"mx_portal_in": 2,
- "mx_anomaly": 3
+ "mx_anomaly": 3,
+ "mx_roadworks": 100
}
},
"build": {
@@ -517,7 +531,8 @@
"mx_crater": 60,
"mx_fumarole": 8,
"mx_portal_in": 1,
- "mx_anomaly": 3
+ "mx_anomaly": 3,
+ "mx_point_burned_ground": 5
}
},
"marloss": { "chance": 20, "extras": { "mx_marloss_pilgrimage": 100 } },
@@ -604,7 +619,13 @@
"gym_fitness": 200,
"s_liquor": 500,
"s_gun": 500,
- "s_clothes": 500,
+ "s_clothes": 200,
+ "s_clothes_1": 200,
+ "s_clothes_2": 200,
+ "s_clothes_3": 200,
+ "s_clothes_4": 200,
+ "s_clothes_5": 200,
+ "s_clothes_6": 200,
"s_library": 200,
"s_bookstore": 200,
"s_bookstore_1": 200,
diff --git a/data/json/scenarios/scenarios.json b/data/json/scenarios/scenarios.json
index facbe289d9bd9..559c05a2d4384 100644
--- a/data/json/scenarios/scenarios.json
+++ b/data/json/scenarios/scenarios.json
@@ -243,6 +243,17 @@
"forced_traits": [ "PSYCHOPATH" ],
"flags": [ "CITY_START", "LONE_START" ]
},
+ {
+ "type": "scenario",
+ "ident": "alcatraz",
+ "name": "Challenge-Island Prison Break",
+ "points": -6,
+ "description": "You were delivered to some high-security prison right before the Cataclysm. You almost managed to escape the walls of a prison... Too bad it's located on a remote island, and now you need to find out how to escape it too.",
+ "allowed_locs": [ "alcatraz" ],
+ "start_name": "Island prison",
+ "professions": [ "convict", "death_row_convict" ],
+ "flags": [ "LONE_START", "CHALLENGE", "OUTDOOR" ]
+ },
{
"type": "scenario",
"ident": "mutant",
@@ -474,5 +485,15 @@
"start_name": "Camping",
"allowed_locs": [ "campsite_a", "campsite", "campground_1a", "campground_2b" ],
"professions": [ "camper" ]
+ },
+ {
+ "type": "scenario",
+ "ident": "apartmentroofstart",
+ "name": "Apartment Rooftop",
+ "description": "Seeking safety and rescue amidst the chaos you rushed to the rooftop of an apartment building. The passing helicopters are long gone and the screams echoing in the distance have faded. Now you’re left alone with the undead closing in.",
+ "flags": [ "SUR_START", "CITY_START", "LONE_START" ],
+ "points": 0,
+ "start_name": "Apartment Rooftop",
+ "allowed_locs": [ "apartments_con_tower_114", "apartments_con_tower_014", "apartments_con_tower_104", "apartments_con_tower_004" ]
}
]
diff --git a/data/json/speech.json b/data/json/speech.json
index 5bfc377b49208..fd0f502741080 100644
--- a/data/json/speech.json
+++ b/data/json/speech.json
@@ -1421,6 +1421,126 @@
"sound": "\"Don't worry, it isn't like anything could teleport out of the containment cells.\"",
"volume": 20
},
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"Burning... from the inside...\"",
+ "volume": 10
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"This smell... Don't know...\"",
+ "volume": 10
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "heavy breathing.",
+ "volume": 10
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "a scraping noise.",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"No... Stop the burning!\"",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"Hrgm... Blood... Hungry...\"",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"Hunger... Must eat...\"",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"Run... Chase... Eat...\"",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "hysterical laughing.",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "coughing.",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "growling.",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "wheezing.",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"WHY THE FUCK are you doing this to me?\"",
+ "volume": 20
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"LEAVE! NOW!\"",
+ "volume": 40
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"I TOLD YOU TO GET OUT OF HERE!\"",
+ "volume": 40
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"WHAT THE FUCK DO YOU WANT FROM ME?!\"",
+ "volume": 40
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"STOP!\"",
+ "volume": 40
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "indistinct shouting.",
+ "volume": 40
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "screaming.",
+ "volume": 40
+ },
+ {
+ "type": "speech",
+ "speaker": "mon_mutant_experimental",
+ "sound": "\"MEAT!\"",
+ "volume": 40
+ },
{
"type": "speech",
"speaker": "mon_shoggoth",
diff --git a/data/json/start_locations.json b/data/json/start_locations.json
index d1340f50f97be..74f65fb08657c 100644
--- a/data/json/start_locations.json
+++ b/data/json/start_locations.json
@@ -248,6 +248,12 @@
"name": "Prison",
"target": "prison_1_b_5"
},
+ {
+ "type": "start_location",
+ "ident": "alcatraz",
+ "name": "Island prison",
+ "target": "prison_alcatraz_3"
+ },
{
"type": "start_location",
"ident": "Swamp Shack",
@@ -331,5 +337,29 @@
"ident": "golfcourse_31",
"name": "Golf course clubhouse",
"target": "golfcourse_31"
+ },
+ {
+ "type": "start_location",
+ "ident": "apartments_con_tower_114",
+ "name": "Apartment Rooftop",
+ "target": "apartments_con_tower_114"
+ },
+ {
+ "type": "start_location",
+ "ident": "apartments_con_tower_014",
+ "name": "Apartment Rooftop",
+ "target": "apartments_con_tower_014"
+ },
+ {
+ "type": "start_location",
+ "ident": "apartments_con_tower_104",
+ "name": "Apartment Rooftop",
+ "target": "apartments_con_tower_104"
+ },
+ {
+ "type": "start_location",
+ "ident": "apartments_con_tower_004",
+ "name": "Apartment Rooftop",
+ "target": "apartments_con_tower_004"
}
]
diff --git a/data/json/techniques.json b/data/json/techniques.json
index 5a4435419c769..c075db33c9d47 100644
--- a/data/json/techniques.json
+++ b/data/json/techniques.json
@@ -707,7 +707,7 @@
"name": "puño strike",
"min_melee": 3,
"min_bashing_damage": 2,
- "mult_bonuses": [ [ "damage", "bash", 4.0 ], [ "damage", "cut", 0.0 ], [ "damage", "stab", 0.0 ] ],
+ "mult_bonuses": [ [ "movecost", 0.6 ], [ "damage", "bash", 0.7 ], [ "damage", "cut", 0.0 ], [ "damage", "stab", 0.0 ] ],
"crit_tec": true,
"stun_dur": 1,
"messages": [ "You deliver a puño to %s", " haftstrikes %s" ]
@@ -879,6 +879,45 @@
"messages": [ "You hand-peck %s", " hand-pecks %s" ],
"stun_dur": 3
},
+ {
+ "type": "technique",
+ "id": "tec_snake_rapid",
+ "name": "Snake Snap",
+ "min_unarmed": 2,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 0.5 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.66 ], [ "damage", "stab", 0.66 ] ],
+ "messages": [ "You swiftly jab %s", " swiftly jabs %s" ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_snake_feint",
+ "name": "Snake Slide",
+ "min_unarmed": 3,
+ "unarmed_allowed": true,
+ "defensive": true,
+ "miss_recovery": true,
+ "messages": [ "You make serpentine hand motions at %s", " makes serpentine hand motions at %s" ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_snake_break",
+ "name": "Snake Slither",
+ "min_unarmed": 4,
+ "unarmed_allowed": true,
+ "defensive": true,
+ "grab_break": true,
+ "messages": [ "You slither free", " slithers free" ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_snake_precise",
+ "name": "Snake Strike",
+ "min_unarmed": 4,
+ "unarmed_allowed": true,
+ "crit_tec": true,
+ "messages": [ "You strike out at %s", " strikes out at %s" ],
+ "stun_dur": 2
+ },
{
"type": "technique",
"id": "tec_brawl_feint",
diff --git a/data/json/terrain.json b/data/json/terrain.json
index dd0146a4f353f..92f248d71612d 100644
--- a/data/json/terrain.json
+++ b/data/json/terrain.json
@@ -5,6 +5,7 @@
"subtype": "collection",
"entries": [
{ "item": "rock", "count": [ 0, 2 ] },
+ { "item": "wood_panel", "count": [ 0, 1 ] },
{ "item": "nail", "charges": [ 2, 8 ] },
{ "item": "splinter", "count": [ 1, 5 ] }
]
@@ -747,6 +748,24 @@
"items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ]
}
},
+ {
+ "type": "terrain",
+ "id": "t_floor_noroof",
+ "name": "wooden floor",
+ "description": "Wooden floor created from boards, packed tightly together and nailed down. Common in patios.",
+ "symbol": ".",
+ "color": "brown",
+ "move_cost": 2,
+ "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "FLAT", "ROAD" ],
+ "bash": {
+ "sound": "SMASH!",
+ "ter_set": "t_null",
+ "str_min": 50,
+ "str_max": 400,
+ "str_min_supported": 100,
+ "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ]
+ }
+ },
{
"type": "terrain",
"id": "t_floor_primitive",
@@ -1047,6 +1066,7 @@
"ter_set": "t_null",
"items": [
{ "item": "2x4", "count": [ 0, 5 ] },
+ { "item": "wood_panel", "count": [ 0, 1 ] },
{ "item": "nail", "charges": [ 0, 5 ] },
{ "item": "splinter", "count": [ 5, 10 ] }
]
@@ -1124,6 +1144,7 @@
"ter_set": "t_wall_wood_chipped",
"items": [
{ "item": "2x4", "count": [ 0, 3 ] },
+ { "item": "wood_panel", "count": [ 0, 2 ] },
{ "item": "nail", "charges": [ 1, 5 ] },
{ "item": "splinter", "count": [ 1, 4 ] }
]
@@ -1148,6 +1169,7 @@
"ter_set": "t_wall_wood_broken",
"items": [
{ "item": "2x4", "count": [ 1, 4 ] },
+ { "item": "wood_panel", "count": [ 0, 2 ] },
{ "item": "nail", "charges": [ 1, 3 ] },
{ "item": "splinter", "count": [ 1, 4 ] }
]
@@ -1171,6 +1193,7 @@
"ter_set": "t_null",
"items": [
{ "item": "2x4", "count": [ 2, 5 ] },
+ { "item": "wood_panel", "count": [ 0, 2 ] },
{ "item": "nail", "charges": [ 4, 10 ] },
{ "item": "splinter", "count": [ 1, 5 ] }
]
@@ -1375,7 +1398,7 @@
"sound_fail": "whack!",
"sound_vol": 20,
"sound_fail_vol": 14,
- "ter_set": "t_floor",
+ "ter_set": "t_mdoor_frame",
"items": [
{ "item": "glass_shard", "count": [ 5, 10 ] },
{ "item": "wire", "prob": 20 },
@@ -1427,7 +1450,7 @@
"sound_fail": "whack!",
"sound_vol": 20,
"sound_fail_vol": 14,
- "ter_set": "t_floor",
+ "ter_set": "t_mdoor_frame",
"items": [
{ "item": "glass_shard", "count": [ 5, 10 ] },
{ "item": "wire", "prob": 20 },
@@ -1496,7 +1519,10 @@
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "BLOCK_WIND" ],
"open": "t_door_o",
- "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"bash": {
"str_min": 8,
"str_max": 80,
@@ -1505,7 +1531,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -1520,7 +1551,10 @@
"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 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_lab_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"bash": {
"str_min": 8,
"str_max": 80,
@@ -1529,7 +1563,12 @@
"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 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -1546,7 +1585,7 @@
"open": "t_door_white_o",
"deconstruct": {
"ter_set": "t_door_white_frame",
- "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
},
"bash": {
"str_min": 8,
@@ -1556,7 +1595,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_white_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -1571,7 +1615,10 @@
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ],
"open": "t_door_gray_o",
- "deconstruct": { "ter_set": "t_door_gray_frame", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_gray_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"bash": {
"str_min": 8,
"str_max": 80,
@@ -1580,7 +1627,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_gray_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -1595,7 +1647,10 @@
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ],
"open": "t_door_red_o",
- "deconstruct": { "ter_set": "t_door_red_frame", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_red_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"bash": {
"str_min": 8,
"str_max": 80,
@@ -1604,7 +1659,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_red_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -1621,7 +1681,7 @@
"open": "t_door_green_o",
"deconstruct": {
"ter_set": "t_door_green_frame",
- "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
},
"bash": {
"str_min": 8,
@@ -1631,7 +1691,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_green_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -1646,7 +1711,7 @@
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ],
"deconstruct": {
"ter_set": "t_door_white_frame",
- "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
},
"close": "t_door_white_c",
"bash": {
@@ -1674,7 +1739,10 @@
"move_cost": 2,
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ],
- "deconstruct": { "ter_set": "t_door_gray_frame", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_gray_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"close": "t_door_gray_c",
"bash": {
"str_min": 5,
@@ -1701,7 +1769,10 @@
"move_cost": 2,
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ],
- "deconstruct": { "ter_set": "t_door_red_frame", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_red_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"close": "t_door_red_c",
"bash": {
"str_min": 5,
@@ -1730,7 +1801,7 @@
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ],
"deconstruct": {
"ter_set": "t_door_green_frame",
- "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
},
"close": "t_door_green_c",
"bash": {
@@ -1999,7 +2070,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_carpet_red",
+ "ter_set": "t_door_red_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2022,7 +2093,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_carpet_green",
+ "ter_set": "t_door_green_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2045,7 +2116,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_linoleum_white",
+ "ter_set": "t_door_white_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2068,7 +2139,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_linoleum_gray",
+ "ter_set": "t_door_gray_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2091,7 +2162,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_carpet_red",
+ "ter_set": "t_door_red_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2114,7 +2185,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_carpet_green",
+ "ter_set": "t_door_green_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2137,7 +2208,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_linoleum_white",
+ "ter_set": "t_door_white_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2160,7 +2231,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_linoleum_gray",
+ "ter_set": "t_door_gray_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -2311,7 +2382,10 @@
"move_cost": 2,
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ],
- "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"close": "t_door_c",
"bash": {
"str_min": 5,
@@ -2338,7 +2412,10 @@
"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 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_lab_frame",
+ "items": [ { "item": "2x4", "count": 4 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ },
"close": "t_door_lab_c",
"bash": {
"str_min": 5,
@@ -2367,7 +2444,12 @@
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ],
"deconstruct": {
"ter_set": "t_door_frame",
- "items": [ { "item": "peephole", "count": 1 }, { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 12 ] } ]
+ "items": [
+ { "item": "peephole", "count": 1 },
+ { "item": "2x4", "count": 4 },
+ { "item": "wood_panel", "count": 1 },
+ { "item": "nail", "charges": [ 6, 12 ] }
+ ]
},
"close": "t_door_c_peep",
"bash": {
@@ -2398,7 +2480,10 @@
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR_REINFORCED", "CONNECT_TO_WALL", "BLOCK_WIND" ],
"open": "t_rdoor_o",
- "deconstruct": { "ter_set": "t_door_c", "items": [ { "item": "2x4", "count": 24 }, { "item": "nail", "charges": [ 36, 48 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_c",
+ "items": [ { "item": "2x4", "count": 24 }, { "item": "wood_panel", "count": 2 }, { "item": "nail", "charges": [ 36, 48 ] } ]
+ },
"bash": {
"str_min": 18,
"str_max": 100,
@@ -2458,7 +2543,10 @@
"move_cost": 2,
"roof": "t_flat_roof",
"flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR_REINFORCED", "CONNECT_TO_WALL", "ROAD" ],
- "deconstruct": { "ter_set": "t_door_c", "items": [ { "item": "2x4", "count": 24 }, { "item": "nail", "charges": [ 36, 48 ] } ] },
+ "deconstruct": {
+ "ter_set": "t_door_c",
+ "items": [ { "item": "2x4", "count": 24 }, { "item": "wood_panel", "count": 1 }, { "item": "nail", "charges": [ 36, 48 ] } ]
+ },
"close": "t_rdoor_c",
"bash": {
"str_min": 12,
@@ -2495,7 +2583,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -2528,7 +2621,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -2589,7 +2687,12 @@
"sound": "smash!",
"sound_fail": "whump!",
"ter_set": "t_door_b",
- "items": [ { "item": "2x4", "prob": 25 }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "nail", "charges": [ 0, 2 ] } ]
+ "items": [
+ { "item": "2x4", "prob": 25 },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "splinter", "count": [ 1, 2 ] },
+ { "item": "nail", "charges": [ 0, 2 ] }
+ ]
}
},
{
@@ -2956,7 +3059,7 @@
"connects_to": "CHAINFENCE",
"open": "t_chickenwire_gate_o",
"deconstruct": {
- "ter_set": "t_null",
+ "ter_set": "t_dirt",
"items": [ { "item": "2x4", "count": 5 }, { "item": "wire", "count": 10 }, { "item": "nail", "count": 20 } ]
},
"bash": {
@@ -2983,7 +3086,7 @@
"connects_to": "CHAINFENCE",
"close": "t_chickenwire_gate_c",
"deconstruct": {
- "ter_set": "t_null",
+ "ter_set": "t_dirt",
"items": [ { "item": "2x4", "count": 5 }, { "item": "wire", "count": 10 }, { "item": "nail", "count": 20 } ]
},
"bash": {
@@ -3016,6 +3119,7 @@
"ter_set": "t_door_b",
"items": [
{ "item": "2x4", "count": [ 1, 3 ] },
+ { "item": "wood_panel", "prob": 10 },
{ "item": "nail", "charges": [ 2, 10 ] },
{ "item": "splinter", "count": [ 1, 2 ] }
]
@@ -3089,7 +3193,12 @@
"sound": "crash!",
"sound_fail": "wham!",
"ter_set": "t_rdoor_b",
- "items": [ { "item": "2x4", "count": [ 1, 4 ] }, { "item": "nail", "charges": [ 1, 8 ] }, { "item": "splinter", "count": 1 } ]
+ "items": [
+ { "item": "2x4", "count": [ 1, 4 ] },
+ { "item": "wood_panel", "prob": 10 },
+ { "item": "nail", "charges": [ 1, 8 ] },
+ { "item": "splinter", "count": 1 }
+ ]
}
},
{
@@ -3351,7 +3460,7 @@
"str_max_blocked": 240,
"sound": "metal screeching!",
"sound_fail": "clang!",
- "ter_set": "t_floor",
+ "ter_set": "t_mdoor_frame",
"items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 12 ] } ]
}
},
@@ -3373,7 +3482,7 @@
"str_max_blocked": 240,
"sound": "metal screeching!",
"sound_fail": "clang!",
- "ter_set": "t_floor",
+ "ter_set": "t_mdoor_frame",
"items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 12 ] } ]
}
},
@@ -3396,7 +3505,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_floor",
+ "ter_set": "t_door_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -3442,7 +3551,7 @@
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 10,
- "ter_set": "t_floor",
+ "ter_set": "t_door_frame",
"items": [ { "item": "glass_shard", "count": [ 5, 10 ] } ]
}
},
@@ -4707,6 +4816,53 @@
"items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ]
}
},
+ {
+ "type": "terrain",
+ "id": "t_tree_juniper",
+ "name": "juniper tree",
+ "description": "One of the species of 'Juniperus' that grows in New England, juniper berries grow over two to three years, first flowering. On the second year producing a green berry, the last, they produce their more famed blue varieties. If you examined the foliage more closely, you could probably find some viable clusters. You could also cut it down with the right tools.",
+ "symbol": "7",
+ "looks_like": "t_tree_pine",
+ "color": [ "light_green", "blue_green", "light_green", "brown" ],
+ "//": "Can be picked at any point in the third year assuming the berries have turned blue. But it takes a long time to regrow.",
+ "move_cost": 0,
+ "coverage": 80,
+ "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ],
+ "transforms_into": "t_tree_juniper_harvested",
+ "examine_action": "harvest_ter_nectar",
+ "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "juniper", "base_num": [ 12, 24 ], "scaled_num": [ 0, 0.5 ] } ] } ],
+ "bash": {
+ "str_min": 80,
+ "str_max": 180,
+ "sound": "crunch!",
+ "sound_fail": "whack!",
+ "ter_set": "t_dirt",
+ "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_tree_juniper_harvested",
+ "name": "juniper tree",
+ "description": "One of the species of 'Juniperus' that grows in New England, juniper berries grow over two to three years. In the first year they flower, in the second year they produce a green berry, the last, they produce their more famed blue varieties. Looks like all the ripe bunches of berries have been picked. You could also cut it down with the right tools.",
+ "symbol": "7",
+ "looks_like": "t_tree_pine",
+ "color": [ "light_green", "light_green", "light_green", "brown" ],
+ "//": "Will take three years to regrow, in reality.",
+ "move_cost": 0,
+ "coverage": 80,
+ "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ],
+ "examine_action": "harvested_plant",
+ "transforms_into": "t_tree_juniper",
+ "bash": {
+ "str_min": 80,
+ "str_max": 180,
+ "sound": "crunch!",
+ "sound_fail": "whack!",
+ "ter_set": "t_dirt",
+ "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ]
+ }
+ },
{
"type": "terrain",
"id": "t_tree_peach",
@@ -6131,14 +6287,14 @@
"flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "AUTO_WALL_SYMBOL" ],
"connects_to": "CHAINFENCE",
"examine_action": "chainfence",
- "deconstruct": { "ter_set": "t_null", "items": [ { "item": "wire", "count": 10 }, { "item": "nail", "count": 20 } ] },
+ "deconstruct": { "ter_set": "t_chickenwire_fence_post", "items": [ { "item": "wire", "count": 10 }, { "item": "nail", "count": 20 } ] },
"bash": {
"str_min": 5,
"str_max": 12,
"sound": "metal rattling!",
"sound_fail": "whack!",
"ter_set": "t_fence_post",
- "items": [ { "item": "wire", "count": [ 8, 15 ] } ]
+ "items": [ { "item": "wire", "count": [ 5, 10 ] } ]
}
},
{
@@ -6795,14 +6951,14 @@
"symbol": "#",
"color": "light_cyan",
"move_cost": 4,
- "deconstruct": { "ter_set": "t_grass", "items": [ { "item": "sheet_metal", "count": 1 }, { "item": "pipe", "count": [ 4, 8 ] } ] },
+ "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "sheet_metal", "count": 1 }, { "item": "pipe", "count": [ 4, 8 ] } ] },
"flags": [ "TRANSPARENT", "MOUNTABLE" ],
"bash": {
"str_min": 16,
"str_max": 40,
"sound": "crack!",
"sound_fail": "whump.",
- "ter_set": "t_grass",
+ "ter_set": "t_dirt",
"items": [ { "item": "pipe", "count": [ 2, 6 ] }, { "item": "scrap", "count": [ 1, 3 ] } ]
}
},
@@ -6813,14 +6969,14 @@
"symbol": "#",
"color": "cyan",
"move_cost": 4,
- "deconstruct": { "ter_set": "t_grass", "items": [ { "item": "pipe", "count": [ 6, 12 ] } ] },
+ "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "pipe", "count": [ 6, 12 ] } ] },
"flags": [ "TRANSPARENT", "MOUNTABLE" ],
"bash": {
"str_min": 16,
"str_max": 40,
"sound": "crack!",
"sound_fail": "whump.",
- "ter_set": "t_grass",
+ "ter_set": "t_dirt",
"items": [ { "item": "pipe", "count": [ 4, 8 ] }, { "item": "scrap", "count": [ 1, 4 ] } ]
}
},
@@ -6850,6 +7006,7 @@
"type": "terrain",
"id": "t_gas_pump",
"name": "gasoline pump",
+ "description": "Precious GASOLINE. The former world bowed to their petroleum god as it led them to their ruin. There's plenty left over to fuel your inner road warrior. If this gas dispenser doesn't give up the goods for free, you may have to pay at a nearby terminal.",
"symbol": "&",
"color": "red",
"move_cost": 0,
@@ -6932,6 +7089,7 @@
"type": "terrain",
"id": "t_diesel_pump",
"name": "diesel pump",
+ "description": "This is a diesel fuel pump. This roadside attraction provides all the thick, gloopy liquid POWER you need to move your sensibly oversized APOCOLYPTIC SUPERTRUCK from point A to points beyond. If it doesn't dispense fuel immediately, try banging on it or grunt your way over the nearby payment terminal.",
"symbol": "&",
"color": "green",
"move_cost": 0,
@@ -6974,6 +7132,7 @@
"type": "terrain",
"id": "t_atm",
"name": "ATM",
+ "description": "For your banking convenience, this Automated Teller Machine is fully capable of operating autonomously in the event of complete network failure. You can deposit funds from cash cards and migrate all of your inflation-adjusted earnings to a single card. These things have seen better days. There's been a run on the bank, and this machine has the dents and cracks to prove it.",
"symbol": "&",
"color": "magenta",
"move_cost": 0,
@@ -7016,6 +7175,7 @@
"type": "terrain",
"id": "t_missile",
"name": "missile",
+ "description": "This is a section of an ICBM, an Intercontinental Ballistic Missile. This isn't the kind of rocket that goes to the moon.",
"symbol": "#",
"color": "light_blue",
"move_cost": 0,
@@ -7034,6 +7194,7 @@
"type": "terrain",
"id": "t_missile_exploded",
"name": "blown-out missile",
+ "description": "This is a section of an ICBM, an Intercontiental Ballistic Missile. This isn't the kind of rocket that's going anywhere.",
"symbol": "#",
"color": "light_gray",
"move_cost": 0,
@@ -7055,6 +7216,7 @@
"type": "terrain",
"id": "t_radio_tower",
"name": "radio tower",
+ "description": "This is the structure of a radio transmission tower.",
"symbol": "&",
"color": "light_gray",
"move_cost": 0,
@@ -7076,6 +7238,7 @@
"type": "terrain",
"id": "t_radio_controls",
"name": "radio controls",
+ "description": "This console appears to control a nearby radio transmission tower. It doesn't seem to be fully operational.",
"symbol": "6",
"color": "green",
"move_cost": 0,
@@ -7120,6 +7283,7 @@
"type": "terrain",
"id": "t_console_broken",
"name": "broken console",
+ "description": "This is a standalone computer terminal. It doesn't seem to be working. It's the broken screen and shattered circuit boards that's telling you that.",
"symbol": "6",
"color": "light_gray",
"move_cost": 0,
@@ -7164,6 +7328,7 @@
"type": "terrain",
"id": "t_console",
"name": "computer console",
+ "description": "This is a standalone computer terminal. It can be used to view contents and perform any allowed functions. It might even be possible to hack it, given the skills.",
"symbol": "6",
"color": "blue",
"move_cost": 0,
@@ -7208,6 +7373,7 @@
"type": "terrain",
"id": "t_gates_mech_control",
"name": "mechanical winch",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate or door.",
"symbol": "6",
"color": "cyan_red",
"move_cost": 0,
@@ -7226,6 +7392,7 @@
"type": "terrain",
"id": "t_gates_mech_control_lab",
"name": "mechanical winch",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "cyan_red",
"move_cost": 0,
@@ -7244,6 +7411,7 @@
"type": "terrain",
"id": "t_gates_control_concrete",
"name": "mechanical winch",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "cyan_red",
"move_cost": 0,
@@ -7262,6 +7430,7 @@
"type": "terrain",
"id": "t_gates_control_concrete_lab",
"name": "mechanical winch",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "cyan_red",
"move_cost": 0,
@@ -7280,6 +7449,7 @@
"type": "terrain",
"id": "t_gates_control_brick",
"name": "mechanical winch",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "cyan_red",
"move_cost": 0,
@@ -7298,6 +7468,7 @@
"type": "terrain",
"id": "t_gates_control_brick_lab",
"name": "mechanical winch",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "cyan_red",
"move_cost": 0,
@@ -7316,6 +7487,7 @@
"type": "terrain",
"id": "t_gates_control_metal",
"name": "control lever",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "white",
"move_cost": 0,
@@ -7334,6 +7506,7 @@
"type": "terrain",
"id": "t_gates_control_metal_lab",
"name": "control lever",
+ "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.",
"symbol": "6",
"color": "white",
"move_cost": 0,
@@ -7399,7 +7572,8 @@
{
"type": "terrain",
"id": "t_sewage_pipe",
- "name": "sewage pipe",
+ "name": "high gauge pipe",
+ "description": "This is a section of high gauge pipe.",
"symbol": "1",
"color": "light_gray",
"move_cost": 0,
@@ -7417,7 +7591,8 @@
{
"type": "terrain",
"id": "t_sewage_pump",
- "name": "sewage pump",
+ "name": "high gauge pump",
+ "description": "This unpowered pump previously would have moved fluids around in a hurry.",
"symbol": "&",
"color": "light_gray",
"move_cost": 0,
@@ -7440,6 +7615,7 @@
"type": "terrain",
"id": "t_centrifuge",
"name": "centrifuge",
+ "description": "This is a centrifuge, a liquid separating device with an automated analyzer unit. It could be used to analyze a medical fluid sample, such as blood, if a test tube was placed in it.",
"symbol": "{",
"color": "magenta",
"move_cost": 0,
@@ -7465,6 +7641,7 @@
"type": "terrain",
"id": "t_cvdbody",
"name": "CVD machine",
+ "description": "The bulk of a highly technical-looking apparatus controlled by a nearby console.",
"symbol": "%",
"color": "dark_gray",
"move_cost": 0,
@@ -7487,6 +7664,7 @@
"type": "terrain",
"id": "t_cvdmachine",
"name": "CVD control panel",
+ "description": "This is a VERY expensive-looking apparatus that's labeled 'Chemical Vapor Deposition Machine'. With the input of certain exceptionally rare chemicals and elements, one could conceievably coat one's weapon with diamond. While the process is extremely complicated, a previous user has helpfully sketched: Hydrogen + charcoal = smiley face.",
"symbol": "&",
"color": "cyan",
"move_cost": 0,
@@ -7656,6 +7834,7 @@
"type": "terrain",
"id": "t_manhole",
"name": "manhole",
+ "description": "This is a manhole. The heavy iron cover lies over an entrance to the underworld of hidden tunnels beneath the streets where sewage and rain water frolic freely.",
"symbol": ">",
"color": "dark_gray",
"move_cost": 2,
@@ -7757,6 +7936,7 @@
"type": "terrain",
"id": "t_card_science",
"name": "card reader",
+ "description": "This is a smartcard reader. It sports the stylized symbol of an atom inside a flask that is universally known to indicate SCIENCE. The stark red LED blinks askance at your geek cred. You could swipe a scientific ID badge near it to unlock the gates to discovery.",
"//": "Science",
"symbol": "6",
"color": "pink",
@@ -7776,6 +7956,7 @@
"type": "terrain",
"id": "t_card_military",
"name": "card reader",
+ "description": "This is a smartcard reader. The universal symbol of an eagle driving a tank, biting a grenade pin stands rampant in front of an American flag. A small, red LED remains constant, as if watching you, waiting. You could swipe a military ID card in front of the reader if you dared.",
"//": "Military",
"symbol": "6",
"color": "pink",
@@ -7796,6 +7977,7 @@
"id": "t_card_industrial",
"looks_like": "t_card_science",
"name": "card reader",
+ "description": "This is a smartcard reader. The symbol of a gear in front of a bulging bicep is emblazoned on the matte black surface with an illegible heavy industrial company title. A red LED blinks on the card reader. Perhaps an industrial ID card could still open it.",
"//": "Industrial",
"symbol": "6",
"color": "pink",
@@ -7815,6 +7997,7 @@
"type": "terrain",
"id": "t_card_reader_broken",
"name": "broken card reader",
+ "description": "This is a smartcard reader, but it doesn't seem to be functioning. Probably because there's no more blinking red LED.",
"symbol": "6",
"color": "light_gray",
"move_cost": 0,
@@ -7841,6 +8024,7 @@
"type": "terrain",
"id": "t_slot_machine",
"name": "slot machine",
+ "description": "A machine with a bright screen flashing hypnotic promises of wealth. If gambling with your life on a daily basis isn't enough for you, you can also gamble with this.",
"symbol": "6",
"color": "green",
"move_cost": 0,
@@ -7871,6 +8055,7 @@
"type": "terrain",
"id": "t_elevator_control",
"name": "elevator controls",
+ "description": "This is the control face for an elevator. You could press the appropriate button to take you to your choice of floor.",
"symbol": "6",
"color": "light_blue",
"move_cost": 0,
@@ -7901,6 +8086,7 @@
"type": "terrain",
"id": "t_elevator_control_off",
"name": "powerless controls",
+ "description": "This is the control face for an elevator. It's currently unpowered.",
"symbol": "6",
"color": "light_gray",
"move_cost": 0,
@@ -8591,6 +8777,7 @@
"type": "terrain",
"id": "t_plut_generator",
"name": "plutonium generator",
+ "description": "This imposing apparatus harnesses the power of the atom. Refined nuclear fuel is 'burned' to provide nearly limitless electrical power. It's not doing much good here though. Perhaps it could be salvaged for other purposes.",
"symbol": "0",
"color": "light_green",
"move_cost": 0,
@@ -10372,5 +10559,247 @@
"ter_set": "t_fence_post",
"items": [ { "item": "material_soil", "count": [ 100, 150 ] } ]
}
+ },
+ {
+ "type": "terrain",
+ "id": "t_splitrail_fence",
+ "aliases": [ "t_splitrail_fence_h", "t_splitrail_fence_v" ],
+ "name": "split rail fence",
+ "description": "A rather stout fence made of 2x4s and fence posts, suitable for containing livestock like horses, cows and pigs.",
+ "symbol": "LINE_OXOX",
+ "color": "brown",
+ "looks_like": "t_fence",
+ "move_cost": 0,
+ "examine_action": "chainfence",
+ "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "PERMEABLE", "FLAMMABLE_ASH", "CLIMBABLE", "AUTO_WALL_SYMBOL" ],
+ "connects_to": "WOODFENCE",
+ "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "2x4", "count": 2 }, { "item": "nail", "count": 20 } ] },
+ "bash": {
+ "str_min": 5,
+ "str_max": 12,
+ "sound": "whump!",
+ "sound_fail": "whack!",
+ "ter_set": "t_fence_post",
+ "items": [ { "item": "2x4", "count": [ 1, 2 ] } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_splitrail_fencegate_c",
+ "name": "closed wooden split rail gate",
+ "description": "A commercial quality gate made of wood with a latch system.",
+ "symbol": "+",
+ "color": "brown",
+ "looks_like": "t_fencegate_c",
+ "move_cost": 0,
+ "coverage": 60,
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR" ],
+ "connects_to": "WOODFENCE",
+ "open": "t_splitrail_fencegate_o",
+ "deconstruct": {
+ "ter_set": "t_dirt",
+ "items": [ { "item": "2x4", "count": 5 }, { "item": "pointy_stick", "count": 2 }, { "item": "nail", "charges": 12 } ]
+ },
+ "bash": {
+ "str_min": 4,
+ "str_max": 20,
+ "str_min_blocked": 6,
+ "str_max_blocked": 30,
+ "sound": "crack.",
+ "sound_fail": "wham.",
+ "ter_set": "t_null",
+ "items": [
+ { "item": "2x4", "count": [ 1, 4 ] },
+ { "item": "nail", "charges": [ 2, 8 ] },
+ { "item": "splinter", "count": [ 1, 2 ] }
+ ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_splitrail_fencegate_o",
+ "name": "open wooden split rail gate",
+ "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.",
+ "symbol": ".",
+ "color": "brown",
+ "looks_like": "t_fencegate_o",
+ "move_cost": 1,
+ "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "ROAD" ],
+ "connects_to": "WOODFENCE",
+ "close": "t_splitrail_fencegate_c",
+ "deconstruct": {
+ "ter_set": "t_dirt",
+ "items": [ { "item": "2x4", "count": 5 }, { "item": "pointy_stick", "count": 2 }, { "item": "nail", "charges": 12 } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_privacy_fence",
+ "aliases": [ "t_privacy_fence_h", "t_privacy_fence_v" ],
+ "name": "wooden privacy fence",
+ "description": "A rather stout fence made of 2x4s and fence posts, it is tall and prevents people from seeing into your yard.",
+ "symbol": "LINE_OXOX",
+ "color": "brown",
+ "looks_like": "t_fence",
+ "move_cost": 0,
+ "examine_action": "chainfence",
+ "flags": [ "NOITEM", "CLIMBABLE", "PERMEABLE", "AUTO_WALL_SYMBOL", "FLAMMABLE_ASH", "THIN_OBSTACLE" ],
+ "connects_to": "WOODFENCE",
+ "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "2x4", "count": 10 }, { "item": "nail", "count": 20 } ] },
+ "bash": {
+ "str_min": 5,
+ "str_max": 12,
+ "sound": "whump!",
+ "sound_fail": "whack!",
+ "ter_set": "t_fence_post",
+ "items": [ { "item": "2x4", "count": [ 4, 10 ] } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_privacy_fencegate_c",
+ "name": "closed wooden split rail gate",
+ "description": "A commercial quality gate made of wood with a latch system.",
+ "symbol": "+",
+ "color": "brown",
+ "looks_like": "t_fencegate_c",
+ "move_cost": 0,
+ "coverage": 60,
+ "flags": [ "FLAMMABLE_ASH", "DOOR" ],
+ "connects_to": "WOODFENCE",
+ "open": "t_privacy_fencegate_o",
+ "deconstruct": {
+ "ter_set": "t_dirt",
+ "items": [ { "item": "2x4", "count": 8 }, { "item": "pointy_stick", "count": 2 }, { "item": "nail", "charges": 20 } ]
+ },
+ "bash": {
+ "str_min": 4,
+ "str_max": 20,
+ "str_min_blocked": 6,
+ "str_max_blocked": 30,
+ "sound": "crack.",
+ "sound_fail": "wham.",
+ "ter_set": "t_null",
+ "items": [
+ { "item": "2x4", "count": [ 4, 8 ] },
+ { "item": "nail", "charges": [ 10, 20 ] },
+ { "item": "splinter", "count": [ 4, 6 ] }
+ ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_privacy_fencegate_o",
+ "name": "open wooden split rail gate",
+ "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.",
+ "symbol": ".",
+ "color": "brown",
+ "looks_like": "t_fencegate_o",
+ "move_cost": 1,
+ "flags": [ "FLAMMABLE_ASH", "FLAT", "ROAD" ],
+ "connects_to": "WOODFENCE",
+ "close": "t_privacy_fencegate_c",
+ "deconstruct": {
+ "ter_set": "t_dirt",
+ "items": [ { "item": "2x4", "count": 8 }, { "item": "pointy_stick", "count": 2 }, { "item": "nail", "charges": 20 } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_water_pool_shallow",
+ "name": "shallow pool water",
+ "description": "A shallow pool of water.",
+ "symbol": "~",
+ "color": "light_blue",
+ "move_cost": 5,
+ "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "INDOORS" ],
+ "examine_action": "water_source"
+ },
+ {
+ "type": "terrain",
+ "id": "t_adobe_brick_wall_halfway",
+ "name": "half-built adobe wall",
+ "description": "Half of an adobe brick wall, looks like it still requires some more resources and effort before being considered a real wall.",
+ "symbol": "#",
+ "color": "brown",
+ "looks_like": "t_brick_wall_halfway",
+ "move_cost": 5,
+ "coverage": 60,
+ "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ],
+ "bash": {
+ "str_min": 20,
+ "str_max": 90,
+ "sound": "crash!",
+ "sound_fail": "bash!",
+ "ter_set": "t_null",
+ "items": [ { "item": "material_soil", "count": [ 4, 10 ] }, { "item": "adobe_brick", "count": [ 1, 3 ] } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_adobe_brick_wall",
+ "name": "adobe wall",
+ "description": "A solid adobe brick wall, sturdy enough to support a roof with enough walls and keep out any unwanted visitors.",
+ "symbol": "LINE_OXOX",
+ "color": "brown",
+ "looks_like": "t_brick_wall",
+ "move_cost": 0,
+ "coverage": 100,
+ "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ],
+ "connects_to": "WALL",
+ "bash": {
+ "str_min": 40,
+ "str_max": 120,
+ "sound": "crash!",
+ "sound_fail": "bash!",
+ "ter_set": "t_null",
+ "items": [ { "item": "material_soil", "count": [ 8, 20 ] }, { "item": "adobe_brick", "count": [ 2, 6 ] } ]
+ }
+ },
+ {
+ "id": "t_leanto",
+ "type": "terrain",
+ "name": "pine lean-to",
+ "symbol": ";",
+ "color": [ "brown" ],
+ "move_cost": 2,
+ "bash": {
+ "str_min": 4,
+ "str_max": 60,
+ "ter_set": "t_tree_pine",
+ "sound": "crunch!",
+ "sound_fail": "whack!",
+ "items": [
+ { "item": "stick", "count": [ 2, 7 ] },
+ { "item": "splinter", "count": [ 8, 20 ] },
+ { "item": "pine_bough", "count": [ 0, 2 ] }
+ ]
+ },
+ "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE" ]
+ },
+ {
+ "id": "t_tarptent",
+ "type": "terrain",
+ "name": "tarp lean-to",
+ "symbol": ";",
+ "color": [ "light_blue" ],
+ "move_cost": 2,
+ "bash": {
+ "str_min": 6,
+ "str_max": 12,
+ "ter_set": "t_dirt",
+ "sound": "crash!",
+ "sound_fail": "whack!",
+ "items": [
+ { "item": "stick", "count": [ 1, 2 ] },
+ { "item": "splinter", "count": [ 1, 4 ] },
+ { "item": "plastic_chunk", "count": [ 4, 8 ] }
+ ]
+ },
+ "deconstruct": {
+ "ter_set": "t_dirt",
+ "items": [ { "item": "pointy_stick", "count": 4 }, { "item": "string_6", "count": 4 }, { "item": "tarp", "count": 1 } ]
+ },
+ "flags": [ "TRANSPARENT", "FLAMMABLE", "THIN_OBSTACLE", "INDOORS", "MOUNTABLE", "EASY_DECONSTRUCT" ]
}
]
diff --git a/data/json/traps.json b/data/json/traps.json
index f087fae796168..961a9782da0d8 100644
--- a/data/json/traps.json
+++ b/data/json/traps.json
@@ -518,5 +518,19 @@
"difficulty": 0,
"action": "none",
"benign": true
+ },
+ {
+ "type": "trap",
+ "id": "tr_raincatcher",
+ "name": "raincatcher",
+ "color": "blue",
+ "symbol": "V",
+ "visibility": -1,
+ "avoidance": 0,
+ "difficulty": 99,
+ "action": "none",
+ "drops": [ "tarp_raincatcher" ],
+ "benign": true,
+ "funnel_radius": 342
}
]
diff --git a/data/json/uncraft/ammo/4570.json b/data/json/uncraft/ammo/4570.json
new file mode 100644
index 0000000000000..28f25f887e966
--- /dev/null
+++ b/data/json/uncraft/ammo/4570.json
@@ -0,0 +1,32 @@
+[
+ {
+ "result": "4570_sp",
+ "type": "uncraft",
+ "time": 500,
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+ "components": [
+ [ [ "copper", 2 ] ],
+ [ [ "lead", 5 ] ],
+ [ [ "4570_casing", 1 ] ],
+ [ [ "lgrifle_primer", 1 ] ],
+ [ [ "gunpowder", 15 ] ]
+ ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+ "result": "4570_pen",
+ "type": "uncraft",
+ "time": 500,
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+ "components": [ [ [ "copper", 7 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ },
+ {
+ "result": "4570_low",
+ "type": "uncraft",
+ "time": 500,
+ "qualities": [ { "id": "PULL", "level": 1 } ],
+ "components": [ [ [ "lead", 9 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ] ],
+ "flags": [ "UNCRAFT_SINGLE_CHARGE" ]
+ }
+]
diff --git a/data/json/uncraft/armor/pets_dog.json b/data/json/uncraft/armor/pets_dog.json
new file mode 100644
index 0000000000000..adf50f7d7c791
--- /dev/null
+++ b/data/json/uncraft/armor/pets_dog.json
@@ -0,0 +1,72 @@
+[
+ {
+ "result": "acidchitin_harness_dog",
+ "type": "uncraft",
+ "skill_used": "fabrication",
+ "difficulty": 2,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "acidchitin_piece", 6 ] ] ]
+ },
+ {
+ "result": "chitin_harness_dog",
+ "type": "uncraft",
+ "skill_used": "fabrication",
+ "difficulty": 2,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "chitin_piece", 6 ] ] ]
+ },
+ {
+ "result": "chainmail_harness_dog",
+ "type": "uncraft",
+ "skill_used": "fabrication",
+ "difficulty": 3,
+ "time": 10000,
+ "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ],
+ "components": [ [ [ "link_sheet", 3 ] ], [ [ "leather", 3 ] ], [ [ "chain_link", 70 ] ] ]
+ },
+ {
+ "result": "leather_harness_dog",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "leather", 4 ] ] ]
+ },
+ {
+ "result": "leatherbone_harness_dog",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 3000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "leather", 4 ] ], [ [ "bone", 7 ] ] ]
+ },
+ {
+ "result": "kevlar_harness",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "kevlar_plate", 6 ] ] ]
+ },
+ {
+ "result": "rubber_harness_dog",
+ "type": "uncraft",
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "rag", 5 ] ], [ [ "plastic_chunk", 5 ] ] ]
+ },
+ {
+ "result": "superalloy_harness_dog",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "alloy_sheet", 6 ] ] ]
+ }
+]
diff --git a/data/json/uncraft/armor/storage.json b/data/json/uncraft/armor/storage.json
new file mode 100644
index 0000000000000..4be40b3214d87
--- /dev/null
+++ b/data/json/uncraft/armor/storage.json
@@ -0,0 +1,20 @@
+[
+ {
+ "result": "fireman_belt",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "leather", 5 ] ], [ [ "scrap", 3 ] ] ]
+ },
+ {
+ "result": "police_belt",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 1000,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "leather", 6 ] ], [ [ "scrap", 3 ] ] ]
+ }
+]
diff --git a/data/json/uncraft/cbm/cbm.json b/data/json/uncraft/cbm/cbm.json
index d667a6d8abe42..ef59e8faba96d 100644
--- a/data/json/uncraft/cbm/cbm.json
+++ b/data/json/uncraft/cbm/cbm.json
@@ -7,7 +7,7 @@
"time": 50000,
"using": [ [ "soldering_standard", 20 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "power_supply", 6 ] ], [ [ "amplifier", 4 ] ], [ [ "plut_cell", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ]
+ "components": [ [ [ "power_supply", 6 ] ], [ [ "amplifier", 4 ] ], [ [ "light_battery_cell", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ]
},
{
"type": "uncraft",
@@ -17,7 +17,13 @@
"time": 70000,
"using": [ [ "soldering_standard", 32 ] ],
"qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "power_supply", 10 ] ], [ [ "amplifier", 6 ] ], [ [ "plut_cell", 2 ] ], [ [ "burnt_out_bionic", 1 ] ] ]
+ "components": [
+ [ [ "power_supply", 10 ] ],
+ [ [ "amplifier", 6 ] ],
+ [ [ "light_plus_battery_cell", 1 ] ],
+ [ [ "light_battery_cell", 1 ] ],
+ [ [ "burnt_out_bionic", 1 ] ]
+ ]
},
{
"type": "uncraft",
diff --git a/data/json/uncraft/generic.json b/data/json/uncraft/generic.json
index fc1ca4942aaf6..0021b6667f218 100644
--- a/data/json/uncraft/generic.json
+++ b/data/json/uncraft/generic.json
@@ -26,6 +26,15 @@
"qualities": [ { "id": "SAW_M", "level": 2 } ],
"components": [ [ [ "scrap", 5 ] ] ]
},
+ {
+ "result": "mattress",
+ "type": "uncraft",
+ "skill_used": "tailor",
+ "difficulty": 1,
+ "time": 2200,
+ "qualities": [ { "id": "CUT", "level": 1 } ],
+ "components": [ [ [ "rag", 60 ] ], [ [ "sheet", 4 ] ] ]
+ },
{
"result": "character_sheet",
"type": "uncraft",
diff --git a/data/json/vehicle_groups.json b/data/json/vehicle_groups.json
index 6c21a32188c37..17468b9be317f 100644
--- a/data/json/vehicle_groups.json
+++ b/data/json/vehicle_groups.json
@@ -55,6 +55,11 @@
[ "4x4_car", 500 ]
]
},
+ {
+ "type": "vehicle_group",
+ "id": "boatrent",
+ "vehicles": [ [ "canoe", 2000 ], [ "kayak", 1500 ], [ "kayak_racing", 500 ], [ "DUKW", 250 ], [ "raft", 2000 ] ]
+ },
{
"type": "vehicle_group",
"id": "city_pileup",
@@ -499,5 +504,23 @@
"type": "vehicle_group",
"id": "trains_draisine",
"vehicles": [ [ "motorized_draisine_6seats", 500 ], [ "motorized_draisine_2seats", 2000 ] ]
+ },
+ {
+ "type": "vehicle_group",
+ "id": "oa_vg_ts_vehicles",
+ "vehicles": [
+ [ "car", 2000 ],
+ [ "electric_car", 500 ],
+ [ "suv", 800 ],
+ [ "suv_electric", 200 ],
+ [ "car_mini", 800 ],
+ [ "beetle", 500 ],
+ [ "motorcycle", 200 ],
+ [ "motorcycle_sidecart", 100 ],
+ [ "scooter", 200 ],
+ [ "scooter_electric", 300 ],
+ [ "pickup", 800 ],
+ [ "hippie_van", 1000 ]
+ ]
}
]
diff --git a/data/json/vehicle_parts.json b/data/json/vehicle_parts.json
index 5004771eb34e6..97ed316e10c85 100644
--- a/data/json/vehicle_parts.json
+++ b/data/json/vehicle_parts.json
@@ -796,7 +796,7 @@
"item": "frame",
"difficulty": 1,
"location": "center",
- "flags": [ "CARGO", "LOCKABLE_CARGO", "COVERED" ],
+ "flags": [ "CARGO", "LOCKABLE_CARGO", "COVERED", "BOARDABLE" ],
"breaks_into": "ig_vp_frame"
},
{
@@ -1024,6 +1024,168 @@
],
"workbench": { "multiplier": 1.2, "mass": 300000, "volume": "30L" }
},
+ {
+ "type": "vehicle_part",
+ "id": "boat_board",
+ "name": "wooden boat hull",
+ "description": "A wooden board that keeps the water out of your boat.",
+ "symbol": "o",
+ "color": "brown",
+ "broken_symbol": "x",
+ "broken_color": "light_gray",
+ "damage_modifier": 50,
+ "durability": 40,
+ "item": "boat_board",
+ "difficulty": 2,
+ "location": "under",
+ "flags": [ "FLOATS", "NAILABLE" ],
+ "breaks_into": [ { "item": "splinter", "count": [ 10, 20 ] } ]
+ },
+ {
+ "type": "vehicle_part",
+ "id": "plastic_boat_hull",
+ "name": "plastic boat hull",
+ "description": "A rigid plastic sheet that keeps water out of your boat.",
+ "symbol": "o",
+ "color": "brown",
+ "looks_like": "boat_board",
+ "broken_symbol": "x",
+ "broken_color": "light_gray",
+ "damage_modifier": 50,
+ "durability": 120,
+ "item": "plastic_boat_hull",
+ "difficulty": 3,
+ "location": "under",
+ "flags": [ "FLOATS" ],
+ "breaks_into": [ { "item": "plastic_chunk", "count": [ 4, 8 ] } ]
+ },
+ {
+ "type": "vehicle_part",
+ "id": "metal_boat_hull",
+ "name": "metal boat hull",
+ "description": "A metal sheet that keeps the water out of your boat.",
+ "symbol": "o",
+ "color": "dark_gray",
+ "looks_like": "boat_board",
+ "broken_symbol": "x",
+ "broken_color": "light_gray",
+ "damage_modifier": 50,
+ "durability": 240,
+ "item": "sheet_metal",
+ "difficulty": 4,
+ "location": "under",
+ "flags": [ "FLOATS" ],
+ "breaks_into": "ig_vp_sheet_metal"
+ },
+ {
+ "type": "vehicle_part",
+ "id": "carbonfiber_boat_hull",
+ "name": "carbon fiber boat hull",
+ "description": "A light weight, advanced carbon fiber rigid sheet that keeps the water out of your boat.",
+ "symbol": "o",
+ "color": "brown",
+ "looks_like": "boat_board",
+ "broken_symbol": "x",
+ "broken_color": "light_gray",
+ "damage_modifier": 50,
+ "durability": 480,
+ "item": "carbonfiber_boat_hull",
+ "difficulty": 6,
+ "location": "under",
+ "flags": [ "FLOATS", "BOARDABLE" ],
+ "breaks_into": [ { "item": "kevlar_plate", "count": [ 1, 3 ] } ]
+ },
+ {
+ "type": "vehicle_part",
+ "id": "inflatable_section",
+ "name": "inflatable section",
+ "symbol": "O",
+ "color": "green",
+ "size": 60,
+ "broken_symbol": "#",
+ "broken_color": "light_gray",
+ "durability": 50,
+ "item": "inflatable_section",
+ "difficulty": 3,
+ "location": "structure",
+ "folded_volume": 3,
+ "flags": [ "MOUNTABLE", "FOLDABLE", "BOARDABLE", "CARGO" ],
+ "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ]
+ },
+ {
+ "type": "vehicle_part",
+ "id": "inflatable_airbag",
+ "name": "inflatable airbag",
+ "symbol": "O",
+ "color": "green",
+ "broken_symbol": "x",
+ "broken_color": "light_gray",
+ "damage_modifier": 50,
+ "durability": 40,
+ "item": "inflatable_airbag",
+ "difficulty": 2,
+ "location": "under",
+ "folded_volume": 3,
+ "flags": [ "FLOATS", "VARIABLE_SIZE", "FOLDABLE" ],
+ "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ]
+ },
+ {
+ "type": "vehicle_part",
+ "id": "sail",
+ "name": "sail",
+ "symbol": "M",
+ "color": "light_gray",
+ "broken_symbol": "#",
+ "broken_color": "red",
+ "damage_modifier": 50,
+ "durability": 20,
+ "power": 800,
+ "fuel_type": "wind",
+ "noise_factor": 1,
+ "m2c": 90,
+ "exclusions": [ "manual" ],
+ "item": "sail",
+ "difficulty": 2,
+ "location": "engine_block",
+ "folded_volume": 2,
+ "flags": [
+ "ENGINE",
+ "CONTROLS",
+ "FOLDABLE",
+ "TOOL_NONE",
+ "PROTRUSION",
+ "E_STARTS_INSTANTLY",
+ "WIND_POWERED",
+ "OVER",
+ "REVERSIBLE",
+ "STABLE",
+ "UNMOUNT_ON_DAMAGE"
+ ],
+ "breaks_into": [ { "item": "splinter", "count": [ 10, 20 ] }, { "item": "rag", "count": [ 5, 10 ] } ]
+ },
+ {
+ "type": "vehicle_part",
+ "id": "hand_paddles",
+ "name": "hand paddles",
+ "symbol": "*",
+ "color": "light_gray",
+ "broken_symbol": "#",
+ "broken_color": "red",
+ "damage_modifier": 50,
+ "durability": 50,
+ "power": 800,
+ "fuel_type": "muscle",
+ "muscle_power_factor": 40,
+ "noise_factor": 8,
+ "m2c": 45,
+ "exclusions": [ "manual" ],
+ "item": "hand_paddles",
+ "difficulty": 1,
+ "location": "engine_block",
+ "folded_volume": 2,
+ "flags": [ "ENGINE", "CONTROLS", "FOLDABLE", "MUSCLE_ARMS", "TOOL_NONE", "E_STARTS_INSTANTLY" ],
+ "breaks_into": [ { "item": "splinter", "count": [ 2, 4 ] } ]
+ },
{
"type": "vehicle_part",
"id": "controls",
@@ -1098,6 +1260,31 @@
},
"breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ]
},
+ {
+ "id": "mountable_cooler",
+ "type": "vehicle_part",
+ "name": "vehicle-mounted cooler",
+ "item": "mountable_cooler",
+ "location": "on_roof",
+ "symbol": "C",
+ "broken_symbol": ":",
+ "color": "light_cyan",
+ "difficulty": 1,
+ "durability": 400,
+ "epower": -120,
+ "bonus": 10,
+ "flags": [ "CTRL_ELECTRONIC", "ENABLED_DRAINS_EPOWER", "COOLER" ],
+ "requirements": {
+ "install": {
+ "time": 12000,
+ "skills": [ [ "mechanics", 1 ], [ "electronics", 1 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ]
+ },
+ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 3000, "using": [ [ "adhesive", 1 ] ] },
+ "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] }
+ },
+ "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ]
+ },
{
"type": "vehicle_part",
"id": "controls_electronic",
diff --git a/data/json/vehicleparts/tanks.json b/data/json/vehicleparts/tanks.json
index 6ba9f9e0c4144..81f1e7aff9b8a 100644
--- a/data/json/vehicleparts/tanks.json
+++ b/data/json/vehicleparts/tanks.json
@@ -98,14 +98,14 @@
{
"id": "tank_barrel",
"type": "vehicle_part",
- "name": "barrel (100L)",
+ "name": "wooden barrel (100L)",
"item": "wooden_barrel",
- "location": "fuel_source",
+ "location": "center",
"symbol": "O",
"color": "brown",
"broken_color": "brown",
"durability": 120,
- "description": "A storage space for holding liquids. If filled with the appropriate fuel for the vehicle's engine, the engine will automatically draw fuel from the tank when the engine is on. If filled with water, you can access the water from a water faucet, if one is installed in the vehicle. You can also use a rubber hose to siphon liquids out of a tank.",
+ "description": "A storage space for holding liquids, mounted inside the cargo or passenger space. If filled with the appropriate fuel for the vehicle's engine, the engine will automatically draw fuel from the tank when the engine is on. If filled with water, you can access the water from a water faucet, if one is installed in the vehicle. You can also use a rubber hose to siphon liquids out of a tank.",
"size": 400,
"damage_modifier": 80,
"breaks_into": [
@@ -115,6 +115,40 @@
],
"flags": [ "NAILABLE", "FLUIDTANK" ]
},
+ {
+ "id": "tank_30gal_drum",
+ "type": "vehicle_part",
+ "name": "steel drum (100L)",
+ "item": "30gal_drum",
+ "location": "center",
+ "symbol": "0",
+ "color": "dark_gray",
+ "broken_color": "red",
+ "durability": 160,
+ "difficulty": 1,
+ "description": "A storage space for holding liquids, mounted inside the cargo or passenger space. If filled with the appropriate fuel for the vehicle's engine, the engine will automatically draw fuel from the tank when the engine is on. If filled with water, you can access the water from a water faucet, if one is installed in the vehicle. You can also use a rubber hose to siphon liquids out of a tank.",
+ "size": 100000,
+ "breaks_into": [
+ { "item": "steel_lump", "count": [ 2, 2 ] },
+ { "item": "steel_chunk", "count": [ 1, 2 ] },
+ { "item": "scrap", "count": [ 1, 5 ] }
+ ],
+ "flags": [ "FLUIDTANK" ]
+ },
+ {
+ "id": "tank_55gal_drum",
+ "copy-from": "tank_30gal_drum",
+ "type": "vehicle_part",
+ "name": "steel drum (200L)",
+ "item": "55gal_drum",
+ "size": 200000,
+ "breaks_into": [
+ { "item": "steel_lump", "count": [ 4, 4 ] },
+ { "item": "steel_chunk", "count": [ 2, 4 ] },
+ { "item": "scrap", "count": [ 2, 10 ] }
+ ],
+ "flags": [ "FLUIDTANK", "OPAQUE", "OBSTACLE" ]
+ },
{
"id": "fuel_bunker",
"type": "vehicle_part",
diff --git a/data/mods/Boats/vehicles_boats.json b/data/json/vehicles/boats.json
similarity index 100%
rename from data/mods/Boats/vehicles_boats.json
rename to data/json/vehicles/boats.json
diff --git a/data/json/vehicles/carts.json b/data/json/vehicles/carts.json
index 64334ef119ef8..2978f4d93bfa3 100644
--- a/data/json/vehicles/carts.json
+++ b/data/json/vehicles/carts.json
@@ -2,7 +2,7 @@
{
"id": "engine_crane",
"type": "vehicle",
- "name": "engine crane",
+ "name": "Engine Crane",
"blueprint": [ "#" ],
"parts": [
{ "x": 0, "y": 0, "part": "folding_frame" },
diff --git a/data/mods/Aftershock/items/afs__items.json b/data/mods/Aftershock/items/afs__items.json
index b8c74b931c0db..a12db0ded2ae3 100644
--- a/data/mods/Aftershock/items/afs__items.json
+++ b/data/mods/Aftershock/items/afs__items.json
@@ -142,5 +142,35 @@
"ammo_type": "battery",
"capacity": 100000,
"flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE" ]
+ },
+ {
+ "id": "nuclear_waste",
+ "type": "GENERIC",
+ "name": "nuclear waste",
+ "description": "A small pellet of silvery metal, still warm to the touch.",
+ "weight": 30,
+ "volume": 1,
+ "price": 0,
+ "material": "iron",
+ "symbol": "*",
+ "color": "light_green",
+ "flags": [ "RADIOACTIVE", "LEAK_ALWAYS" ]
+ },
+ {
+ "id": "nuclear_fuel",
+ "copy-from": "nuclear_waste",
+ "type": "GENERIC",
+ "name": "nuclear fuel pellet",
+ "description": "A small pellet of fissile material. Handle carefully."
+ },
+ {
+ "id": "hazardous_waste_drum",
+ "copy-from": "55gal_drum",
+ "type": "CONTAINER",
+ "name": "hazardous waste drum",
+ "description": "A yellow drum meant for the storage of hazardous substances.",
+ "material": [ "steel", "lead" ],
+ "symbol": "0",
+ "color": "yellow"
}
]
diff --git a/data/mods/Aftershock/items/afs_armor.json b/data/mods/Aftershock/items/afs_armor.json
index 4f68c02091b4a..445efe53015f3 100644
--- a/data/mods/Aftershock/items/afs_armor.json
+++ b/data/mods/Aftershock/items/afs_armor.json
@@ -133,10 +133,13 @@
"light_minus_battery_cell",
"light_plus_battery_cell",
"light_minus_atomic_battery_cell",
- "light_atomic_battery_cell"
+ "light_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "afs_hev_helmet_on",
diff --git a/data/mods/Aftershock/items/afs_books.json b/data/mods/Aftershock/items/afs_books.json
index 77addbec36013..b48d7f2db5bc2 100644
--- a/data/mods/Aftershock/items/afs_books.json
+++ b/data/mods/Aftershock/items/afs_books.json
@@ -98,5 +98,25 @@
"max_level": 6,
"intelligence": 5,
"time": 18
+ },
+ {
+ "id": "textbook_atomic",
+ "type": "BOOK",
+ "name": "Nuclear Physics Made Easy",
+ "name_plural": "Nuclear Physics Made Easy",
+ "description": "A book detailing the workings of state of the art atomic technology, and the physics behind it",
+ "weight": 2063,
+ "volume": 8,
+ "price": 9200,
+ "bashing": 8,
+ "material": [ "paper" ],
+ "symbol": "?",
+ "color": "light_green",
+ "skill": "electronics",
+ "required_level": 5,
+ "max_level": 7,
+ "intelligence": 13,
+ "time": 50,
+ "fun": -1
}
]
diff --git a/data/mods/Aftershock/items/afs_weapons.json b/data/mods/Aftershock/items/afs_weapons.json
index cbbb55050803f..6e95fd69a9d22 100644
--- a/data/mods/Aftershock/items/afs_weapons.json
+++ b/data/mods/Aftershock/items/afs_weapons.json
@@ -31,10 +31,13 @@
"light_minus_battery_cell",
"light_plus_battery_cell",
"light_minus_atomic_battery_cell",
- "light_atomic_battery_cell"
+ "light_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"id": "afs_energy_saber_on",
@@ -61,18 +64,7 @@
"target": "afs_energy_saber_off",
"msg": "The blade dissipates into particles."
},
- "magazines": [
- [
- "battery",
- [
- "light_battery_cell",
- "light_minus_battery_cell",
- "light_plus_battery_cell",
- "light_minus_atomic_battery_cell",
- "light_atomic_battery_cell"
- ]
- ]
- ]
+ "magazine_well": 1
},
{
"id": "afs_hardlight_longbow",
@@ -162,5 +154,31 @@
"clip_size": 1,
"reload": 150,
"flags": [ "NEVER_JAMS", "NO_UNWIELD", "TRADER_AVOID" ]
+ },
+ {
+ "id": "laser_rifle_cheap",
+ "type": "GUN",
+ "name": "shoddy laser rifle",
+ "description": "This is a cheap laser rifle made from common components. Weak, but can be powered with rechargeable batteries.",
+ "weight": 8000,
+ "volume": 10,
+ "price": 40000,
+ "to_hit": -1,
+ "bashing": 8,
+ "material": [ "plastic", "copper" ],
+ "symbol": "(",
+ "color": "magenta",
+ "ammo": "battery",
+ "skill": "rifle",
+ "range": 10,
+ "ranged_damage": 20,
+ "dispersion": 150,
+ "durability": 10,
+ "loudness": 8,
+ "reload": 500,
+ "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ],
+ "ammo_effects": [ "LASER", "DRAW_AS_LINE" ],
+ "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ],
+ "flags": [ "NEVER_JAMS", "FIRE_20" ]
}
]
diff --git a/data/mods/Aftershock/maps/afs_item_groups.json b/data/mods/Aftershock/maps/afs_item_groups.json
index 854146dae086b..bf75ce000d02c 100644
--- a/data/mods/Aftershock/maps/afs_item_groups.json
+++ b/data/mods/Aftershock/maps/afs_item_groups.json
@@ -237,7 +237,42 @@
[ "afs_textbook_shotguns", 3 ],
[ "afs_textbook_handguns", 3 ],
[ "afs_textbook_rifles", 3 ],
- [ "afs_textbook_launchers", 3 ]
+ [ "afs_textbook_launchers", 3 ],
+ [ "textbook_atomic", 8 ]
+ ]
+ },
+ {
+ "id": "guns_pistol_improvised",
+ "type": "item_group",
+ "items": [ [ "v29_cheap", 10 ] ]
+ },
+ {
+ "id": "nuclear_waste",
+ "type": "item_group",
+ "subtype": "collection",
+ "entries": [ { "item": "nuclear_waste", "container-item": "hazardous_waste_drum", "charges": 10 } ]
+ },
+ {
+ "id": "nuclear_reactor",
+ "type": "item_group",
+ "subtype": "collection",
+ "entries": [
+ { "item": "nuclear_waste", "count-min": 5, "count-max": 10 },
+ { "item": "nuclear_fuel", "count-min": 1, "count-max": 10 }
+ ]
+ },
+ {
+ "id": "reactor_gear",
+ "type": "item_group",
+ "subtype": "collection",
+ "entries": [
+ { "item": "hazmat_suit", "prob": 33 },
+ { "item": "prussian_blue", "prob": 33 },
+ { "item": "rad_monitor", "prob": 33 },
+ { "item": "iodine", "prob": 33 },
+ { "item": "flashlight", "prob": 33 },
+ { "item": "1st_aid", "prob": 15 },
+ { "item": "geiger_off", "prob": 15 }
]
}
]
diff --git a/data/mods/BrightNights/overmap_specials.json b/data/mods/Aftershock/maps/afs_overmap_specials.json
similarity index 100%
rename from data/mods/BrightNights/overmap_specials.json
rename to data/mods/Aftershock/maps/afs_overmap_specials.json
diff --git a/data/mods/BrightNights/overmap_terrain.json b/data/mods/Aftershock/maps/afs_overmap_terrain.json
similarity index 100%
rename from data/mods/BrightNights/overmap_terrain.json
rename to data/mods/Aftershock/maps/afs_overmap_terrain.json
diff --git a/data/mods/BrightNights/regional_map_settings.json b/data/mods/Aftershock/maps/afs_regional_map_settings.json
similarity index 100%
rename from data/mods/BrightNights/regional_map_settings.json
rename to data/mods/Aftershock/maps/afs_regional_map_settings.json
diff --git a/data/mods/BrightNights/terrain.json b/data/mods/Aftershock/maps/afs_terrain.json
similarity index 100%
rename from data/mods/BrightNights/terrain.json
rename to data/mods/Aftershock/maps/afs_terrain.json
diff --git a/data/mods/BrightNights/mapgen/map_palletes.json b/data/mods/Aftershock/maps/mapgen/map_palletes.json
similarity index 100%
rename from data/mods/BrightNights/mapgen/map_palletes.json
rename to data/mods/Aftershock/maps/mapgen/map_palletes.json
diff --git a/data/mods/BrightNights/mapgen/municipal_microreactor.json b/data/mods/Aftershock/maps/mapgen/municipal_microreactor.json
similarity index 100%
rename from data/mods/BrightNights/mapgen/municipal_microreactor.json
rename to data/mods/Aftershock/maps/mapgen/municipal_microreactor.json
diff --git a/data/mods/BrightNights/mapgen/s_gas.json b/data/mods/Aftershock/maps/mapgen/s_gas.json
similarity index 100%
rename from data/mods/BrightNights/mapgen/s_gas.json
rename to data/mods/Aftershock/maps/mapgen/s_gas.json
diff --git a/data/mods/Aftershock/modinfo.json b/data/mods/Aftershock/modinfo.json
index 42ae44e3afc8b..e2ffc58084d9b 100644
--- a/data/mods/Aftershock/modinfo.json
+++ b/data/mods/Aftershock/modinfo.json
@@ -3,9 +3,9 @@
"type": "MOD_INFO",
"ident": "aftershock",
"name": "Aftershock",
- "authors": [ "Esther" ],
+ "authors": [ "Esther", "Coolthulu" ],
"maintainers": [ "Esther" ],
- "description": "Drifts the game away from realism and more towards sci-fi. NOTE: Incompatible with Bright Nights.",
+ "description": "Drifts the game away from realism and more towards sci-fi.",
"category": "content",
"dependencies": [ "dda" ]
},
diff --git a/data/mods/Aftershock/recipes/afs__recipes.json b/data/mods/Aftershock/recipes/afs__recipes.json
index 2ff08560103a8..5d0e937af997c 100644
--- a/data/mods/Aftershock/recipes/afs__recipes.json
+++ b/data/mods/Aftershock/recipes/afs__recipes.json
@@ -407,6 +407,28 @@
"qualities": [ { "id": "CHEM", "level": 3 } ],
"components": [ [ [ "iv_purifier", 3 ] ], [ [ "royal_jelly", 1 ] ], [ [ "slime_scrap", 1 ] ], [ [ "syringe", 1 ] ] ]
},
+ {
+ "result": "laser_rifle_cheap",
+ "type": "recipe",
+ "category": "CC_WEAPON",
+ "subcategory": "CSC_WEAPON_RANGED",
+ "skill_used": "electronics",
+ "difficulty": 5,
+ "time": 300000,
+ "reversible": true,
+ "autolearn": [ [ "electronics", 4 ] ],
+ "book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 3 ] ],
+ "qualities": [ { "id": "SCREW_FINE", "level": 1 } ],
+ "tools": [ [ [ "soldering_iron", 200 ], [ "toolset", 200 ] ] ],
+ "components": [
+ [ [ "amplifier", 2 ] ],
+ [ [ "power_supply", 1 ] ],
+ [ [ "cable", 100 ] ],
+ [ [ "e_scrap", 10 ] ],
+ [ [ "lens", 2 ] ],
+ [ [ "plastic_chunk", 6 ] ]
+ ]
+ },
{
"result": "afs_hauling_space",
"type": "recipe",
@@ -419,5 +441,26 @@
"using": [ [ "welding_standard", 10 ] ],
"qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "WRENCH", "level": 2 }, { "id": "SAW_M", "level": 2 } ],
"components": [ [ [ "hdframe", 3 ] ], [ [ "sheet_metal", 4 ] ] ]
+ },
+ {
+ "result": "plut_cell",
+ "type": "recipe",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_COMPONENTS",
+ "skill_used": "electronics",
+ "difficulty": 5,
+ "time": 5000,
+ "autolearn": [ [ "electronics", 7 ] ],
+ "book_learn": [ [ "textbook_atomic", 5 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
+ "tools": [ [ [ "soldering_iron", 50 ] ] ],
+ "components": [
+ [ [ "nuclear_fuel", 2 ] ],
+ [ [ "e_scrap", 5 ] ],
+ [ [ "lead", 25 ] ],
+ [ [ "plastic_chunk", 5 ] ],
+ [ [ "scrap", 5 ] ],
+ [ [ "can_drink_unsealed", 5 ], [ "can_food_unsealed", 5 ], [ "canister_empty", 5 ] ]
+ ]
}
]
diff --git a/data/mods/Aftershock/recipes/afs_recipe_overrides.json b/data/mods/Aftershock/recipes/afs_recipe_overrides.json
index a0268c0fbd1fc..3d012030f9241 100644
--- a/data/mods/Aftershock/recipes/afs_recipe_overrides.json
+++ b/data/mods/Aftershock/recipes/afs_recipe_overrides.json
@@ -197,5 +197,19 @@
"qualities": [ { "id": "COOK", "level": 3 } ],
"tools": [ [ [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "sweetbread", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "vinegar", 1 ] ], [ [ "salt", 2 ] ] ]
+ },
+ {
+ "result": "recharge_station",
+ "type": "recipe",
+ "category": "CC_ELECTRONIC",
+ "subcategory": "CSC_ELECTRONIC_PARTS",
+ "skill_used": "electronics",
+ "difficulty": 3,
+ "time": 50000,
+ "reversible": true,
+ "autolearn": [ [ "electronics", 2 ] ],
+ "using": [ [ "soldering_standard", 35 ] ],
+ "qualities": [ { "id": "SCREW", "level": 1 } ],
+ "components": [ [ [ "power_supply", 2 ] ], [ [ "processor", 2 ] ], [ [ "scrap", 5 ] ], [ [ "cable", 8 ] ] ]
}
]
diff --git a/data/mods/Aftershock/vehicles/afs_vehicle_groups.json b/data/mods/Aftershock/vehicles/afs_vehicle_groups.json
index d59c46166a9ac..4531434c0bd39 100644
--- a/data/mods/Aftershock/vehicles/afs_vehicle_groups.json
+++ b/data/mods/Aftershock/vehicles/afs_vehicle_groups.json
@@ -7,12 +7,21 @@
{
"id": "suburban_home",
"type": "vehicle_group",
- "vehicles": [ [ "afs_sports_bike", 150 ] ]
+ "vehicles": [ [ "afs_sports_bike", 150 ], [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ] ]
},
{
"id": "parkinglot",
"type": "vehicle_group",
- "vehicles": [ [ "afs_sports_bike", 300 ], [ "afs_electric_semi", 300 ], [ "afs_gas_tanker", 300 ], [ "afs_water_tanker", 250 ] ]
+ "vehicles": [
+ [ "afs_sports_bike", 300 ],
+ [ "afs_electric_semi", 300 ],
+ [ "afs_gas_tanker", 300 ],
+ [ "afs_water_tanker", 250 ],
+ [ "car_atomic", 1000 ],
+ [ "car_sports_atomic", 100 ],
+ [ "suv_atomic", 1000 ],
+ [ "compact_atomic", 300 ]
+ ]
},
{
"id": "highway",
@@ -28,5 +37,20 @@
"id": "afs_lab_utility",
"type": "vehicle_group",
"vehicles": [ [ "welding_cart", 5 ], [ "engine_crane", 3 ], [ "portable_generator", 8 ] ]
+ },
+ {
+ "id": "city_vehicles",
+ "type": "vehicle_group",
+ "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 500 ] ]
+ },
+ {
+ "id": "city_pileup",
+ "type": "vehicle_group",
+ "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ] ]
+ },
+ {
+ "id": "highway",
+ "type": "vehicle_group",
+ "vehicles": [ [ "car_atomic", 1500 ], [ "suv_atomic", 1500 ], [ "compact_atomic", 300 ] ]
}
]
diff --git a/data/mods/Aftershock/vehicles/afs_vehicles.json b/data/mods/Aftershock/vehicles/afs_vehicles.json
index d7f8fd698d1f4..b37288eb92829 100644
--- a/data/mods/Aftershock/vehicles/afs_vehicles.json
+++ b/data/mods/Aftershock/vehicles/afs_vehicles.json
@@ -173,5 +173,326 @@
{ "x": -4, "y": 0, "chance": 12, "item_groups": [ "car_kit" ] },
{ "x": -4, "y": 3, "chance": 10, "item_groups": [ "car_kit" ] }
]
+ },
+ {
+ "id": "compact_atomic",
+ "type": "vehicle",
+ "name": "Atomic Compact",
+ "blueprint": [
+ [ "o-+-" ],
+ [ "=##o" ],
+ [ "o>+-" ]
+ ],
+ "parts": [
+ { "x": 0, "y": 0, "part": "xlframe_vertical_2" },
+ { "x": 0, "y": 0, "part": "seat" },
+ { "x": 0, "y": 0, "part": "seatbelt" },
+ { "x": 0, "y": 0, "part": "roof" },
+ { "x": 0, "y": 0, "part": "controls" },
+ { "x": 0, "y": 0, "part": "dashboard" },
+ { "x": 0, "y": 0, "part": "vehicle_alarm" },
+ { "x": 0, "y": 0, "part": "vehicle_clock" },
+ { "x": 0, "y": 0, "part": "stereo" },
+ { "x": 0, "y": 0, "part": "horn_car" },
+ { "x": 0, "y": 1, "part": "xlframe_vertical_2" },
+ { "x": 0, "y": 1, "part": "door" },
+ { "x": 0, "y": -1, "part": "xlframe_vertical" },
+ { "x": 0, "y": -1, "part": "door" },
+ { "x": 1, "y": 0, "part": "xlframe_horizontal" },
+ { "x": 1, "y": 0, "part": "windshield" },
+ { "x": 1, "y": 0, "part": "headlight" },
+ { "x": 1, "y": 0, "part": "wheel_steerable" },
+ { "x": 1, "y": 1, "part": "xlframe_horizontal" },
+ { "x": 1, "y": 1, "part": "xlhalfboard_vertical" },
+ { "x": 1, "y": -1, "part": "xlframe_vertical" },
+ { "x": 1, "y": -1, "part": "xlhalfboard_vertical" },
+ { "x": -1, "y": 0, "part": "xlframe_ne" },
+ { "x": -1, "y": 0, "part": "seat" },
+ { "x": -1, "y": 0, "part": "seatbelt" },
+ { "x": -1, "y": 0, "part": "roof" },
+ { "x": -1, "y": 0, "part": "small_storage_battery" },
+ { "x": -1, "y": -1, "part": "xlframe_horizontal" },
+ { "x": -1, "y": -1, "part": "xlhalfboard_vertical" },
+ { "x": -1, "y": 1, "part": "hdframe_nw" },
+ { "x": -1, "y": 1, "part": "minireactor" },
+ { "x": -1, "y": 1, "part": "engine_electric" },
+ { "x": -1, "y": 1, "part": "halfboard_cover" },
+ { "x": -1, "y": 1, "part": "plating_steel" },
+ { "x": -2, "y": -1, "part": "xlframe_horizontal" },
+ { "x": -2, "y": -1, "part": "xlhalfboard_sw" },
+ { "x": -2, "y": -1, "part": "wheel" },
+ { "x": -2, "y": 0, "part": "xlframe_horizontal" },
+ { "x": -2, "y": 0, "part": "windshield" },
+ { "x": -2, "y": 1, "part": "xlframe_horizontal" },
+ { "x": -2, "y": 1, "part": "engine_electric" },
+ { "x": -2, "y": 1, "part": "halfboard_vertical_2" },
+ { "x": -2, "y": 1, "part": "wheel" },
+ { "x": -2, "y": 1, "part": "plating_steel" }
+ ],
+ "items": [
+ { "x": 0, "y": 0, "chance": 8, "item_groups": [ "car_misc" ] },
+ { "x": -1, "y": 0, "chance": 8, "item_groups": [ "car_kit" ] }
+ ]
+ },
+ {
+ "id": "suv_atomic",
+ "type": "vehicle",
+ "name": "Atomic SUV",
+ "blueprint": [
+ [ "o-++-o" ],
+ [ "+=##'|" ],
+ [ "=Koo'|" ],
+ [ "+=##'|" ],
+ [ "o-++-o" ]
+ ],
+ "parts": [
+ { "x": 0, "y": 0, "part": "frame_vertical_2" },
+ { "x": 0, "y": 0, "part": "reclining_seat" },
+ { "x": 0, "y": 0, "part": "seatbelt" },
+ { "x": 0, "y": 0, "part": "controls" },
+ { "x": 0, "y": 0, "part": "dashboard" },
+ { "x": 0, "y": 0, "part": "vehicle_clock" },
+ { "x": 0, "y": 0, "part": "vehicle_alarm" },
+ { "x": 0, "y": 0, "part": "stereo" },
+ { "x": 0, "y": 0, "part": "horn_car" },
+ { "x": 0, "y": 0, "part": "roof" },
+ { "x": 0, "y": 1, "part": "frame_vertical_2" },
+ { "x": 0, "y": 1, "part": "box" },
+ { "x": 0, "y": 1, "part": "roof" },
+ { "x": 0, "y": 2, "part": "frame_vertical_2" },
+ { "x": 0, "y": 2, "part": "reclining_seat" },
+ { "x": 0, "y": 2, "part": "seatbelt" },
+ { "x": 0, "y": 2, "part": "roof" },
+ { "x": 0, "y": -1, "part": "frame_vertical" },
+ { "x": 0, "y": -1, "part": "door" },
+ { "x": 0, "y": 3, "part": "frame_vertical" },
+ { "x": 0, "y": 3, "part": "door" },
+ { "x": -1, "y": 0, "part": "frame_vertical_2" },
+ { "x": -1, "y": 0, "part": "seat" },
+ { "x": -1, "y": 0, "part": "seatbelt" },
+ { "x": -1, "y": 0, "part": "roof" },
+ { "x": -1, "y": 1, "part": "frame_vertical_2" },
+ { "x": -1, "y": 1, "part": "seat" },
+ { "x": -1, "y": 1, "part": "seatbelt" },
+ { "x": -1, "y": 1, "part": "roof" },
+ { "x": -1, "y": 2, "part": "frame_vertical_2" },
+ { "x": -1, "y": 2, "part": "seat" },
+ { "x": -1, "y": 2, "part": "seatbelt" },
+ { "x": -1, "y": 2, "part": "roof" },
+ { "x": -1, "y": -1, "part": "frame_vertical" },
+ { "x": -1, "y": -1, "part": "door" },
+ { "x": -1, "y": 3, "part": "frame_vertical" },
+ { "x": -1, "y": 3, "part": "door" },
+ { "x": 1, "y": 0, "part": "frame_horizontal" },
+ { "x": 1, "y": 0, "part": "windshield" },
+ { "x": 1, "y": 1, "part": "frame_horizontal" },
+ { "x": 1, "y": 1, "part": "windshield" },
+ { "x": 1, "y": 2, "part": "frame_horizontal" },
+ { "x": 1, "y": 2, "part": "windshield" },
+ { "x": 1, "y": -1, "part": "frame_vertical" },
+ { "x": 1, "y": -1, "part": "windshield" },
+ { "x": 1, "y": 3, "part": "frame_vertical" },
+ { "x": 1, "y": 3, "part": "windshield" },
+ { "x": 2, "y": 0, "part": "frame_horizontal" },
+ { "x": 2, "y": 0, "part": "halfboard_horizontal" },
+ { "x": 2, "y": 1, "part": "frame_horizontal" },
+ { "x": 2, "y": 1, "part": "halfboard_horizontal" },
+ { "x": 2, "y": 2, "part": "frame_horizontal" },
+ { "x": 2, "y": 2, "part": "halfboard_horizontal" },
+ { "x": 2, "y": -1, "part": "frame_nw" },
+ { "x": 2, "y": -1, "part": "halfboard_nw" },
+ { "x": 2, "y": -1, "part": "wheel_steerable" },
+ { "x": 2, "y": -1, "part": "headlight" },
+ { "x": 2, "y": 3, "part": "frame_ne" },
+ { "x": 2, "y": 3, "part": "halfboard_ne" },
+ { "x": 2, "y": 3, "part": "wheel_steerable" },
+ { "x": 2, "y": 3, "part": "headlight" },
+ { "x": -2, "y": 0, "part": "frame_vertical" },
+ { "x": -2, "y": 0, "part": "trunk" },
+ { "x": -2, "y": 0, "part": "roof" },
+ { "x": -2, "y": 1, "part": "hdframe_vertical" },
+ { "x": -2, "y": 1, "part": "minireactor" },
+ { "x": -2, "y": 1, "part": "halfboard_cover" },
+ { "x": -2, "y": 1, "part": "plating_steel" },
+ { "x": -2, "y": 2, "part": "frame_vertical" },
+ { "x": -2, "y": 2, "part": "trunk" },
+ { "x": -2, "y": 2, "part": "roof" },
+ { "x": -2, "y": -1, "part": "frame_vertical" },
+ { "x": -2, "y": -1, "part": "halfboard_vertical" },
+ { "x": -2, "y": 3, "part": "frame_vertical" },
+ { "x": -2, "y": 3, "part": "halfboard_vertical" },
+ { "x": -3, "y": -1, "part": "frame_horizontal" },
+ { "x": -3, "y": -1, "part": "halfboard_sw" },
+ { "x": -3, "y": -1, "part": "wheel" },
+ { "x": -3, "y": 0, "part": "frame_horizontal" },
+ { "x": -3, "y": 0, "part": "door_trunk" },
+ { "x": -3, "y": 1, "part": "frame_horizontal_2" },
+ { "x": -3, "y": 1, "part": "engine_electric_large" },
+ { "x": -3, "y": 1, "part": "storage_battery" },
+ { "x": -3, "y": 1, "part": "halfboard_vertical_2" },
+ { "x": -3, "y": 1, "part": "plating_steel" },
+ { "x": -3, "y": 2, "part": "frame_horizontal" },
+ { "x": -3, "y": 2, "part": "door_trunk" },
+ { "x": -3, "y": 3, "part": "frame_horizontal" },
+ { "x": -3, "y": 3, "part": "halfboard_se" },
+ { "x": -3, "y": 3, "part": "wheel" }
+ ],
+ "items": [
+ { "x": 0, "y": 0, "chance": 14, "item_groups": [ "car_misc" ] },
+ { "x": 0, "y": 0, "chance": 5, "item_groups": [ "snacks" ] },
+ { "x": 0, "y": 2, "chance": 8, "item_groups": [ "car_misc" ] },
+ { "x": 0, "y": 2, "chance": 2, "item_groups": [ "fast_food" ] },
+ { "x": -2, "y": 0, "chance": 11, "item_groups": [ "car_kit" ] },
+ { "x": -2, "y": 2, "chance": 15, "item_groups": [ "car_kit" ] },
+ { "x": -2, "y": 2, "chance": 15, "items": [ "jack_small", "wheel" ] }
+ ]
+ },
+ {
+ "id": "car_atomic",
+ "type": "vehicle",
+ "name": "Atomic Car",
+ "blueprint": [
+ [ "o-++-o" ],
+ [ "+=##'|" ],
+ [ "+=##'|" ],
+ [ "o-++-o" ]
+ ],
+ "parts": [
+ { "x": 0, "y": 0, "part": "frame_vertical_2" },
+ { "x": 0, "y": 0, "part": "reclining_seat" },
+ { "x": 0, "y": 0, "part": "seatbelt" },
+ { "x": 0, "y": 0, "part": "controls" },
+ { "x": 0, "y": 0, "part": "dashboard" },
+ { "x": 0, "y": 0, "part": "vehicle_clock" },
+ { "x": 0, "y": 0, "part": "vehicle_alarm" },
+ { "x": 0, "y": 0, "part": "stereo" },
+ { "x": 0, "y": 0, "part": "horn_car" },
+ { "x": 0, "y": 0, "part": "roof" },
+ { "x": 0, "y": 1, "part": "frame_vertical_2" },
+ { "x": 0, "y": 1, "part": "reclining_seat" },
+ { "x": 0, "y": 1, "part": "seatbelt" },
+ { "x": 0, "y": 1, "part": "roof" },
+ { "x": 0, "y": -1, "part": "frame_vertical" },
+ { "x": 0, "y": -1, "part": "door" },
+ { "x": 0, "y": 2, "part": "frame_vertical" },
+ { "x": 0, "y": 2, "part": "door" },
+ { "x": -1, "y": 0, "part": "frame_vertical_2" },
+ { "x": -1, "y": 0, "part": "seat" },
+ { "x": -1, "y": 0, "part": "seatbelt" },
+ { "x": -1, "y": 0, "part": "roof" },
+ { "x": -1, "y": 1, "part": "frame_vertical_2" },
+ { "x": -1, "y": 1, "part": "seat" },
+ { "x": -1, "y": 1, "part": "seatbelt" },
+ { "x": -1, "y": 1, "part": "roof" },
+ { "x": -1, "y": -1, "part": "frame_vertical" },
+ { "x": -1, "y": -1, "part": "door" },
+ { "x": -1, "y": 2, "part": "frame_vertical" },
+ { "x": -1, "y": 2, "part": "door" },
+ { "x": 1, "y": 0, "part": "frame_horizontal" },
+ { "x": 1, "y": 0, "part": "windshield" },
+ { "x": 1, "y": 1, "part": "frame_horizontal" },
+ { "x": 1, "y": 1, "part": "windshield" },
+ { "x": 1, "y": -1, "part": "frame_vertical" },
+ { "x": 1, "y": -1, "part": "windshield" },
+ { "x": 1, "y": 2, "part": "frame_vertical" },
+ { "x": 1, "y": 2, "part": "windshield" },
+ { "x": 2, "y": 0, "part": "frame_horizontal" },
+ { "x": 2, "y": 0, "part": "halfboard_horizontal" },
+ { "x": 2, "y": 0, "part": "engine_electric_large" },
+ { "x": 2, "y": 0, "part": "storage_battery" },
+ { "x": 2, "y": 0, "part": "plating_steel" },
+ { "x": 2, "y": 1, "part": "hdframe_horizontal" },
+ { "x": 2, "y": 1, "part": "minireactor" },
+ { "x": 2, "y": 1, "part": "halfboard_horizontal" },
+ { "x": 2, "y": 1, "part": "plating_steel" },
+ { "x": 2, "y": -1, "part": "frame_nw" },
+ { "x": 2, "y": -1, "part": "halfboard_nw" },
+ { "x": 2, "y": -1, "part": "wheel_steerable" },
+ { "x": 2, "y": -1, "part": "headlight" },
+ { "x": 2, "y": 2, "part": "frame_ne" },
+ { "x": 2, "y": 2, "part": "halfboard_ne" },
+ { "x": 2, "y": 2, "part": "wheel_steerable" },
+ { "x": 2, "y": 2, "part": "headlight" },
+ { "x": -2, "y": 0, "part": "frame_vertical" },
+ { "x": -2, "y": 0, "part": "trunk" },
+ { "x": -2, "y": 0, "part": "roof" },
+ { "x": -2, "y": 1, "part": "frame_vertical" },
+ { "x": -2, "y": 1, "part": "trunk" },
+ { "x": -2, "y": 1, "part": "roof" },
+ { "x": -2, "y": -1, "part": "frame_vertical" },
+ { "x": -2, "y": -1, "part": "halfboard_vertical" },
+ { "x": -2, "y": 2, "part": "frame_vertical" },
+ { "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" },
+ { "x": -3, "y": 0, "part": "frame_horizontal" },
+ { "x": -3, "y": 0, "part": "door_trunk" },
+ { "x": -3, "y": 1, "part": "frame_horizontal" },
+ { "x": -3, "y": 1, "part": "door_trunk" },
+ { "x": -3, "y": 2, "part": "frame_horizontal" },
+ { "x": -3, "y": 2, "part": "halfboard_se" },
+ { "x": -3, "y": 2, "part": "wheel" }
+ ],
+ "items": [
+ { "x": 0, "y": 0, "chance": 14, "item_groups": [ "car_misc" ] },
+ { "x": 0, "y": 0, "chance": 5, "item_groups": [ "snacks" ] },
+ { "x": 0, "y": 1, "chance": 8, "item_groups": [ "car_misc" ] },
+ { "x": 0, "y": 1, "chance": 2, "item_groups": [ "fast_food" ] },
+ { "x": -2, "y": 0, "chance": 11, "item_groups": [ "car_kit" ] },
+ { "x": -2, "y": 1, "chance": 15, "item_groups": [ "car_kit" ] },
+ { "x": -2, "y": 1, "chance": 15, "items": [ "jack_small", "wheel" ] }
+ ]
+ },
+ {
+ "id": "car_atomic_flame",
+ "type": "vehicle",
+ "name": "Flaming Atomic Car",
+ "blueprint": [
+ [ "##++-o" ],
+ [ "+=##'|" ],
+ [ "+=##'|" ],
+ [ "##++-o" ]
+ ],
+ "parts": [
+ { "x": 0, "y": 0, "part": "frame_vertical_2" },
+ { "x": 0, "y": 0, "part": "seat" },
+ { "x": 0, "y": 0, "part": "seatbelt" },
+ { "x": 0, "y": 0, "part": "controls" },
+ { "x": 0, "y": 0, "part": "dashboard" },
+ { "x": 0, "y": 0, "part": "roof" },
+ { "x": 0, "y": -1, "part": "frame_vertical" },
+ { "x": 0, "y": 0, "part": "tank", "fuel": "napalm" },
+ { "x": 0, "y": 1, "part": "frame_vertical_2" },
+ { "x": 0, "y": 1, "part": "tank", "fuel": "gasoline" },
+ { "x": 0, "y": -1, "part": "tank", "fuel": "water_clean" },
+ { "x": 0, "y": -1, "part": "turret_mount" },
+ { "x": 0, "y": -1, "part": "laser_rifle" },
+ { "x": 0, "y": 2, "part": "frame_vertical" },
+ { "x": -1, "y": 0, "part": "frame_vertical_2" },
+ { "x": -1, "y": 1, "part": "frame_vertical_2" },
+ { "x": -1, "y": 1, "part": "minireactor" },
+ { "x": -1, "y": -1, "part": "frame_vertical" },
+ { "x": -1, "y": -1, "part": "wheel" },
+ { "x": -1, "y": -1, "part": "storage_battery" },
+ { "x": -1, "y": 2, "part": "frame_vertical" },
+ { "x": -1, "y": 2, "part": "wheel" },
+ { "x": -1, "y": 2, "part": "storage_battery" },
+ { "x": 1, "y": 0, "part": "frame_horizontal" },
+ { "x": 1, "y": 0, "part": "engine_electric_large" },
+ { "x": 1, "y": 0, "part": "turret_mount" },
+ { "x": 1, "y": 0, "part": "flamethrower" },
+ { "x": 1, "y": 1, "part": "frame_horizontal" },
+ { "x": 1, "y": 1, "part": "storage_battery_mount", "//": "to make the blazemod happy" },
+ { "x": 1, "y": -1, "part": "frame_nw" },
+ { "x": 1, "y": -1, "part": "wheel_steerable" },
+ { "x": 1, "y": -1, "part": "turret_mount" },
+ { "x": 1, "y": -1, "part": "watercannon" },
+ { "x": 1, "y": 2, "part": "frame_ne" },
+ { "x": 1, "y": 2, "part": "wheel_steerable" },
+ { "x": 1, "y": 2, "part": "tank", "fuel": "water" },
+ { "x": 1, "y": 2, "part": "turret_mount" },
+ { "x": 1, "y": 2, "part": "m249", "ammo": 100 }
+ ]
}
]
diff --git a/data/mods/Boats/b_item_groups.json b/data/mods/Boats/b_item_groups.json
deleted file mode 100644
index 11ad5e5fea631..0000000000000
--- a/data/mods/Boats/b_item_groups.json
+++ /dev/null
@@ -1,39 +0,0 @@
-[
- {
- "type": "item_group",
- "id": "allsporting",
- "items": [ [ "inflatable_boat", 35 ], [ "hand_pump", 10 ] ]
- },
- {
- "type": "item_group",
- "id": "camping",
- "items": [ [ "inflatable_boat", 25 ], [ "hand_pump", 5 ] ]
- },
- {
- "type": "item_group",
- "id": "pawn",
- "items": [ [ "inflatable_boat", 10 ], [ "hand_pump", 10 ] ]
- },
- {
- "type": "item_group",
- "id": "mil_surplus",
- "items": [ [ "inflatable_boat", 40 ], [ "hand_pump", 40 ] ]
- },
- {
- "type": "item_group",
- "id": "shelter",
- "items": [ [ "inflatable_boat", 5 ], [ "hand_pump", 5 ] ]
- },
- {
- "type": "item_group",
- "id": "sewage_plant",
- "//": "Handy if the flow runs a bit high. ;-)",
- "items": [ [ "inflatable_boat", 10 ], [ "hand_pump", 10 ] ]
- },
- {
- "type": "item_group",
- "id": "arcade_prizes",
- "//": "One of those prizes you need approximately three million tickets to claim.",
- "items": [ [ "inflatable_boat", 10 ], [ "hand_pump", 15 ] ]
- }
-]
diff --git a/data/mods/Boats/b_items.json b/data/mods/Boats/b_items.json
deleted file mode 100644
index 20b7c0a18ef96..0000000000000
--- a/data/mods/Boats/b_items.json
+++ /dev/null
@@ -1,38 +0,0 @@
-[
- {
- "id": "inflatable_boat",
- "type": "TOOL",
- "symbol": "0",
- "color": "light_gray",
- "name": "inflatable boat",
- "description": "This rubber rowboat (oars included) is deflated for storage. Activate it (having an air pump in inventory) to inflate and launch.",
- "price": 350000,
- "material": "plastic",
- "weight": 9071,
- "volume": 86,
- "bashing": 10,
- "to_hit": -5,
- "use_action": {
- "type": "unfold_vehicle",
- "vehicle_name": "inflatable_boat",
- "tools_needed": { "hand_pump": 1 },
- "unfold_msg": "You painstakingly unfold, inflate, and launch the %s.",
- "moves": 15000
- }
- },
- {
- "id": "hand_pump",
- "type": "TOOL",
- "symbol": "/",
- "color": "blue",
- "name": "hand pump",
- "name_plural": "hand pumps",
- "description": "This pump is suitable for pumping air into inflatable objects.",
- "price": 400,
- "material": [ "aluminum", "plastic" ],
- "weight": 113,
- "volume": 1,
- "cutting": 6,
- "to_hit": -1
- }
-]
diff --git a/data/mods/Boats/b_recipes.json b/data/mods/Boats/b_recipes.json
deleted file mode 100644
index ee808cf901186..0000000000000
--- a/data/mods/Boats/b_recipes.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "type": "recipe",
- "result": "boat_board",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_VEHICLES",
- "skill_used": "fabrication",
- "difficulty": 3,
- "time": 6000,
- "reversible": true,
- "autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
- "components": [ [ [ "2x4", 5 ] ], [ [ "nail", 30 ] ] ]
- },
- {
- "type": "recipe",
- "result": "plastic_boat_hull",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_VEHICLES",
- "skill_used": "fabrication",
- "difficulty": 4,
- "time": 30000,
- "autolearn": true,
- "tools": [ [ [ "mold_plastic", -1 ] ], [ [ "surface_heat", 50, "LIST" ] ] ],
- "components": [ [ [ "plastic_chunk", 50 ] ] ]
- },
- {
- "type": "recipe",
- "result": "sail",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_VEHICLES",
- "skill_used": "fabrication",
- "difficulty": 2,
- "time": 30000,
- "reversible": true,
- "autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
- "using": [ [ "sewing_standard", 100 ] ],
- "components": [ [ [ "rag", 40 ], [ "sheet", 2 ] ], [ [ "2x4", 10 ], [ "stick", 8 ], [ "stick_long", 4 ] ], [ [ "nail", 30 ] ] ]
- },
- {
- "type": "recipe",
- "result": "hand_paddles",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_VEHICLES",
- "skill_used": "fabrication",
- "difficulty": 1,
- "time": 500,
- "reversible": true,
- "autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ],
- "components": [ [ [ "2x4", 1 ] ], [ [ "nail", 5 ] ] ]
- }
-]
diff --git a/data/mods/Boats/modinfo.json b/data/mods/Boats/modinfo.json
index b62e1c8e4239f..fb013c9f1dcbd 100644
--- a/data/mods/Boats/modinfo.json
+++ b/data/mods/Boats/modinfo.json
@@ -6,6 +6,7 @@
"authors": [ "HuXTUS", "Whaley" ],
"description": "Adds boats.",
"category": "vehicles",
- "dependencies": [ "dda" ]
+ "dependencies": [ "dda" ],
+ "obsolete": true
}
]
diff --git a/data/mods/Boats/overmap_terrain.json b/data/mods/Boats/overmap_terrain.json
deleted file mode 100644
index 6ceedd3626724..0000000000000
--- a/data/mods/Boats/overmap_terrain.json
+++ /dev/null
@@ -1,23 +0,0 @@
-[
- {
- "//": "Add the following to overmap_terrain.json in /data/json/",
- "type": "overmap_terrain",
- "id": "boat_rental",
- "name": "boat rental",
- "sym": "#",
- "color": "white",
- "see_cost": 5,
- "extras": "build",
- "mondensity": 1
- },
- {
- "type": "overmap_terrain",
- "id": "riverside_dwelling",
- "name": "riverside dwelling",
- "sym": "+",
- "color": "i_yellow",
- "see_cost": 5,
- "extras": "build",
- "mondensity": 1
- }
-]
diff --git a/data/mods/Boats/specials.json b/data/mods/Boats/specials.json
deleted file mode 100644
index 3e9d37cd0c41f..0000000000000
--- a/data/mods/Boats/specials.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
- "//": "Add the following to specials.json in /data/json/overmap/",
- "type": "overmap_special",
- "id": "Boat Rental",
- "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "boat_rental_north" } ],
- "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ],
- "locations": [ "water" ],
- "city_distance": [ 5, 15 ],
- "city_sizes": [ 0, 12 ],
- "occurrences": [ 0, 5 ]
- },
- {
- "type": "overmap_special",
- "id": "Riverside Dwelling",
- "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "riverside_dwelling_north" } ],
- "locations": [ "water" ],
- "city_distance": [ -1, 25 ],
- "city_sizes": [ 0, 20 ],
- "occurrences": [ 0, 12 ]
- }
-]
diff --git a/data/mods/Boats/vehicle_groups_boats.json b/data/mods/Boats/vehicle_groups_boats.json
deleted file mode 100644
index 1c5059f5fdfd1..0000000000000
--- a/data/mods/Boats/vehicle_groups_boats.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
- {
- "type": "vehicle_group",
- "id": "boatrent",
- "vehicles": [ [ "canoe", 2000 ], [ "kayak", 1500 ], [ "kayak_racing", 500 ], [ "DUKW", 250 ], [ "raft", 2000 ] ]
- }
-]
diff --git a/data/mods/Boats/vehicleparts_boats.json b/data/mods/Boats/vehicleparts_boats.json
deleted file mode 100644
index d16e8a1672959..0000000000000
--- a/data/mods/Boats/vehicleparts_boats.json
+++ /dev/null
@@ -1,164 +0,0 @@
-[
- {
- "type": "vehicle_part",
- "id": "boat_board",
- "name": "wooden boat hull",
- "description": "A wooden board that keeps the water out of your boat.",
- "symbol": "o",
- "color": "brown",
- "broken_symbol": "x",
- "broken_color": "light_gray",
- "damage_modifier": 50,
- "durability": 40,
- "item": "boat_board",
- "difficulty": 2,
- "location": "under",
- "flags": [ "FLOATS", "NAILABLE" ],
- "breaks_into": [ { "item": "splinter", "count": [ 10, 20 ] } ]
- },
- {
- "type": "vehicle_part",
- "id": "plastic_boat_hull",
- "name": "plastic boat hull",
- "description": "A rigid plastic sheet that keeps water out of your boat.",
- "symbol": "o",
- "color": "brown",
- "looks_like": "boat_board",
- "broken_symbol": "x",
- "broken_color": "light_gray",
- "damage_modifier": 50,
- "durability": 120,
- "item": "plastic_boat_hull",
- "difficulty": 3,
- "location": "under",
- "flags": [ "FLOATS" ],
- "breaks_into": [ { "item": "plastic_chunk", "count": [ 4, 8 ] } ]
- },
- {
- "type": "vehicle_part",
- "id": "metal_boat_hull",
- "name": "metal boat hull",
- "description": "A metal sheet that keeps the water out of your boat.",
- "symbol": "o",
- "color": "dark_gray",
- "looks_like": "boat_board",
- "broken_symbol": "x",
- "broken_color": "light_gray",
- "damage_modifier": 50,
- "durability": 240,
- "item": "sheet_metal",
- "difficulty": 4,
- "location": "under",
- "flags": [ "FLOATS" ],
- "breaks_into": "ig_vp_sheet_metal"
- },
- {
- "type": "vehicle_part",
- "id": "carbonfiber_boat_hull",
- "name": "carbon fiber boat hull",
- "description": "A light weight, advanced carbon fiber rigid sheet that keeps the water out of your boat.",
- "symbol": "o",
- "color": "brown",
- "looks_like": "boat_board",
- "broken_symbol": "x",
- "broken_color": "light_gray",
- "damage_modifier": 50,
- "durability": 480,
- "item": "carbonfiber_boat_hull",
- "difficulty": 6,
- "location": "under",
- "flags": [ "FLOATS", "BOARDABLE" ],
- "breaks_into": [ { "item": "kevlar_plate", "count": [ 1, 3 ] } ]
- },
- {
- "type": "vehicle_part",
- "id": "inflatable_section",
- "name": "inflatable section",
- "symbol": "O",
- "color": "green",
- "size": 60,
- "broken_symbol": "#",
- "broken_color": "light_gray",
- "durability": 50,
- "item": "inflatable_section",
- "difficulty": 3,
- "location": "structure",
- "folded_volume": 3,
- "flags": [ "MOUNTABLE", "FOLDABLE", "BOARDABLE", "CARGO" ],
- "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ]
- },
- {
- "type": "vehicle_part",
- "id": "inflatable_airbag",
- "name": "inflatable airbag",
- "symbol": "O",
- "color": "green",
- "broken_symbol": "x",
- "broken_color": "light_gray",
- "damage_modifier": 50,
- "durability": 40,
- "item": "inflatable_airbag",
- "difficulty": 2,
- "location": "under",
- "folded_volume": 3,
- "flags": [ "FLOATS", "VARIABLE_SIZE", "FOLDABLE" ],
- "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ]
- },
- {
- "type": "vehicle_part",
- "id": "sail",
- "name": "sail",
- "symbol": "M",
- "color": "light_gray",
- "broken_symbol": "#",
- "broken_color": "red",
- "damage_modifier": 50,
- "durability": 20,
- "power": 800,
- "fuel_type": "wind",
- "noise_factor": 1,
- "m2c": 90,
- "exclusions": [ "manual" ],
- "item": "sail",
- "difficulty": 2,
- "location": "engine_block",
- "folded_volume": 2,
- "flags": [
- "ENGINE",
- "CONTROLS",
- "FOLDABLE",
- "TOOL_NONE",
- "PROTRUSION",
- "E_STARTS_INSTANTLY",
- "WIND_POWERED",
- "OVER",
- "REVERSIBLE",
- "STABLE",
- "UNMOUNT_ON_DAMAGE"
- ],
- "breaks_into": [ { "item": "splinter", "count": [ 10, 20 ] }, { "item": "rag", "count": [ 5, 10 ] } ]
- },
- {
- "type": "vehicle_part",
- "id": "hand_paddles",
- "name": "hand paddles",
- "symbol": "*",
- "color": "light_gray",
- "broken_symbol": "#",
- "broken_color": "red",
- "damage_modifier": 50,
- "durability": 50,
- "power": 800,
- "fuel_type": "muscle",
- "muscle_power_factor": 40,
- "noise_factor": 8,
- "m2c": 45,
- "exclusions": [ "manual" ],
- "item": "hand_paddles",
- "difficulty": 1,
- "location": "engine_block",
- "folded_volume": 2,
- "flags": [ "ENGINE", "CONTROLS", "FOLDABLE", "MUSCLE_ARMS", "TOOL_NONE", "E_STARTS_INSTANTLY" ],
- "breaks_into": [ { "item": "splinter", "count": [ 2, 4 ] } ]
- }
-]
diff --git a/data/mods/Boats/whaleys_boats.json b/data/mods/Boats/whaleys_boats.json
deleted file mode 100644
index a56c77b639656..0000000000000
--- a/data/mods/Boats/whaleys_boats.json
+++ /dev/null
@@ -1,49 +0,0 @@
-[
- {
- "//": "Place the following vehicles as boat.json in /data/json/vehicles/",
- "type": "vehicle",
- "id": "canoe",
- "name": "canoe",
- "blueprint": [ [ "" ] ],
- "parts": [
- { "x": 0, "y": 0, "part": "frame_wood_horizontal" },
- { "x": 0, "y": 0, "part": "seat" },
- { "x": 0, "y": 0, "part": "hand_paddles" },
- { "x": 0, "y": 0, "part": "boat_board" },
- { "x": 1, "y": 0, "part": "frame_wood_horizontal" },
- { "x": 1, "y": 0, "part": "boat_board" },
- { "x": 1, "y": 0, "part": "seat" },
- { "x": 2, "y": 0, "part": "frame_wood_horizontal" },
- { "x": 2, "y": 0, "part": "boat_board" },
- { "x": -1, "y": 0, "part": "frame_wood_horizontal" },
- { "x": -1, "y": 0, "part": "boat_board" }
- ]
- },
- {
- "type": "vehicle",
- "id": "raft",
- "name": "raft",
- "blueprint": [
- [ "OO" ],
- [ "OO" ]
- ],
- "parts": [
- { "x": 0, "y": 0, "part": "frame_wood_cross" },
- { "x": 0, "y": 0, "part": "seat" },
- { "x": 0, "y": 0, "part": "hand_paddles" },
- { "x": 0, "y": 0, "part": "boat_board" },
- { "x": 1, "y": 0, "part": "frame_wood_cross" },
- { "x": 1, "y": 0, "part": "boat_board" },
- { "x": 1, "y": 1, "part": "frame_wood_cross" },
- { "x": 1, "y": 1, "part": "boat_board" },
- { "x": 0, "y": 1, "part": "frame_wood_cross" },
- { "x": 0, "y": 1, "part": "boat_board" }
- ]
- },
- {
- "//": "Place the following in vehicle_groups.json in /data/json/",
- "type": "vehicle_group",
- "id": "boatrent",
- "vehicles": [ [ "canoe", 2000 ], [ "raft", 2000 ] ]
- }
-]
diff --git a/data/mods/BrightNights/bionics.json b/data/mods/BrightNights/bionics.json
deleted file mode 100644
index 22812f10777b4..0000000000000
--- a/data/mods/BrightNights/bionics.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "id": "bn_bio_solar",
- "type": "bionic",
- "name": "Solar Panels",
- "description": "Installed on your back is a set of retractable solar panels. When in direct sunlight, they will automatically deploy and slowly recharge your power level.",
- "occupied_bodyparts": [
- [ "TORSO", 20 ]
- ],
- "flags": [
- "BIONIC_POWER_SOURCE"
- ]
-}
diff --git a/data/mods/BrightNights/gun.json b/data/mods/BrightNights/gun.json
deleted file mode 100644
index ec0d19a119223..0000000000000
--- a/data/mods/BrightNights/gun.json
+++ /dev/null
@@ -1,28 +0,0 @@
-[
- {
- "id": "laser_rifle_cheap",
- "type": "GUN",
- "name": "shoddy laser rifle",
- "description": "This is a cheap laser rifle made from common components. Weak, but can be powered with rechargeable batteries.",
- "weight": 8000,
- "volume": 10,
- "price": 40000,
- "to_hit": -1,
- "bashing": 8,
- "material": [ "plastic", "copper" ],
- "symbol": "(",
- "color": "magenta",
- "ammo": "battery",
- "skill": "rifle",
- "range": 10,
- "ranged_damage": 20,
- "dispersion": 150,
- "durability": 10,
- "loudness": 8,
- "reload": 500,
- "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ],
- "ammo_effects": [ "LASER", "DRAW_AS_LINE" ],
- "magazines": [ [ "battery", [ "hd_battery", "rechargeable_battery" ] ] ],
- "flags": [ "NEVER_JAMS", "FIRE_20" ]
- }
-]
diff --git a/data/mods/BrightNights/item_groups.json b/data/mods/BrightNights/item_groups.json
deleted file mode 100644
index 5a52cfd39ad66..0000000000000
--- a/data/mods/BrightNights/item_groups.json
+++ /dev/null
@@ -1,103 +0,0 @@
-[
- {
- "id": "behindcounter",
- "type": "item_group",
- "magazine": 100,
- "ammo": 50,
- "items": [ [ "rechargeable_battery", 50 ] ]
- },
- {
- "id": "bionics",
- "type": "item_group",
- "magazine": 100,
- "ammo": 50,
- "items": [ [ "bn_bio_solar", 10 ] ]
- },
- {
- "id": "bionics_common",
- "type": "item_group",
- "magazine": 100,
- "ammo": 50,
- "items": [ [ "bn_bio_solar", 10 ] ]
- },
- {
- "id": "bionics_sci",
- "type": "item_group",
- "magazine": 100,
- "ammo": 50,
- "items": [ [ "bn_bio_solar", 5 ] ]
- },
- {
- "id": "bionics_op",
- "type": "item_group",
- "magazine": 100,
- "ammo": 50,
- "items": [ [ "bn_bio_solar", 15 ] ]
- },
- {
- "id": "hardware_plumbing",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 50 ], [ "hd_battery", 20 ] ]
- },
- {
- "id": "consumer_electronics",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 50 ] ]
- },
- {
- "id": "shelter",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 100 ], [ "hd_battery", 50 ] ]
- },
- {
- "id": "mechanics",
- "type": "item_group",
- "ammo": 100,
- "items": [ [ "rechargeable_battery", 10 ], [ "hd_battery", 20 ] ]
- },
- {
- "id": "electronics",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 10 ], [ "hd_battery", 10 ] ]
- },
- {
- "id": "lab_dorm",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 10 ] ]
- },
- {
- "id": "construction_worker",
- "type": "item_group",
- "items": [ [ "hd_battery", 40 ] ]
- },
- {
- "id": "mine_equipment",
- "type": "item_group",
- "items": [ [ "hd_battery", 40 ] ]
- },
- {
- "id": "radio",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 30 ], [ "hd_battery", 20 ] ]
- },
- {
- "id": "textbooks",
- "type": "item_group",
- "items": [ [ "textbook_atomic", 8 ] ]
- },
- {
- "id": "robots",
- "type": "item_group",
- "items": [ [ "rechargeable_battery", 30 ], [ "hd_battery", 20 ] ]
- },
- {
- "id": "guns_pistol_improvised",
- "type": "item_group",
- "items": [ [ "v29_cheap", 10 ] ]
- },
- {
- "id": "chem_lab",
- "type": "item_group",
- "items": [ [ "panacea", 1 ] ]
- }
-]
diff --git a/data/mods/BrightNights/item_groups/locations.json b/data/mods/BrightNights/item_groups/locations.json
deleted file mode 100644
index f7d6375203b55..0000000000000
--- a/data/mods/BrightNights/item_groups/locations.json
+++ /dev/null
@@ -1,31 +0,0 @@
-[
- {
- "id": "nuclear_waste",
- "type": "item_group",
- "subtype": "collection",
- "entries": [ { "item": "nuclear_waste", "container-item": "hazardous_waste_drum", "charges": 10 } ]
- },
- {
- "id": "nuclear_reactor",
- "type": "item_group",
- "subtype": "collection",
- "entries": [
- { "item": "nuclear_waste", "count-min": 5, "count-max": 10 },
- { "item": "nuclear_fuel", "count-min": 1, "count-max": 10 }
- ]
- },
- {
- "id": "reactor_gear",
- "type": "item_group",
- "subtype": "collection",
- "entries": [
- { "item": "hazmat_suit", "prob": 33 },
- { "item": "prussian_blue", "prob": 33 },
- { "item": "rad_monitor", "prob": 33 },
- { "item": "iodine", "prob": 33 },
- { "item": "flashlight", "prob": 33 },
- { "item": "1st_aid", "prob": 15 },
- { "item": "geiger_off", "prob": 15 }
- ]
- }
-]
diff --git a/data/mods/BrightNights/items/bionics.json b/data/mods/BrightNights/items/bionics.json
deleted file mode 100644
index c4f30b9f386da..0000000000000
--- a/data/mods/BrightNights/items/bionics.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[
- {
- "id": "bn_bio_solar",
- "copy-from": "bionic_general",
- "type": "BIONIC_ITEM",
- "name": "Solar Panels CBM",
- "description": "Installed on your back is a set of retractable solar panels. When in direct sunlight, they will automatically deploy and slowly recharge your power level.",
- "price": 350000,
- "difficulty": 4
- }
-]
diff --git a/data/mods/BrightNights/items/books.json b/data/mods/BrightNights/items/books.json
deleted file mode 100644
index 48383ba1ec5dd..0000000000000
--- a/data/mods/BrightNights/items/books.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
- "id": "textbook_atomic",
- "type": "BOOK",
- "name": "Nuclear Physics Made Easy",
- "name_plural": "Nuclear Physics Made Easy",
- "description": "A book detailing the workings of state of the art atomic technology, and the physics behind it",
- "weight": 2063,
- "volume": 8,
- "price": 9200,
- "bashing": 8,
- "material": [ "paper" ],
- "symbol": "?",
- "color": "light_green",
- "skill": "electronics",
- "required_level": 5,
- "max_level": 7,
- "intelligence": 13,
- "time": 50,
- "fun": -1
- }
-]
diff --git a/data/mods/BrightNights/items/generic.json b/data/mods/BrightNights/items/generic.json
deleted file mode 100644
index ac1abac620e31..0000000000000
--- a/data/mods/BrightNights/items/generic.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
- "id": "nuclear_waste",
- "type": "GENERIC",
- "name": "nuclear waste",
- "description": "A small pellet of silvery metal, still warm to the touch.",
- "weight": 30,
- "volume": 1,
- "price": 0,
- "material": "iron",
- "symbol": "*",
- "color": "light_green",
- "flags": [ "RADIOACTIVE", "LEAK_ALWAYS" ]
- },
- {
- "id": "nuclear_fuel",
- "copy-from": "nuclear_waste",
- "type": "GENERIC",
- "name": "nuclear fuel pellet",
- "description": "A small pellet of fissile material. Handle carefully."
- },
- {
- "id": "hazardous_waste_drum",
- "copy-from": "55gal_drum",
- "type": "CONTAINER",
- "name": "hazardous waste drum",
- "description": "A yellow drum meant for the storage of hazardous substances.",
- "material": [ "steel", "lead" ],
- "symbol": "0",
- "color": "yellow"
- }
-]
diff --git a/data/mods/BrightNights/misc.json b/data/mods/BrightNights/misc.json
deleted file mode 100644
index ed10b9e56ca0e..0000000000000
--- a/data/mods/BrightNights/misc.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[
- {
- "id": "rechargeable_battery",
- "type": "MAGAZINE",
- "name": "rechargeable battery",
- "name_plural": "rechargeable batteries",
- "description": "This surprisingly heavy battery is not very energy-dense, but can be recharged.",
- "weight": 500,
- "volume": 1,
- "price": 1000,
- "price_postapoc": 10000,
- "bashing": 1,
- "material": [ "plastic" ],
- "symbol": ":",
- "color": "green",
- "ammo_type": "battery",
- "capacity": 200,
- "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE" ]
- },
- {
- "id": "hd_battery",
- "copy-from": "rechargeable_battery",
- "type": "MAGAZINE",
- "name": "heavy duty battery",
- "name_plural": "heavy duty batteries",
- "description": "This big rechargeable battery is almost as heavy as solid lead.",
- "weight": 5000,
- "volume": 4,
- "price": 8000,
- "price_postapoc": 30000,
- "bashing": 10,
- "material": [ "steel" ],
- "color": "light_gray",
- "capacity": 1000
- },
- {
- "type": "GENERIC",
- "id": "recharge_station",
- "name": "recharging station",
- "copy-from": "recharge_station",
- "weight": 1000,
- "volume": 4,
- "price": 2000,
- "price_postapoc": 10000
- }
-]
diff --git a/data/mods/BrightNights/modinfo.json b/data/mods/BrightNights/modinfo.json
deleted file mode 100644
index 8c584eea73240..0000000000000
--- a/data/mods/BrightNights/modinfo.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[
- {
- "type": "MOD_INFO",
- "ident": "brightnights",
- "name": "Bright Nights",
- "authors": [ "Coolthulhu" ],
- "description": "More action-centered, sci-fi, experimental, Cataclysm. NOTE: Incompatible with Aftershock.",
- "category": "content",
- "dependencies": [ "dda", "craftgp" ]
- }
-]
diff --git a/data/mods/BrightNights/recipe.json b/data/mods/BrightNights/recipe.json
deleted file mode 100644
index eb2de49129672..0000000000000
--- a/data/mods/BrightNights/recipe.json
+++ /dev/null
@@ -1,126 +0,0 @@
-[
- {
- "result": "laser_rifle_cheap",
- "type": "recipe",
- "category": "CC_WEAPON",
- "subcategory": "CSC_WEAPON_RANGED",
- "skill_used": "electronics",
- "difficulty": 5,
- "time": 300000,
- "reversible": true,
- "autolearn": [ [ "electronics", 4 ] ],
- "book_learn": [ [ "advanced_electronics", 3 ], [ "textbook_electronics", 3 ] ],
- "qualities": [ { "id": "SCREW_FINE", "level": 1 } ],
- "tools": [ [ [ "soldering_iron", 200 ], [ "toolset", 200 ] ] ],
- "components": [
- [ [ "amplifier", 2 ] ],
- [ [ "power_supply", 1 ] ],
- [ [ "cable", 100 ] ],
- [ [ "e_scrap", 10 ] ],
- [ [ "lens", 2 ] ],
- [ [ "plastic_chunk", 6 ] ]
- ]
- },
- {
- "result": "recharge_station",
- "type": "recipe",
- "category": "CC_ELECTRONIC",
- "subcategory": "CSC_ELECTRONIC_PARTS",
- "skill_used": "electronics",
- "difficulty": 3,
- "time": 50000,
- "reversible": true,
- "autolearn": [ [ "electronics", 2 ] ],
- "using": [ [ "soldering_standard", 35 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 } ],
- "components": [ [ [ "power_supply", 2 ] ], [ [ "processor", 2 ] ], [ [ "scrap", 5 ] ], [ [ "cable", 8 ] ] ]
- },
- {
- "result": "bandages",
- "type": "recipe",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_MEDICAL",
- "skill_used": "firstaid",
- "difficulty": 0,
- "time": 500,
- "autolearn": true,
- "components": [
- [ [ "rag", 3 ], [ "medical_gauze", 1 ] ],
- [ [ "duct_tape", 20 ], [ "medical_tape", 5 ] ],
- [
- [ "disinfectant", 1 ],
- [ "thyme_oil", 1 ],
- [ "chem_ethanol", 250 ],
- [ "denat_alcohol", 250 ],
- [ "hard_liquor", 28, "LIST" ]
- ]
- ],
- "flags": [ "BLIND_HARD" ]
- },
- {
- "result": "torch",
- "type": "recipe",
- "category": "CC_WEAPON",
- "subcategory": "CSC_WEAPON_BASHING",
- "skill_used": "fabrication",
- "time": 2000,
- "autolearn": true,
- "components": [
- [ [ "rag", 1 ] ],
- [ [ "stick", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ],
- [
- [ "lamp_oil", 50 ],
- [ "chem_ethanol", 100 ],
- [ "denat_alcohol", 100 ],
- [ "hard_liquor", 14, "LIST" ],
- [ "gasoline", 250 ],
- [ "diesel", 250 ]
- ]
- ],
- "flags": [ "BLIND_EASY" ]
- },
- {
- "result": "molotov",
- "type": "recipe",
- "category": "CC_WEAPON",
- "subcategory": "CSC_WEAPON_EXPLOSIVE",
- "skill_used": "fabrication",
- "time": 500,
- "reversible": true,
- "autolearn": true,
- "components": [
- [ [ "rag", 1 ] ],
- [ [ "bottle_glass", 1 ], [ "flask_glass", 1 ], [ "clay_canister", 1 ] ],
- [
- [ "gasoline", 500 ],
- [ "diesel", 500 ],
- [ "chem_ethanol", 500 ],
- [ "hard_liquor", 52, "LIST" ],
- [ "denat_alcohol", 500 ],
- [ "lamp_oil", 500 ]
- ]
- ],
- "flags": [ "BLIND_EASY" ]
- },
- {
- "result": "plut_cell",
- "type": "recipe",
- "category": "CC_ELECTRONIC",
- "subcategory": "CSC_ELECTRONIC_COMPONENTS",
- "skill_used": "electronics",
- "difficulty": 5,
- "time": 5000,
- "autolearn": [ [ "electronics", 7 ] ],
- "book_learn": [ [ "textbook_atomic", 5 ] ],
- "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ],
- "tools": [ [ [ "soldering_iron", 50 ] ] ],
- "components": [
- [ [ "nuclear_fuel", 2 ] ],
- [ [ "e_scrap", 5 ] ],
- [ [ "lead", 25 ] ],
- [ [ "plastic_chunk", 5 ] ],
- [ [ "scrap", 5 ] ],
- [ [ "can_drink_unsealed", 5 ], [ "can_food_unsealed", 5 ], [ "canister_empty", 5 ] ]
- ]
- }
-]
diff --git a/data/mods/BrightNights/vehicle_groups.json b/data/mods/BrightNights/vehicle_groups.json
deleted file mode 100644
index 206c93bc55676..0000000000000
--- a/data/mods/BrightNights/vehicle_groups.json
+++ /dev/null
@@ -1,33 +0,0 @@
-[
- {
- "id": "city_vehicles",
- "type": "vehicle_group",
- "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 500 ], [ "car_atomic_flame", 100 ] ]
- },
- {
- "id": "city_pileup",
- "type": "vehicle_group",
- "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ], [ "car_atomic_flame", 100 ] ]
- },
- {
- "id": "highway",
- "type": "vehicle_group",
- "vehicles": [ [ "car_atomic", 1500 ], [ "suv_atomic", 1500 ], [ "compact_atomic", 300 ], [ "car_atomic_flame", 100 ] ]
- },
- {
- "id": "suburban_home",
- "type": "vehicle_group",
- "vehicles": [ [ "car_atomic", 1000 ], [ "suv_atomic", 1000 ], [ "compact_atomic", 300 ], [ "car_atomic_flame", 100 ] ]
- },
- {
- "id": "parkinglot",
- "type": "vehicle_group",
- "vehicles": [
- [ "car_atomic", 1000 ],
- [ "car_sports_atomic", 100 ],
- [ "suv_atomic", 1000 ],
- [ "compact_atomic", 300 ],
- [ "car_atomic_flame", 100 ]
- ]
- }
-]
diff --git a/data/mods/BrightNights/vehicle_parts.json b/data/mods/BrightNights/vehicle_parts.json
deleted file mode 100644
index 6fe5bd5d21b71..0000000000000
--- a/data/mods/BrightNights/vehicle_parts.json
+++ /dev/null
@@ -1,12 +0,0 @@
-[
- {
- "id": "recharge_station",
- "type": "vehicle_part",
- "name": "recharge station",
- "copy-from": "recharge_station",
- "difficulty": 1,
- "epower": 0,
- "folded_volume": 4,
- "flags": [ "INTERNAL", "RECHARGE", "FOLDABLE", "TOOL_SCREWDRIVER" ]
- }
-]
diff --git a/data/mods/BrightNights/vehicles/cars.json b/data/mods/BrightNights/vehicles/cars.json
deleted file mode 100644
index e05d777067f14..0000000000000
--- a/data/mods/BrightNights/vehicles/cars.json
+++ /dev/null
@@ -1,323 +0,0 @@
-[
- {
- "id": "compact_atomic",
- "type": "vehicle",
- "name": "Atomic Compact",
- "blueprint": [
- [ "o-+-" ],
- [ "=##o" ],
- [ "o>+-" ]
- ],
- "parts": [
- { "x": 0, "y": 0, "part": "xlframe_vertical_2" },
- { "x": 0, "y": 0, "part": "seat" },
- { "x": 0, "y": 0, "part": "seatbelt" },
- { "x": 0, "y": 0, "part": "roof" },
- { "x": 0, "y": 0, "part": "controls" },
- { "x": 0, "y": 0, "part": "dashboard" },
- { "x": 0, "y": 0, "part": "vehicle_alarm" },
- { "x": 0, "y": 0, "part": "vehicle_clock" },
- { "x": 0, "y": 0, "part": "stereo" },
- { "x": 0, "y": 0, "part": "horn_car" },
- { "x": 0, "y": 1, "part": "xlframe_vertical_2" },
- { "x": 0, "y": 1, "part": "door" },
- { "x": 0, "y": -1, "part": "xlframe_vertical" },
- { "x": 0, "y": -1, "part": "door" },
- { "x": 1, "y": 0, "part": "xlframe_horizontal" },
- { "x": 1, "y": 0, "part": "windshield" },
- { "x": 1, "y": 0, "part": "headlight" },
- { "x": 1, "y": 0, "part": "wheel_steerable" },
- { "x": 1, "y": 1, "part": "xlframe_horizontal" },
- { "x": 1, "y": 1, "part": "xlhalfboard_vertical" },
- { "x": 1, "y": -1, "part": "xlframe_vertical" },
- { "x": 1, "y": -1, "part": "xlhalfboard_vertical" },
- { "x": -1, "y": 0, "part": "xlframe_ne" },
- { "x": -1, "y": 0, "part": "seat" },
- { "x": -1, "y": 0, "part": "seatbelt" },
- { "x": -1, "y": 0, "part": "roof" },
- { "x": -1, "y": 0, "part": "small_storage_battery" },
- { "x": -1, "y": -1, "part": "xlframe_horizontal" },
- { "x": -1, "y": -1, "part": "xlhalfboard_vertical" },
- { "x": -1, "y": 1, "part": "hdframe_nw" },
- { "x": -1, "y": 1, "part": "minireactor" },
- { "x": -1, "y": 1, "part": "engine_electric" },
- { "x": -1, "y": 1, "part": "halfboard_cover" },
- { "x": -1, "y": 1, "part": "plating_steel" },
- { "x": -2, "y": -1, "part": "xlframe_horizontal" },
- { "x": -2, "y": -1, "part": "xlhalfboard_sw" },
- { "x": -2, "y": -1, "part": "wheel" },
- { "x": -2, "y": 0, "part": "xlframe_horizontal" },
- { "x": -2, "y": 0, "part": "windshield" },
- { "x": -2, "y": 1, "part": "xlframe_horizontal" },
- { "x": -2, "y": 1, "part": "engine_electric" },
- { "x": -2, "y": 1, "part": "halfboard_vertical_2" },
- { "x": -2, "y": 1, "part": "wheel" },
- { "x": -2, "y": 1, "part": "plating_steel" }
- ],
- "items": [
- { "x": 0, "y": 0, "chance": 8, "item_groups": [ "car_misc" ] },
- { "x": -1, "y": 0, "chance": 8, "item_groups": [ "car_kit" ] }
- ]
- },
- {
- "id": "suv_atomic",
- "type": "vehicle",
- "name": "Atomic SUV",
- "blueprint": [
- [ "o-++-o" ],
- [ "+=##'|" ],
- [ "=Koo'|" ],
- [ "+=##'|" ],
- [ "o-++-o" ]
- ],
- "parts": [
- { "x": 0, "y": 0, "part": "frame_vertical_2" },
- { "x": 0, "y": 0, "part": "reclining_seat" },
- { "x": 0, "y": 0, "part": "seatbelt" },
- { "x": 0, "y": 0, "part": "controls" },
- { "x": 0, "y": 0, "part": "dashboard" },
- { "x": 0, "y": 0, "part": "vehicle_clock" },
- { "x": 0, "y": 0, "part": "vehicle_alarm" },
- { "x": 0, "y": 0, "part": "stereo" },
- { "x": 0, "y": 0, "part": "horn_car" },
- { "x": 0, "y": 0, "part": "roof" },
- { "x": 0, "y": 1, "part": "frame_vertical_2" },
- { "x": 0, "y": 1, "part": "box" },
- { "x": 0, "y": 1, "part": "roof" },
- { "x": 0, "y": 2, "part": "frame_vertical_2" },
- { "x": 0, "y": 2, "part": "reclining_seat" },
- { "x": 0, "y": 2, "part": "seatbelt" },
- { "x": 0, "y": 2, "part": "roof" },
- { "x": 0, "y": -1, "part": "frame_vertical" },
- { "x": 0, "y": -1, "part": "door" },
- { "x": 0, "y": 3, "part": "frame_vertical" },
- { "x": 0, "y": 3, "part": "door" },
- { "x": -1, "y": 0, "part": "frame_vertical_2" },
- { "x": -1, "y": 0, "part": "seat" },
- { "x": -1, "y": 0, "part": "seatbelt" },
- { "x": -1, "y": 0, "part": "roof" },
- { "x": -1, "y": 1, "part": "frame_vertical_2" },
- { "x": -1, "y": 1, "part": "seat" },
- { "x": -1, "y": 1, "part": "seatbelt" },
- { "x": -1, "y": 1, "part": "roof" },
- { "x": -1, "y": 2, "part": "frame_vertical_2" },
- { "x": -1, "y": 2, "part": "seat" },
- { "x": -1, "y": 2, "part": "seatbelt" },
- { "x": -1, "y": 2, "part": "roof" },
- { "x": -1, "y": -1, "part": "frame_vertical" },
- { "x": -1, "y": -1, "part": "door" },
- { "x": -1, "y": 3, "part": "frame_vertical" },
- { "x": -1, "y": 3, "part": "door" },
- { "x": 1, "y": 0, "part": "frame_horizontal" },
- { "x": 1, "y": 0, "part": "windshield" },
- { "x": 1, "y": 1, "part": "frame_horizontal" },
- { "x": 1, "y": 1, "part": "windshield" },
- { "x": 1, "y": 2, "part": "frame_horizontal" },
- { "x": 1, "y": 2, "part": "windshield" },
- { "x": 1, "y": -1, "part": "frame_vertical" },
- { "x": 1, "y": -1, "part": "windshield" },
- { "x": 1, "y": 3, "part": "frame_vertical" },
- { "x": 1, "y": 3, "part": "windshield" },
- { "x": 2, "y": 0, "part": "frame_horizontal" },
- { "x": 2, "y": 0, "part": "halfboard_horizontal" },
- { "x": 2, "y": 1, "part": "frame_horizontal" },
- { "x": 2, "y": 1, "part": "halfboard_horizontal" },
- { "x": 2, "y": 2, "part": "frame_horizontal" },
- { "x": 2, "y": 2, "part": "halfboard_horizontal" },
- { "x": 2, "y": -1, "part": "frame_nw" },
- { "x": 2, "y": -1, "part": "halfboard_nw" },
- { "x": 2, "y": -1, "part": "wheel_steerable" },
- { "x": 2, "y": -1, "part": "headlight" },
- { "x": 2, "y": 3, "part": "frame_ne" },
- { "x": 2, "y": 3, "part": "halfboard_ne" },
- { "x": 2, "y": 3, "part": "wheel_steerable" },
- { "x": 2, "y": 3, "part": "headlight" },
- { "x": -2, "y": 0, "part": "frame_vertical" },
- { "x": -2, "y": 0, "part": "trunk" },
- { "x": -2, "y": 0, "part": "roof" },
- { "x": -2, "y": 1, "part": "hdframe_vertical" },
- { "x": -2, "y": 1, "part": "minireactor" },
- { "x": -2, "y": 1, "part": "halfboard_cover" },
- { "x": -2, "y": 1, "part": "plating_steel" },
- { "x": -2, "y": 2, "part": "frame_vertical" },
- { "x": -2, "y": 2, "part": "trunk" },
- { "x": -2, "y": 2, "part": "roof" },
- { "x": -2, "y": -1, "part": "frame_vertical" },
- { "x": -2, "y": -1, "part": "halfboard_vertical" },
- { "x": -2, "y": 3, "part": "frame_vertical" },
- { "x": -2, "y": 3, "part": "halfboard_vertical" },
- { "x": -3, "y": -1, "part": "frame_horizontal" },
- { "x": -3, "y": -1, "part": "halfboard_sw" },
- { "x": -3, "y": -1, "part": "wheel" },
- { "x": -3, "y": 0, "part": "frame_horizontal" },
- { "x": -3, "y": 0, "part": "door_trunk" },
- { "x": -3, "y": 1, "part": "frame_horizontal_2" },
- { "x": -3, "y": 1, "part": "engine_electric_large" },
- { "x": -3, "y": 1, "part": "storage_battery" },
- { "x": -3, "y": 1, "part": "halfboard_vertical_2" },
- { "x": -3, "y": 1, "part": "plating_steel" },
- { "x": -3, "y": 2, "part": "frame_horizontal" },
- { "x": -3, "y": 2, "part": "door_trunk" },
- { "x": -3, "y": 3, "part": "frame_horizontal" },
- { "x": -3, "y": 3, "part": "halfboard_se" },
- { "x": -3, "y": 3, "part": "wheel" }
- ],
- "items": [
- { "x": 0, "y": 0, "chance": 14, "item_groups": [ "car_misc" ] },
- { "x": 0, "y": 0, "chance": 5, "item_groups": [ "snacks" ] },
- { "x": 0, "y": 2, "chance": 8, "item_groups": [ "car_misc" ] },
- { "x": 0, "y": 2, "chance": 2, "item_groups": [ "fast_food" ] },
- { "x": -2, "y": 0, "chance": 11, "item_groups": [ "car_kit" ] },
- { "x": -2, "y": 2, "chance": 15, "item_groups": [ "car_kit" ] },
- { "x": -2, "y": 2, "chance": 15, "items": [ "jack_small", "wheel" ] }
- ]
- },
- {
- "id": "car_atomic",
- "type": "vehicle",
- "name": "Atomic Car",
- "blueprint": [
- [ "o-++-o" ],
- [ "+=##'|" ],
- [ "+=##'|" ],
- [ "o-++-o" ]
- ],
- "parts": [
- { "x": 0, "y": 0, "part": "frame_vertical_2" },
- { "x": 0, "y": 0, "part": "reclining_seat" },
- { "x": 0, "y": 0, "part": "seatbelt" },
- { "x": 0, "y": 0, "part": "controls" },
- { "x": 0, "y": 0, "part": "dashboard" },
- { "x": 0, "y": 0, "part": "vehicle_clock" },
- { "x": 0, "y": 0, "part": "vehicle_alarm" },
- { "x": 0, "y": 0, "part": "stereo" },
- { "x": 0, "y": 0, "part": "horn_car" },
- { "x": 0, "y": 0, "part": "roof" },
- { "x": 0, "y": 1, "part": "frame_vertical_2" },
- { "x": 0, "y": 1, "part": "reclining_seat" },
- { "x": 0, "y": 1, "part": "seatbelt" },
- { "x": 0, "y": 1, "part": "roof" },
- { "x": 0, "y": -1, "part": "frame_vertical" },
- { "x": 0, "y": -1, "part": "door" },
- { "x": 0, "y": 2, "part": "frame_vertical" },
- { "x": 0, "y": 2, "part": "door" },
- { "x": -1, "y": 0, "part": "frame_vertical_2" },
- { "x": -1, "y": 0, "part": "seat" },
- { "x": -1, "y": 0, "part": "seatbelt" },
- { "x": -1, "y": 0, "part": "roof" },
- { "x": -1, "y": 1, "part": "frame_vertical_2" },
- { "x": -1, "y": 1, "part": "seat" },
- { "x": -1, "y": 1, "part": "seatbelt" },
- { "x": -1, "y": 1, "part": "roof" },
- { "x": -1, "y": -1, "part": "frame_vertical" },
- { "x": -1, "y": -1, "part": "door" },
- { "x": -1, "y": 2, "part": "frame_vertical" },
- { "x": -1, "y": 2, "part": "door" },
- { "x": 1, "y": 0, "part": "frame_horizontal" },
- { "x": 1, "y": 0, "part": "windshield" },
- { "x": 1, "y": 1, "part": "frame_horizontal" },
- { "x": 1, "y": 1, "part": "windshield" },
- { "x": 1, "y": -1, "part": "frame_vertical" },
- { "x": 1, "y": -1, "part": "windshield" },
- { "x": 1, "y": 2, "part": "frame_vertical" },
- { "x": 1, "y": 2, "part": "windshield" },
- { "x": 2, "y": 0, "part": "frame_horizontal" },
- { "x": 2, "y": 0, "part": "halfboard_horizontal" },
- { "x": 2, "y": 0, "part": "engine_electric_large" },
- { "x": 2, "y": 0, "part": "storage_battery" },
- { "x": 2, "y": 0, "part": "plating_steel" },
- { "x": 2, "y": 1, "part": "hdframe_horizontal" },
- { "x": 2, "y": 1, "part": "minireactor" },
- { "x": 2, "y": 1, "part": "halfboard_horizontal" },
- { "x": 2, "y": 1, "part": "plating_steel" },
- { "x": 2, "y": -1, "part": "frame_nw" },
- { "x": 2, "y": -1, "part": "halfboard_nw" },
- { "x": 2, "y": -1, "part": "wheel_steerable" },
- { "x": 2, "y": -1, "part": "headlight" },
- { "x": 2, "y": 2, "part": "frame_ne" },
- { "x": 2, "y": 2, "part": "halfboard_ne" },
- { "x": 2, "y": 2, "part": "wheel_steerable" },
- { "x": 2, "y": 2, "part": "headlight" },
- { "x": -2, "y": 0, "part": "frame_vertical" },
- { "x": -2, "y": 0, "part": "trunk" },
- { "x": -2, "y": 0, "part": "roof" },
- { "x": -2, "y": 1, "part": "frame_vertical" },
- { "x": -2, "y": 1, "part": "trunk" },
- { "x": -2, "y": 1, "part": "roof" },
- { "x": -2, "y": -1, "part": "frame_vertical" },
- { "x": -2, "y": -1, "part": "halfboard_vertical" },
- { "x": -2, "y": 2, "part": "frame_vertical" },
- { "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" },
- { "x": -3, "y": 0, "part": "frame_horizontal" },
- { "x": -3, "y": 0, "part": "door_trunk" },
- { "x": -3, "y": 1, "part": "frame_horizontal" },
- { "x": -3, "y": 1, "part": "door_trunk" },
- { "x": -3, "y": 2, "part": "frame_horizontal" },
- { "x": -3, "y": 2, "part": "halfboard_se" },
- { "x": -3, "y": 2, "part": "wheel" }
- ],
- "items": [
- { "x": 0, "y": 0, "chance": 14, "item_groups": [ "car_misc" ] },
- { "x": 0, "y": 0, "chance": 5, "item_groups": [ "snacks" ] },
- { "x": 0, "y": 1, "chance": 8, "item_groups": [ "car_misc" ] },
- { "x": 0, "y": 1, "chance": 2, "item_groups": [ "fast_food" ] },
- { "x": -2, "y": 0, "chance": 11, "item_groups": [ "car_kit" ] },
- { "x": -2, "y": 1, "chance": 15, "item_groups": [ "car_kit" ] },
- { "x": -2, "y": 1, "chance": 15, "items": [ "jack_small", "wheel" ] }
- ]
- },
- {
- "id": "car_atomic_flame",
- "type": "vehicle",
- "name": "Flaming Atomic Car",
- "blueprint": [
- [ "##++-o" ],
- [ "+=##'|" ],
- [ "+=##'|" ],
- [ "##++-o" ]
- ],
- "parts": [
- { "x": 0, "y": 0, "part": "frame_vertical_2" },
- { "x": 0, "y": 0, "part": "seat" },
- { "x": 0, "y": 0, "part": "seatbelt" },
- { "x": 0, "y": 0, "part": "controls" },
- { "x": 0, "y": 0, "part": "dashboard" },
- { "x": 0, "y": 0, "part": "roof" },
- { "x": 0, "y": 0, "part": "tank", "fuel": "napalm" },
- { "x": 0, "y": 1, "part": "frame_vertical_2" },
- { "x": 0, "y": 1, "part": "tank", "fuel": "gasoline" },
- { "x": 0, "y": -1, "part": "frame_vertical" },
- { "x": 0, "y": -1, "part": "tank", "fuel": "water_clean" },
- { "x": 0, "y": -1, "part": "turret_mount" },
- { "x": 0, "y": -1, "part": "laser_rifle" },
- { "x": 0, "y": 2, "part": "frame_vertical" },
- { "x": -1, "y": 0, "part": "frame_vertical_2" },
- { "x": -1, "y": 1, "part": "frame_vertical_2" },
- { "x": -1, "y": 1, "part": "minireactor" },
- { "x": -1, "y": -1, "part": "frame_vertical" },
- { "x": -1, "y": -1, "part": "wheel" },
- { "x": -1, "y": -1, "part": "storage_battery" },
- { "x": -1, "y": 2, "part": "frame_vertical" },
- { "x": -1, "y": 2, "part": "wheel" },
- { "x": -1, "y": 2, "part": "storage_battery" },
- { "x": 1, "y": 0, "part": "frame_horizontal" },
- { "x": 1, "y": 0, "part": "engine_electric_large" },
- { "x": 1, "y": 0, "part": "turret_mount" },
- { "x": 1, "y": 0, "part": "flamethrower" },
- { "x": 1, "y": 1, "part": "frame_horizontal" },
- { "x": 1, "y": 1, "part": "storage_battery_mount", "//": "to make the blazemod happy" },
- { "x": 1, "y": -1, "part": "frame_nw" },
- { "x": 1, "y": -1, "part": "wheel_steerable" },
- { "x": 1, "y": -1, "part": "turret_mount" },
- { "x": 1, "y": -1, "part": "watercannon" },
- { "x": 1, "y": 2, "part": "frame_ne" },
- { "x": 1, "y": 2, "part": "wheel_steerable" },
- { "x": 1, "y": 2, "part": "tank", "fuel": "water" },
- { "x": 1, "y": 2, "part": "turret_mount" },
- { "x": 1, "y": 2, "part": "m249", "ammo": 100 }
- ]
- }
-]
diff --git a/data/mods/CRT_EXPANSION/constructions/crt_constructions.json b/data/mods/CRT_EXPANSION/constructions/crt_constructions.json
new file mode 100644
index 0000000000000..39185bb094d08
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/constructions/crt_constructions.json
@@ -0,0 +1,137 @@
+[
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 6,
+ "byproducts": [ { "item": "withered", "charges": [ 1, 3 ] } ],
+ "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,
+ "byproducts": [ { "item": "withered", "charges": [ 1, 3 ] } ],
+ "pre_terrain": "t_grass_tall",
+ "post_terrain": "t_grass",
+ "tools": [ [ [ "scythe", -1 ], [ "sickle", -1 ] ] ]
+ },
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 6,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "byproducts": [ { "item": "withered", "charges": [ 2, 3 ] } ],
+ "pre_terrain": "t_grass",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 12,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "byproducts": [ { "item": "withered_bundle", "charges": [ 2, 3 ] } ],
+ "pre_terrain": "t_grass_long",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 12,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "byproducts": [ { "item": "withered_bundle", "charges": [ 3, 4 ] } ],
+ "pre_terrain": "t_grass_tall",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 6,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "byproducts": [ { "item": "withered", "charges": [ 1, 2 ] } ],
+ "pre_terrain": "t_grass_dead",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 6,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "byproducts": [ { "item": "withered", "charges": [ 1, 1 ] } ],
+ "pre_terrain": "t_grass_golf",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Cut Grass",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 6,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ] ],
+ "byproducts": [ { "item": "withered", "charges": [ 1, 1 ] } ],
+ "pre_terrain": "t_grass_white",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Chop Tree Trunk Into Logs",
+ "category": "FARM_WOOD",
+ "required_skills": [ [ "survival", 2 ] ],
+ "time": 50,
+ "qualities": [ [ { "id": "AXE", "level": 2 }, { "id": "SAW_W", "level": 1 } ] ],
+ "byproducts": [ { "item": "log", "count": [ 2, 3 ] } ],
+ "pre_terrain": "t_trunk",
+ "post_terrain": "t_dirt"
+ },
+ {
+ "type": "construction",
+ "description": "Dig a Pit",
+ "category": "DIG",
+ "required_skills": [ [ "survival", 0 ] ],
+ "time": 20,
+ "qualities": [ [ { "id": "DIG", "level": 2 } ] ],
+ "pre_terrain": "t_dirt",
+ "post_terrain": "t_pit_shallow"
+ },
+ {
+ "type": "construction",
+ "description": "Dig a Pit",
+ "category": "DIG",
+ "required_skills": [ [ "survival", 1 ] ],
+ "time": 30,
+ "qualities": [ [ { "id": "DIG", "level": 2 } ] ],
+ "pre_terrain": "t_pit_shallow",
+ "post_terrain": "t_pit"
+ },
+ {
+ "type": "construction",
+ "description": "Makeshift Wall",
+ "category": "OTHER",
+ "required_skills": [ [ "survival", 2 ] ],
+ "time": 30,
+ "qualities": [ [ { "id": "DIG", "level": 1 } ], [ { "id": "SAW_W", "level": 1 } ] ],
+ "components": [
+ [ [ "stick", 6 ], [ "2x4", 3 ] ],
+ [ [ "rock", 2 ], [ "pebble", 15 ] ],
+ [ [ "material_soil", 40 ] ],
+ [ [ "withered", 6 ], [ "withered_bundle", 2 ] ]
+ ],
+ "pre_terrain": "t_pit_shallow",
+ "post_terrain": "t_wall_stick"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/constructions/crt_terrain.json b/data/mods/CRT_EXPANSION/constructions/crt_terrain.json
new file mode 100644
index 0000000000000..8520bcb47dfff
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/constructions/crt_terrain.json
@@ -0,0 +1,25 @@
+[
+ {
+ "type": "terrain",
+ "id": "t_wall_stick",
+ "name": "stick wall",
+ "description": "A cheap wall of planks and sticks with a log pillar to keep it together. It is capable of supporting an upper level or roof. Dirt and stones make the wall secure. Somewhat flammable.",
+ "symbol": "LINE_OXOX",
+ "color": "tan",
+ "move_cost": 0,
+ "flags": [ "FLAMMABLE_HARD", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL" ],
+ "connects_to": "WALL",
+ "bash": {
+ "str_min": 6,
+ "str_max": 15,
+ "sound": "crunch!",
+ "sound_fail": "krick!",
+ "ter_set": "t_null",
+ "items": [
+ { "item": "stick", "count": [ 0, 2 ] },
+ { "item": "pebble", "charges": [ 1, 5 ] },
+ { "item": "splinter", "count": [ 1, 4 ] }
+ ]
+ }
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/crt_materials.json b/data/mods/CRT_EXPANSION/crt_materials.json
new file mode 100644
index 0000000000000..a6e6c4d269069
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/crt_materials.json
@@ -0,0 +1,41 @@
+[
+ {
+ "type": "material",
+ "ident": "rubber",
+ "name": "Rubber",
+ "density": 12,
+ "soft": false,
+ "bash_resist": 5,
+ "cut_resist": 1,
+ "acid_resist": 8,
+ "fire_resist": 1,
+ "elec_resist": 20,
+ "chip_resist": 9,
+ "repaired_with": [ "plastic_chunk", "chunk_rubber" ],
+ "salvaged_into": "chunk_rubber",
+ "dmg_adj": [ "ripped", "torn", "shredded", "tattered" ],
+ "bash_dmg_verb": "ripped",
+ "cut_dmg_verb": "cut",
+ "burn_data": [
+ { "fuel": 1, "smoke": 3, "burn": 1, "chance": 10 },
+ { "fuel": 1, "smoke": 3, "burn": 2 },
+ { "fuel": 1, "smoke": 3, "burn": 3 }
+ ]
+ },
+ {
+ "type": "AMMO",
+ "id": "chunk_rubber",
+ "category": "spare_parts",
+ "price": 75,
+ "name": "chunk of rubber",
+ "name_plural": "chunks of rubber",
+ "symbol": "*",
+ "color": "dark_gray",
+ "description": "A chunk of useful rubber, can be molded easily.",
+ "material": "rubber",
+ "volume": 1,
+ "weight": 38,
+ "ammo_type": "components",
+ "flags": "NO_SALVAGE"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_ammo.json b/data/mods/CRT_EXPANSION/items/crt_ammo.json
new file mode 100644
index 0000000000000..47b5f17b8fb22
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_ammo.json
@@ -0,0 +1,76 @@
+[
+ {
+ "type": "AMMO",
+ "id": "pellet",
+ "price": 1000,
+ "name": "lead pellets",
+ "symbol": "=",
+ "color": "light_gray",
+ "description": "A round tin of small light grain .177 lead pellets. These are common, tipped field pellets that can deal some light damage but are generally used for plinking.",
+ "material": "steel",
+ "volume": "200ml",
+ "weight": 2,
+ "ammo_type": "pellets",
+ "damage": 4,
+ "dispersion": 100,
+ "count": 100,
+ "stack_size": 200,
+ "loudness": 15,
+ "recoil": 26,
+ "effects": [ "NOGIB", "NEVER_MISFIRES" ]
+ },
+ {
+ "id": "dhp_pellet",
+ "copy-from": "pellet",
+ "type": "AMMO",
+ "name": "domed HP pellets",
+ "description": "A stable, heavier grain lead pellet with the purpose of expanding upon hitting a target for maximized damage, the dome shape allows it to pack quite a punch for something so small",
+ "material": "steel",
+ "symbol": "=",
+ "color": "dark_gray",
+ "relative": { "price": 300, "damage": 6, "pierce": 1, "dispersion": -20 }
+ },
+ {
+ "id": "hp_pellet",
+ "copy-from": "pellet",
+ "type": "AMMO",
+ "name": "tipped HP pellets",
+ "//": "Based off of the Gamo Redfire pellet, the plastic tip pushes back into the lead pleet to cause a greater deformation and ballooning effect; makes birds explode!",
+ "description": "A medium grain lead pellet tipped with a pointed bit of hard plastic with the purpose of maximum expansion upon hitting a target.",
+ "material": "steel",
+ "symbol": "=",
+ "color": "dark_gray",
+ "relative": { "price": 200, "damage": 3, "pierce": 3 }
+ },
+ {
+ "id": "alloy_pellet",
+ "copy-from": "pellet",
+ "type": "AMMO",
+ "name": "alloy pellets",
+ "description": "An gimmicky alloy pellet with the purpose of reaching a higher velocity than a normal lead pellet for breaking the sound barrier resulting in an extremely loud crack, not so useful for stealth.",
+ "material": "steel",
+ "symbol": "=",
+ "color": "dark_gray",
+ "relative": { "price": 500, "pierce": 2, "loudness": 25, "dispersion": 20 }
+ },
+ {
+ "type": "AMMO",
+ "id": "pulsesb",
+ "price": 1000,
+ "name": "pulse round",
+ "symbol": "=",
+ "color": "light_blue",
+ "description": "A helical magazine of hollow-point alloy bullets propelled by pockets of primer. Not the most lethal thing out there, but it still packs a punch without the worry of having a stray shot seriously damaging the environment.",
+ "material": [ "steel", "powder" ],
+ "volume": "250ml",
+ "weight": 2,
+ "ammo_type": "pulsesb",
+ "damage": { "damage_type": "bash", "amount": 3 },
+ "dispersion": 150,
+ "count": 250,
+ "stack_size": 200,
+ "loudness": 20,
+ "recoil": 100,
+ "effects": [ "NOGIB" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_ammotypes.json b/data/mods/CRT_EXPANSION/items/crt_ammotypes.json
new file mode 100644
index 0000000000000..525856a61c226
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_ammotypes.json
@@ -0,0 +1,14 @@
+[
+ {
+ "type": "ammunition_type",
+ "id": "pellets",
+ "name": "lead pellets",
+ "default": "pellet"
+ },
+ {
+ "type": "ammunition_type",
+ "id": "pulsesb",
+ "name": "pulse ammo",
+ "default": "pulsesb"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_armor.json b/data/mods/CRT_EXPANSION/items/crt_armor.json
new file mode 100644
index 0000000000000..b6f0274154ae7
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_armor.json
@@ -0,0 +1,356 @@
+[
+ {
+ "id": "crt_mask",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T face mask",
+ "description": "This is the C.R.I.T standard issue face mask, lined with kevlar for extra protection. A few filters provide decent enviromental safety, but it was not intended for extended use. It has a basic integrated HUD.",
+ "weight": 5000,
+ "volume": 4,
+ "price": 2500000,
+ "to_hit": 1,
+ "material": [ "neoprene", "kevlar" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "EYES", "MOUTH" ],
+ "coverage": 100,
+ "encumbrance": 20,
+ "warmth": 30,
+ "material_thickness": 2,
+ "environmental_protection": 10,
+ "qualities": [ [ "GLARE", 1 ] ],
+ "flags": [ "WATERPROOF", "STURDY", "SUN_GLASSES", "VARSIZE", "GAS_PROOF", "WATCH", "THERMOMETER" ]
+ },
+ {
+ "id": "crt_boots",
+ "copy-from": "crt_la_boots",
+ "type": "ARMOR",
+ "name": "pair of C.R.I.T boots",
+ "description": "C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and hygenic during long-term missions while absorbing shock and heat from outside-sources. Superalloy mesh and rubber offer quite a bit of chemical protection as well. Decently heavy though",
+ "color": "dark_gray",
+ "weight": 1500,
+ "price": 250000,
+ "warmth": 40,
+ "encumbrance": 17,
+ "material_thickness": 5,
+ "enviromental_protection": 5
+ },
+ {
+ "id": "crt_la_boots",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "pair of C.R.I.T LA boots",
+ "name_plural": "pairs of C.R.I.T LA boots",
+ "description": "C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor variant was created for missions in warmer climates. The LA boots keep most of the old features of the standard issue boots but trade in protection for easier movement.",
+ "weight": 1060,
+ "volume": 6,
+ "price": 100000,
+ "to_hit": -1,
+ "bashing": 2,
+ "material": [ "rubber", "superalloy", "nomex" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "FEET" ],
+ "coverage": 100,
+ "encumbrance": 10,
+ "warmth": 25,
+ "material_thickness": 3,
+ "environmental_protection": 2,
+ "flags": [ "VARSIZE", "WATERPROOF", "STURDY" ]
+ },
+ {
+ "id": "crt_gloves",
+ "copy-from": "gloves_tactical",
+ "type": "ARMOR",
+ "name": "pair of C.R.I.T fingertip-less gloves",
+ "description": "C.R.I.T standard-issue gloves. Made with superalloy mesh for those with gene-modding and/or mutations while still allowing greater manipulation of items and moderate protection.",
+ "encumbrance": 12,
+ "coverage": 85,
+ "warmth": 20,
+ "material": [ "kevlar", "superalloy" ],
+ "material_thickness": 2,
+ "flags": [ "ALLOWS_NATURAL_ATTACKS", "STURDY", "WATERPROOF" ]
+ },
+ {
+ "id": "crt_gloves_liner",
+ "copy-from": "crt_gloves",
+ "type": "ARMOR",
+ "name": "pair of C.R.I.T fingertip-less liners",
+ "description": "C.R.I.T standard-issue glove liners. Made with neroprene and rubber mesh for warmth and fingertip-less for those with gene-modding and/or mutations while still allowing greater manipulation of items and moderate protection.",
+ "encumbrance": 3,
+ "coverage": 85,
+ "warmth": 15,
+ "material": [ "neoprene", "rubber" ],
+ "material_thickness": 1,
+ "flags": [ "ALLOWS_NATURAL_ATTACKS", "SKINTIGHT" ]
+ },
+ {
+ "id": "crt_backpack",
+ "copy-from": "molle_pack",
+ "type": "ARMOR",
+ "name": "C.R.I.T backpack",
+ "description": "C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this smaller pack strikes a fine balance between storage space and encumbrance and allows a larger weapon to be holstered, drawing and holstering is still rather awkward even with the magnetized clips, but practice helps.",
+ "color": "dark_gray",
+ "storage": 36,
+ "encumbrance": 7,
+ "material_thickness": 2,
+ "material": [ "leather", "kevlar" ],
+ "use_action": { "type": "holster", "max_volume": 13, "draw_cost": 150, "skills": [ "smg", "shotgun", "rifle" ] },
+ "flags": [ "BELTED", "OVERSIZE", "NO_QUICKDRAW", "STURDY", "WATERPROOF" ]
+ },
+ {
+ "id": "crt_chestrig",
+ "copy-from": "chestrig",
+ "type": "ARMOR",
+ "name": "C.R.I.T chestrig",
+ "description": "C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots for light-armor padding.",
+ "color": "dark_gray",
+ "material": [ "kevlar", "plastic" ],
+ "flags": [ "STURDY", "WATER_FRIENDLY", "ALLOWS_NATURAL_ATTACKS" ]
+ },
+ {
+ "id": "crt_legguard",
+ "copy-from": "legguard_hard",
+ "type": "ARMOR",
+ "name": "C.R.I.T leg guards",
+ "description": "C.R.I.T standard-issue leg armor. Simple design and durable material allows for easy movement and the padding keeps the legs safe and warm in colder conditions.",
+ "color": "dark_gray",
+ "material": [ "superalloy", "rubber", "neoprene" ],
+ "weight": 1300,
+ "volume": 6,
+ "price": 20000,
+ "warmth": 17,
+ "symbol": ":",
+ "flags": [ "STURDY", "BELTED", "BLOCK_WHILE_WORN", "WATER_FRIENDLY" ]
+ },
+ {
+ "id": "crt_armguard",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "pair of C.R.I.T arm guards",
+ "name_plural": "pairs of C.R.I.T arm guards",
+ "description": "A pair of arm guards made from superalloy molded upon neoprene, and then insulated with rubber. They are sturdy and will block attacks, but they are ridiculously heavy.",
+ "weight": 1820,
+ "volume": 12,
+ "price": 200000,
+ "to_hit": 1,
+ "material": [ "superalloy", "neoprene", "rubber" ],
+ "symbol": "[",
+ "color": "white",
+ "covers": [ "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 20,
+ "warmth": 17,
+ "material_thickness": 4,
+ "environmental_protection": 3,
+ "flags": [ "STURDY", "BELTED", "BLOCK_WHILE_WORN", "WATER_FRIENDLY" ]
+ },
+ {
+ "id": "crt_belt",
+ "copy-from": "survivor_belt_notools",
+ "type": "ARMOR",
+ "name": "C.R.I.T web belt",
+ "description": "C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on your hip.",
+ "color": "dark_gray",
+ "material": [ "leather", "brass" ],
+ "flags": [ "WATER_FRIENDLY" ]
+ },
+ {
+ "id": "crt_iduster",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T infantry duster",
+ "description": "A thick full-length duster coat with rubber insulation. Mildly encumbering, but rather protective against any anti-infantry electrical discharges from the robots. Has several pockets for storage.",
+ "weight": 2120,
+ "volume": 23,
+ "price": 25500,
+ "to_hit": -1,
+ "material": [ "neoprene", "rubber", "kevlar" ],
+ "symbol": "[",
+ "color": "dark_green",
+ "covers": [ "TORSO", "ARMS", "LEGS" ],
+ "coverage": 100,
+ "encumbrance": 20,
+ "storage": 18,
+ "warmth": 20,
+ "material_thickness": 3,
+ "environmental_protection": 9,
+ "flags": [ "POCKETS", "OUTER", "COLLAR", "STURDY", "WATERPROOF", "RAINPROOF" ]
+ },
+ {
+ "id": "ds_monitor",
+ "type": "TOOL_ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T S-I G.E.A.R",
+ "description": "C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your spinal cord, this device improves your overall physique and provides basic information on your surroundings.",
+ "weight": 500,
+ "volume": 0,
+ "price": 25000000,
+ "to_hit": -3,
+ "material": [ "plastic", "steel" ],
+ "symbol": "[",
+ "color": "light_green",
+ "coverage": 0,
+ "encumbrance": 0,
+ "warmth": 0,
+ "artifact_data": { "charge_type": "ARTC_NULL", "effects_worn": [ "AEP_ALL_UP" ] },
+ "material_thickness": 10,
+ "environmental_protection": 0,
+ "flags": [ "ONLY_ONE", "TRADER_AVOID", "BELTED" ]
+ },
+ {
+ "id": "ds_armor",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "R&D Engineering Suit",
+ "description": "An airtight, flexible suit of woven composite fibers complete with segmented plates of armor. A complex system digitizes items in an individual pocket universe for storage while built in joint-torsion ratchets generate the neccessary energy required to power the interface.",
+ "weight": 13460,
+ "volume": 57,
+ "price": 900000000,
+ "to_hit": -5,
+ "bashing": 8,
+ "material": [ "steel", "nomex", "kevlar" ],
+ "symbol": "[",
+ "color": "light_gray",
+ "covers": [ "HEAD", "EYES", "MOUTH", "TORSO", "LEGS", "ARMS", "HANDS", "FEET" ],
+ "coverage": 100,
+ "encumbrance": 25,
+ "warmth": 15,
+ "storage": 50,
+ "material_thickness": 3,
+ "environmental_protection": 13,
+ "use_action": "WEATHER_TOOL",
+ "flags": [ "ELECTRIC_IMMUNE", "GAS_PROOF", "VARSIZE", "OVERSIZE", "STURDY", "ONLY_ONE", "WATERPROOF", "CLIMATE_CONTROL" ]
+ },
+ {
+ "id": "crt_aarmor",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T Armored Anomaly Suit",
+ "description": "A relatively simple suit of armor. A suit of woven composite fibers combined with a cleansuit core and strategically placed segmented kevlar plates keep the suit light-weight and the one wearing it alive while offering superb resistance to the elements and ambient radiation. ",
+ "weight": 11460,
+ "volume": 45,
+ "price": 900000000,
+ "to_hit": -5,
+ "bashing": 8,
+ "material": [ "kevlar", "nomex", "plastic" ],
+ "symbol": "[",
+ "color": "light_green",
+ "covers": [ "TORSO", "LEGS", "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 25,
+ "warmth": 25,
+ "storage": 5,
+ "material_thickness": 5,
+ "environmental_protection": 25,
+ "flags": [ "VARSIZE", "WATERPROOF", "HOOD", "COLLAR", "RAINPROOF", "STURDY", "RAD_RESIST", "OUTER" ]
+ },
+ {
+ "id": "crt_legrig",
+ "type": "ARMOR",
+ "name": "C.R.I.T drop leg pouch",
+ "name_plural": "C.R.I.T drop leg pouches",
+ "description": "A set of pouches that can be worn on the thighs using buckled straps. This variety is more compact and is favored by the C.R.I.T for its ease of use.",
+ "weight": 255,
+ "volume": 2,
+ "price": 3000,
+ "material": [ "plastic", "cotton", "rubber" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "LEGS" ],
+ "coverage": 30,
+ "encumbrance": 3,
+ "storage": 6,
+ "material_thickness": 2,
+ "flags": [ "VARSIZE", "WATER_FRIENDLY", "BELTED", "RAINPROOF" ]
+ },
+ {
+ "id": "crt_earmor",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T Enforcer armor assembly",
+ "description": "A series of plates, guards and buckles which assemble into a suit of sturdy body-armor which usually goes over other armor. Overlapping steel plates on top of kevlar plates cover vast expanses as the armor juts off in places so it can deflect attacks. Built with the idea that comfort is less important than safety, this heavy suit is difficult to move about in but highly protective. Various adjustable conectors such as straps and clips hold it together.",
+ "weight": 21460,
+ "volume": 45,
+ "price": 900000000,
+ "to_hit": -5,
+ "bashing": 8,
+ "material": [ "steel", "kevlar" ],
+ "symbol": "[",
+ "color": "cyan",
+ "covers": [ "TORSO", "LEGS", "ARMS" ],
+ "coverage": 90,
+ "encumbrance": 35,
+ "warmth": 20,
+ "storage": 7,
+ "material_thickness": 4,
+ "environmental_protection": 5,
+ "flags": [ "VARSIZE", "STURDY", "BELTED" ]
+ },
+ {
+ "id": "crt_earmor_boots",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "pair of C.R.I.T Enforcer docks",
+ "name_plural": "pairs of C.R.I.T Enforcer docks",
+ "description": "C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of oversized feet which clamp down onto your owm footwear keep your feet out of harms way. It looks terrible and feels clunky unlike most of C.R.I.T's designs, but they do seem to be worth using if you were to be in the middle of a warzone.",
+ "weight": 2060,
+ "volume": 6,
+ "price": 100000,
+ "to_hit": -1,
+ "bashing": 2,
+ "material": [ "kevlar", "superalloy" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "FEET" ],
+ "coverage": 100,
+ "encumbrance": 30,
+ "warmth": 5,
+ "material_thickness": 3,
+ "environmental_protection": 4,
+ "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "OUTER", "OVERSIZE" ]
+ },
+ {
+ "id": "crt_sarmor",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T Soldier Suit",
+ "description": "A suit of modern body-armor. Strategically placed superalloy plates keep the suit's weight minimal while kevlar plates other areas and a lining of soft neoprene pads areas for extra comfort. Most importantly, this can be worn comfortably under other armor.",
+ "weight": 5439,
+ "volume": 25,
+ "price": 900000000,
+ "material": [ "neoprene", "kevlar", "superalloy" ],
+ "symbol": "[",
+ "color": "light_blue",
+ "covers": [ "TORSO", "LEGS", "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 7,
+ "warmth": 20,
+ "storage": 10,
+ "material_thickness": 2,
+ "environmental_protection": 3,
+ "flags": [ "VARSIZE", "STURDY" ]
+ },
+ {
+ "id": "crt_warmor",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T Lone Wolf Series Armor",
+ "description": "A matte black suit of outdated and bulky looking plate armor fitted onto a soft kevlar body-suit. Retrofitted with new armor improvements, this heavy armor will definitely protect you from practically anything. Just make sure you can actually walk with it on though.",
+ "weight": 42563,
+ "volume": 50,
+ "price": 100000000,
+ "material": [ "hardsteel", "steel", "kevlar" ],
+ "symbol": "[",
+ "color": "light_green",
+ "covers": [ "TORSO", "LEGS", "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 40,
+ "warmth": 25,
+ "storage": 16,
+ "material_thickness": 3,
+ "environmental_protection": 10,
+ "use_action": { "type": "holster", "max_volume": 15, "draw_cost": 155, "skills": [ "smg", "shotgun", "rifle", "launcher" ] },
+ "flags": [ "VARSIZE", "WATERPROOF", "OUTER", "OVERSIZE", "COLLAR", "STURDY", "NO_QUICKDRAW" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_clothes.json b/data/mods/CRT_EXPANSION/items/crt_clothes.json
new file mode 100644
index 0000000000000..55662d70a4833
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_clothes.json
@@ -0,0 +1,153 @@
+[
+ {
+ "id": "crt_jacket",
+ "copy-from": "jacket_army",
+ "type": "ARMOR",
+ "name": "C.R.I.T blouse",
+ "description": "C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage. Super-flex neoprene keeps one warm in moderately cold weather while a sleek design keeps it from being too flashy. A zipper at the back and front allows for quick donning and doffing.",
+ "flags": [ "COLLAR", "VARSIZE", "WATERPROOF", "STURDY", "FANCY", "ALLOWS_NATURAL_ATTACKS" ],
+ "color": "gray",
+ "material": [ "neoprene", "kevlar" ],
+ "warmth": 35
+ },
+ {
+ "id": "crt_pants",
+ "copy-from": "pants_army",
+ "type": "ARMOR",
+ "name": "C.R.I.T trousers",
+ "description": "C.R.I.T standard-issue trousers. Durable, lightweight and has ample storage. Super-flex neoprene keeps one warm in moderately cold weather.",
+ "color": "gray",
+ "material": [ "neoprene", "kevlar" ],
+ "warmth": 35,
+ "coverage": 100,
+ "flags": [ "WATERPROOF", "VARSIZE", "STURDY" ]
+ },
+ {
+ "id": "crt_dress_pants",
+ "type": "ARMOR",
+ "name": "C.R.I.T trousers",
+ "description": "C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight and it offers ok pockets. Super-flex neoprene keeps one warm in moderately cold weather.",
+ "color": "gray",
+ "symbol": "[",
+ "material": [ "cotton", "neoprene" ],
+ "warmth": 17,
+ "covers": [ "LEGS" ],
+ "encumbrance": 10,
+ "coverage": 100,
+ "material_thickness": 2,
+ "flags": [ "WATERPROOF", "VARSIZE", "FANCY" ]
+ },
+ {
+ "id": "crt_helmet_liner",
+ "copy-from": "helmet_liner",
+ "type": "ARMOR",
+ "name": "C.R.I.T helmet liner",
+ "description": "C.R.I.T standard-issue helmet liner. Keeps the noggin warm.",
+ "color": "gray",
+ "material": [ "neoprene" ],
+ "material_thickness": 1,
+ "warmth": 35
+ },
+ {
+ "id": "crt_dress_shoes",
+ "type": "ARMOR",
+ "name": "pair of C.R.I.T shoes",
+ "name_plural": "pairs of C.R.I.T dress shoes",
+ "description": "A sleek pair of dress shoes. Fancy but easy on the eyes.",
+ "weight": 1060,
+ "volume": 6,
+ "price": 100000,
+ "to_hit": -1,
+ "bashing": 2,
+ "material": [ "cotton", "plastic", "rubber" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "FEET" ],
+ "coverage": 65,
+ "encumbrance": 15,
+ "warmth": 15,
+ "material_thickness": 1,
+ "environmental_protection": 2,
+ "flags": [ "VARSIZE", "WATERPROOF", "FANCY" ]
+ },
+ {
+ "id": "crt_rec_gloves",
+ "type": "ARMOR",
+ "name": "pair of C.R.I.T rec gloves",
+ "description": "C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are made with cotton with a neoprene lining for grip-pads and warmth. ",
+ "weight": 558,
+ "volume": 1,
+ "price": 100000,
+ "to_hit": -1,
+ "material": [ "cotton", "neoprene" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "HANDS" ],
+ "coverage": 90,
+ "encumbrance": 4,
+ "warmth": 10,
+ "material_thickness": 1,
+ "environmental_protection": 2,
+ "flags": [ "SKINTIGHT", "WATER_FRIENDLY" ]
+ },
+ {
+ "id": "crt_belt",
+ "copy-from": "survivor_belt_notools",
+ "type": "ARMOR",
+ "name": "C.R.I.T web belt",
+ "description": "C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your hip.",
+ "color": "dark_blue",
+ "material": [ "leather", "brass" ],
+ "use_action": {
+ "type": "holster",
+ "holster_prompt": "Sheath blade",
+ "holster_msg": "You sheath your %s",
+ "min_volume": 0,
+ "max_volume": 4,
+ "draw_cost": 5,
+ "flags": [ "BELT_CLIP", "SHEATH_KNIFE", "SHEATH_SWORD" ]
+ },
+ "flags": [ "STURDY", "WAIST" ]
+ },
+ {
+ "id": "crt_rec_duster",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T rec duster",
+ "description": "A waterproofed full-length duster coat. Made with neoprene, comfort and functionality meet together to form a fancy but sleek contemporary design. It has several pockets for storage.",
+ "weight": 1520,
+ "volume": 23,
+ "price": 25500,
+ "to_hit": -1,
+ "material": [ "cotton", "neoprene", "rubber" ],
+ "symbol": "[",
+ "color": "dark_green",
+ "covers": [ "TORSO", "ARMS", "LEGS" ],
+ "coverage": 100,
+ "encumbrance": 13,
+ "storage": 5,
+ "warmth": 15,
+ "material_thickness": 1,
+ "environmental_protection": 2,
+ "flags": [ "POCKETS", "OUTER", "OVERSIZE", "COLLAR", "WATERPROOF", "RAINPROOF", "FANCY" ]
+ },
+ {
+ "id": "crt_rec_hat",
+ "type": "ARMOR",
+ "name": "C.R.I.T rec hat",
+ "description": "Functionality meets fashion in this waterproofed C.R.I.T standard issue rec cover. Thick enough to provide warmth in colder weather, this hat shares the same sleek design of most of C.R.I.T's gear.",
+ "weight": 253,
+ "volume": 5,
+ "price": 4500,
+ "material": [ "cotton", "neoprene", "rubber" ],
+ "symbol": "[",
+ "color": "white",
+ "covers": [ "HEAD" ],
+ "coverage": 50,
+ "encumbrance": 10,
+ "warmth": 15,
+ "material_thickness": 1,
+ "environmental_protection": 1,
+ "flags": [ "FANCY", "VARSIZE", "RAINPROOF", "WATERPROOF" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_generic.json b/data/mods/CRT_EXPANSION/items/crt_generic.json
new file mode 100644
index 0000000000000..ccc184f2b6fa2
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_generic.json
@@ -0,0 +1,15 @@
+[
+ {
+ "type": "GENERIC",
+ "id": "withered_bundle",
+ "category": "spare_parts",
+ "name": "withered plant bundle",
+ "description": "A bundle of plant matter",
+ "weight": 80,
+ "volume": 2,
+ "material": [ "paper" ],
+ "symbol": ";",
+ "color": "green",
+ "flags": [ "TRADER_AVOID" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_gun.json b/data/mods/CRT_EXPANSION/items/crt_gun.json
new file mode 100644
index 0000000000000..5c43e5e807dd0
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_gun.json
@@ -0,0 +1,313 @@
+[
+ {
+ "id": "crt_laser_pistol",
+ "type": "GUN",
+ "name": "C.R.I.T .5 LP",
+ "description": "Experimental low power sidearm under development in C.R.I.T R&D, the .5 LP is a relatively weak but accurate laser pistol. The double-barrel design compensates for the lack of raw power and yet the gun manages to be relatively easy to aim and lightweight due to the superalloy construction.",
+ "weight": 650,
+ "volume": 3,
+ "price": 1000000,
+ "to_hit": -2,
+ "bashing": 3,
+ "material": [ "superalloy", "plastic" ],
+ "symbol": "(",
+ "color": "cyan",
+ "skill": "pistol",
+ "range": 22,
+ "ranged_damage": 6,
+ "pierce": 10,
+ "dispersion": 150,
+ "durability": 9,
+ "loudness": 14,
+ "ups_charges": 11,
+ "reload": 220,
+ "modes": [ [ "DEFAULT", "double", 2 ] ],
+ "valid_mod_locations": [
+ [ "accessories", 1 ],
+ [ "emitter", 1 ],
+ [ "grip", 1 ],
+ [ "lens", 1 ],
+ [ "rail", 1 ],
+ [ "sights", 1 ],
+ [ "stock", 1 ],
+ [ "underbarrel", 1 ]
+ ],
+ "ammo_effects": [ "LASER", "INCENDIARY" ],
+ "flags": [ "NEVER_JAMS", "NO_UNLOAD" ]
+ },
+ {
+ "id": "crt_laser_gatling",
+ "type": "GUN",
+ "name": "C.R.I.T Chain Laser",
+ "description": "A tried and true favorite from the bowels of R&D hell. Based off of a researcher's video on three taped-together .5 LPs on a hand held power drill, this gun is a relatively light weapon for the amount of UPS and destruction it can cause.",
+ "weight": 2650,
+ "volume": 10,
+ "price": 1000000,
+ "to_hit": -2,
+ "bashing": 3,
+ "material": [ "superalloy", "plastic" ],
+ "symbol": "(",
+ "color": "cyan",
+ "skill": "launcher",
+ "range": 25,
+ "ranged_damage": { "damage_type": "heat", "amount": 8 },
+ "pierce": 8,
+ "dispersion": 150,
+ "durability": 9,
+ "loudness": 28,
+ "ups_charges": 10,
+ "reload": 220,
+ "modes": [ [ "DEFAULT", "burst", 12 ] ],
+ "valid_mod_locations": [
+ [ "accessories", 1 ],
+ [ "emitter", 1 ],
+ [ "grip", 1 ],
+ [ "lens", 1 ],
+ [ "rail", 1 ],
+ [ "sights", 1 ],
+ [ "stock", 1 ],
+ [ "underbarrel", 1 ]
+ ],
+ "ammo_effects": [ "LASER", "INCENDIARY" ],
+ "flags": [ "NEVER_JAMS", "NO_UNLOAD" ]
+ },
+ {
+ "id": "crt_laser_carbine",
+ "type": "GUN",
+ "name": "C.R.I.T Laser Carbine",
+ "description": "A lightweight laser gun developed by C.R.I.T R&D. Mainly developed to test out a new breakthrough in laser weapons.",
+ "weight": 2150,
+ "volume": 8,
+ "price": 1100000,
+ "to_hit": -1,
+ "bashing": 8,
+ "material": [ "steel", "plastic" ],
+ "symbol": "(",
+ "color": "magenta",
+ "skill": "smg",
+ "range": 28,
+ "ranged_damage": 12,
+ "pierce": 14,
+ "dispersion": 150,
+ "durability": 8,
+ "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "3 rd.", 3 ] ],
+ "loudness": 12,
+ "ups_charges": 22,
+ "reload": 0,
+ "valid_mod_locations": [
+ [ "accessories", 4 ],
+ [ "emitter", 1 ],
+ [ "grip", 1 ],
+ [ "lens", 1 ],
+ [ "rail", 1 ],
+ [ "sights", 1 ],
+ [ "stock", 1 ],
+ [ "underbarrel", 1 ]
+ ],
+ "ammo_effects": [ "LASER", "INCENDIARY" ],
+ "flags": [ "NEVER_JAMS", "NO_UNLOAD" ]
+ },
+ {
+ "id": "crt_fire_glove",
+ "type": "GUN",
+ "name": "C.R.I.T Fire Glove",
+ "description": "Experimental CQB weapon system under development in C.R.I.T R&D.",
+ "weight": 650,
+ "volume": 3,
+ "price": 1000000,
+ "to_hit": 1,
+ "bashing": 8,
+ "material": [ "superalloy", "plastic" ],
+ "symbol": "(",
+ "color": "red",
+ "skill": "pistol",
+ "range": 2,
+ "ranged_damage": { "damage_type": "heat", "amount": 15 },
+ "pierce": 10,
+ "dispersion": 500,
+ "durability": 9,
+ "loudness": 10,
+ "ups_charges": 5,
+ "modes": [ [ "DEFAULT", "blast", 1 ] ],
+ "valid_mod_locations": [
+ [ "accessories", 1 ],
+ [ "emitter", 1 ],
+ [ "grip", 1 ],
+ [ "lens", 1 ],
+ [ "rail", 1 ],
+ [ "sights", 1 ],
+ [ "stock", 1 ],
+ [ "underbarrel", 1 ]
+ ],
+ "ammo_effects": [ "STREAM", "INCENDIARY", "EXPLODE" ],
+ "flags": [ "NEVER_JAMS", "NO_UNLOAD", "UNARMED_WEAPON", "DURABLE_MELEE" ]
+ },
+ {
+ "id": "pelletgun",
+ "type": "GUN",
+ "reload_noise_volume": 7,
+ "symbol": "(",
+ "color": "gray",
+ "name": "pellet gun",
+ "description": "A surprisingly powerful airgun that can reliably hunt small game. The small lead or alloy pellets that can be chambered provide it decent powet in every shot. It's fairly accurate and can be somewhat as damaging as a .22 short, but the break action charging system requires some arm strength to load a pellet.",
+ "price": 9900,
+ "//": "You can get a decent Ruger .177 at walmart for $99",
+ "material": [ "steel", "plastic" ],
+ "flags": [ "STR_RELOAD" ],
+ "skill": "rifle",
+ "ammo": "pellets",
+ "weight": 4023,
+ "volume": 8,
+ "bashing": 10,
+ "to_hit": -1,
+ "range": 17,
+ "ranged_damage": 5,
+ "dispersion": 120,
+ "durability": 8,
+ "loudness": 18,
+ "clip_size": 1,
+ "reload": 300,
+ "modes": [ [ "DEFAULT", "single", 1 ] ],
+ "valid_mod_locations": [ [ "accessories", 2 ], [ "sights", 1 ], [ "stock", 1 ] ]
+ },
+ {
+ "id": "ds_plasma_cutter",
+ "type": "GUN",
+ "name": "Plasma Cutter",
+ "description": "Experimental cutting tool under development in C.R.I.T R&D. It fires an extremely hot wave of plasma that slices into materials.",
+ "weight": 1650,
+ "volume": 3,
+ "price": 1000000,
+ "to_hit": -2,
+ "bashing": 3,
+ "material": [ "superalloy", "steel" ],
+ "symbol": "(",
+ "color": "yellow",
+ "skill": "pistol",
+ "range": 2,
+ "ranged_damage": { "damage_type": "heat", "amount": 5 },
+ "pierce": 12,
+ "dispersion": 100,
+ "durability": 10,
+ "loudness": -150,
+ "ups_charges": 40,
+ "ammo": "plasma",
+ "clip_size": 12,
+ "reload": 170,
+ "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ] ],
+ "ammo_effects": [ "PLASMA", "INCENDIARY", "DRAW_LASER_BEAM" ],
+ "flags": [ "NEVER_JAMS", "NO_UNLOAD" ]
+ },
+ {
+ "id": "ds_rivet_gun",
+ "type": "GUN",
+ "name": "Rivet Driver",
+ "description": "Experimental double purpose tool under development in C.R.I.T R&D. It takes a regular nail and then enlongates it within a fraction of a second before firing it out, upon reaching a target, the fragile stake explodes into shards.",
+ "weight": 1650,
+ "volume": 3,
+ "price": 1000000,
+ "to_hit": -2,
+ "bashing": 3,
+ "material": [ "superalloy", "steel" ],
+ "symbol": "(",
+ "color": "gray",
+ "skill": "pistol",
+ "range": 4,
+ "ranged_damage": { "damage_type": "stab", "amount": 1 },
+ "pierce": 12,
+ "dispersion": 220,
+ "durability": 10,
+ "loudness": 12,
+ "ammo": "nail",
+ "clip_size": 25,
+ "reload": 200,
+ "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ] ],
+ "ammo_effects": [ "EXPLOSIVE", "FRAG" ],
+ "flags": [ "NEVER_JAMS" ]
+ },
+ {
+ "id": "ds_line_gun",
+ "type": "GUN",
+ "name": "Line Gun",
+ "description": "Experimental high power cutting tool under development in C.R.I.T R&D. It fires plasma in a wide line for slicing into dense materials.",
+ "weight": 2650,
+ "volume": 6,
+ "price": 1000000,
+ "to_hit": -1,
+ "bashing": 8,
+ "material": [ "superalloy", "steel" ],
+ "symbol": "(",
+ "color": "red",
+ "skill": "rifle",
+ "range": 18,
+ "ranged_damage": { "damage_type": "electric", "amount": 45 },
+ "pierce": 18,
+ "dispersion": 100,
+ "durability": 10,
+ "loudness": -55,
+ "ups_charges": 100,
+ "ammo": "plasma",
+ "clip_size": 5,
+ "reload": 320,
+ "modes": [ [ "DEFAULT", "semi-auto", 1 ] ],
+ "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ] ],
+ "ammo_effects": [ "WIDE", "LASER" ],
+ "flags": [ "NEVER_JAMS", "NO_UNLOAD", "SLOW_WIELD" ]
+ },
+ {
+ "id": "ds_pulse_rifle",
+ "type": "GUN",
+ "name": "Pulse Rifle",
+ "description": "Experimental tri-barrel sub-sonic rifle under development in C.R.I.T R&D. Great for enclosed spaces and mobs of enemies. Shoots alloy rounds which instantly mushroom out upon impact.",
+ "weight": 2250,
+ "volume": 4,
+ "price": 1000000,
+ "to_hit": -2,
+ "bashing": 5,
+ "material": [ "superalloy", "steel" ],
+ "symbol": "(",
+ "color": "gray",
+ "skill": "rifle",
+ "range": 12,
+ "ranged_damage": { "damage_type": "stab", "amount": 1 },
+ "pierce": 0,
+ "dispersion": 150,
+ "durability": 10,
+ "loudness": 10,
+ "ammo": "pulsesb",
+ "clip_size": 175,
+ "reload": 15,
+ "modes": [ [ "BURST", "3 rd.", 3 ] ],
+ "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ], [ "stock", 1 ] ],
+ "ammo_effects": [ "NOGIB", "BEANBAG", "EXPLOSIVE" ],
+ "flags": [ "NEVER_JAMS" ]
+ },
+ {
+ "id": "ds_ripper",
+ "type": "GUN",
+ "name": "Ripper",
+ "description": "Experimental EM saw under development in C.R.I.T R&D. Great for distance cutting of material.",
+ "weight": 2250,
+ "volume": 4,
+ "price": 1000000,
+ "to_hit": -2,
+ "cutting": 15,
+ "material": [ "superalloy", "steel" ],
+ "symbol": "(",
+ "color": "yellow",
+ "skill": "rifle",
+ "range": 10,
+ "ranged_damage": 20,
+ "pierce": 3,
+ "dispersion": 150,
+ "durability": 10,
+ "loudness": 10,
+ "ups_charges": 10,
+ "ammo": "pulsesb",
+ "clip_size": 8,
+ "reload": 450,
+ "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "REACH", "em field saw", 5, [ "MELEE", "REACH_ATTACK" ] ] ],
+ "ammo_effects": [ "LIGHTNING", "MESSY" ],
+ "flags": [ "NEVER_JAMS" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_gunmods.json b/data/mods/CRT_EXPANSION/items/crt_gunmods.json
new file mode 100644
index 0000000000000..3ea4322333c4d
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_gunmods.json
@@ -0,0 +1,102 @@
+[
+ {
+ "id": "flare_gmod",
+ "type": "GUNMOD",
+ "name": "Underslung flare launcher",
+ "description": "A small barrel which launches signal flares. However, due to its awkward position, it has lower accuracy compared to an actual flaregun.",
+ "weight": 500,
+ "volume": 1,
+ "price": 8000,
+ "material": "steel",
+ "symbol": ":",
+ "color": "light_red",
+ "location": "underbarrel",
+ "mod_targets": [ "pistol", "rifle", "smg", "shotgun" ],
+ "gun_data": { "ammo": "signal_flare", "skill": "launcher", "dispersion": 250, "durability": 8, "clip_size": 1 },
+ "dispersion_modifier": 30,
+ "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ]
+ },
+ {
+ "id": "bthk_stock",
+ "type": "GUNMOD",
+ "name": "butt hook stock",
+ "description": ", A military-grade stock which folds reducing the guns volume. The weight and the pivoting hook which latches onto your forearm allows for greater stability. ",
+ "weight": 500,
+ "volume": 0.5,
+ "integral_volume": 0,
+ "price": 42000,
+ "material": [ "plastic", "steel" ],
+ "symbol": ":",
+ "color": "dark_gray",
+ "location": "stock",
+ "mod_targets": [ "pistol", "smg", "rifle", "shotgun" ],
+ "dispersion_modifier": -20,
+ "handling_modifier": 2,
+ "min_skills": [ [ "weapon", 1 ] ],
+ "flags": [ "NEEDS_UNFOLD", "COLLAPSIBLE_STOCK" ]
+ },
+ {
+ "id": "beam_difractor",
+ "copy-from": "beam_scatterer",
+ "type": "GUNMOD",
+ "name": "diffracting lens",
+ "description": "A set of optics made to fit on laser weapons, which will diffract the laser beam into several lower powered beams. This slightly increases point-blank damage and makes it difficult to not hit, but reduces range",
+ "range_modifier": -7,
+ "damage_modifier": 2,
+ "ammo_effects": [ "SHOT" ],
+ "min_skills": [ [ "weapon", 1 ] ],
+ "mod_targets": [ "rifle", "pistol", "smg", "shotgun" ]
+ },
+ {
+ "id": "flash_acc",
+ "type": "GUNMOD",
+ "name": "tactical flashlight",
+ "description": "A compact flashlight which is mounted to the side of your weapon, not powerful, but good enough for tight hallways.",
+ "weight": 250,
+ "volume": 0.5,
+ "integral_volume": 0,
+ "price": 42000,
+ "material": [ "plastic", "steel" ],
+ "symbol": ":",
+ "color": "dark_gray",
+ "location": "accessories",
+ "mod_targets": [ "pistol", "smg", "rifle", "shotgun" ],
+ "dispersion_modifier": 10,
+ "max_charges": 200,
+ "initial_charges": 200,
+ "charges_per_use": 1,
+ "ammo": "battery",
+ "use_action": {
+ "type": "transform",
+ "msg": "You turn the tactical flashlight on.",
+ "target": "flash_acc_on",
+ "active": true,
+ "need_charges": 1,
+ "need_charges_msg": "The tactical flashlight's batteries are dead."
+ }
+ },
+ {
+ "id": "flash_acc_on",
+ "type": "GUNMOD",
+ "name": "tactical flashlight (on)",
+ "description": "A compact flashlight which is attatched to the side of your weapon, not powerful, but good enough for tight hallways.",
+ "weight": 250,
+ "volume": 0.5,
+ "integral_volume": 0,
+ "price": 42000,
+ "material": [ "plastic", "steel" ],
+ "symbol": ":",
+ "color": "dark_gray",
+ "location": "accessories",
+ "mod_targets": [ "pistol", "smg", "rifle", "shotgun" ],
+ "dispersion_modifier": 10,
+ "revert_to": "flash_acc",
+ "max_charges": 200,
+ "initial_charges": 200,
+ "charges_per_use": 1,
+ "turns_per_charge": 12,
+ "flags": [ "LIGHT_75", "CHARGEDIM" ],
+ "ammo": "battery",
+ "use_action": { "type": "transform", "msg": "You turn the tactical flashlight off.", "target": "flash_acc" }
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_item_groups.json b/data/mods/CRT_EXPANSION/items/crt_item_groups.json
new file mode 100644
index 0000000000000..79474f9f889ce
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_item_groups.json
@@ -0,0 +1,44 @@
+[
+ {
+ "type": "item_group",
+ "id": "gunmod_common",
+ "//": "Common gunmods typically owned by citizens and found in many locations.",
+ "items": [ [ "bthk_stock", 50 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "gunmod_milspec",
+ "//": "Military specification gunmods found only at military sites.",
+ "items": [ [ "flare_gmod", 25 ] ]
+ },
+ {
+ "id": "clothing_soldier_set",
+ "type": "item_group",
+ "subtype": "collection",
+ "//": "Standard (non-winter) set of clothes worn by soldiers and paramilitary forces.",
+ "items": [
+ { "group": "clothing_soldier_shirt" },
+ { "item": "crt_jacket" },
+ { "item": "crt_pants" },
+ { "item": "crt_boots", "prob": 5 },
+ { "item": "crt_helmet", "prob": 5 },
+ { "item": "crt_gloves", "prob": 5 }
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "military",
+ "items": [
+ [ "crt_belt", 20 ],
+ [ "crt_jacket", 40 ],
+ [ "crt_pants", 50 ],
+ [ "crt_boots", 10 ],
+ [ "crt_helmet", 10 ],
+ [ "crt_gloves", 10 ],
+ [ "crt_gasmask", 3 ],
+ [ "crt_em_vest", 3 ],
+ [ "flare_gmod", 10 ],
+ [ "crt_backpack", 8 ]
+ ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_recipes.json b/data/mods/CRT_EXPANSION/items/crt_recipes.json
new file mode 100644
index 0000000000000..1c5a6ff7b3f8e
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_recipes.json
@@ -0,0 +1,19 @@
+[
+ {
+ "result": "withered_bundle",
+ "type": "recipe",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_OTHER",
+ "skill_used": "survival",
+ "difficulty": 0,
+ "time": 400,
+ "autolearn": true,
+ "components": [ [ [ "withered", 3 ] ] ]
+ },
+ {
+ "result": "withered_bundle",
+ "type": "uncraft",
+ "time": 300,
+ "components": [ [ [ "withered", 3 ] ] ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_toolarmor.json b/data/mods/CRT_EXPANSION/items/crt_toolarmor.json
new file mode 100644
index 0000000000000..825d9ebfcb659
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_toolarmor.json
@@ -0,0 +1,222 @@
+[
+ {
+ "id": "crt_gasmask",
+ "type": "TOOL_ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T gasmask (off)",
+ "description": "This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line electronics and lined with kevlar for extra protection in order to keep one's head where it should be. Various filters and other high tech wizardry allow for enhanced oxygen intake and safety even under bombardment. It has an integrated HUD and the option to turn it on for more features.",
+ "weight": 5000,
+ "volume": 4,
+ "price": 2500000,
+ "to_hit": 1,
+ "max_charges": 200,
+ "initial_charges": 25,
+ "use_action": {
+ "type": "transform",
+ "msg": "C.R.T HUD booting up...",
+ "target": "crt_gasmask_on",
+ "active": true,
+ "need_charges": 1,
+ "need_charges_msg": "Power levels too low for safe boot up"
+ },
+ "material": [ "plastic", "kevlar" ],
+ "symbol": "[",
+ "color": "dark_gray",
+ "covers": [ "EYES", "MOUTH" ],
+ "coverage": 100,
+ "encumbrance": 50,
+ "warmth": 20,
+ "material_thickness": 3,
+ "environmental_protection": 16,
+ "qualities": [ [ "GLARE", 1 ] ],
+ "flags": [ "WATERPROOF", "STURDY", "PARTIAL_DEAF", "SUN_GLASSES", "VARSIZE", "GAS_PROOF", "USE_UPS", "NO_UNLOAD" ]
+ },
+ {
+ "id": "crt_gasmask_on",
+ "type": "TOOL_ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T gasmask (on)",
+ "description": "This is the C.R.I.T Spec Ops modified gasmask. It is currently on and draining power for the HUD, low-level nightvision and other protective elements.",
+ "weight": 5000,
+ "volume": 4,
+ "price": 2500000,
+ "to_hit": -3,
+ "max_charges": 250,
+ "initial_charges": 0,
+ "turns_per_charge": 1,
+ "revert_to": "crt_gasmask",
+ "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "C.R.T HUD deactivating.", "target": "crt_gasmask" },
+ "material": [ "plastic", "kevlar" ],
+ "symbol": "[",
+ "color": "light_green",
+ "covers": [ "EYES", "MOUTH" ],
+ "coverage": 100,
+ "encumbrance": 20,
+ "warmth": 50,
+ "artifact_data": { "charge_type": "ARTC_SOLAR", "effects_worn": [ "AEP_ALL_UP" ] },
+ "material_thickness": 2,
+ "environmental_protection": 20,
+ "qualities": [ [ "GLARE", 2 ] ],
+ "flags": [
+ "WATERPROOF",
+ "STURDY",
+ "PARTIAL_DEAF",
+ "SUN_GLASSES",
+ "FLASH_PROTECTION",
+ "ELECTRIC_IMMUNE",
+ "SWIM_GOGGLES",
+ "VARSIZE",
+ "NV10_EFFECT",
+ "TRADER_AVOID",
+ "GAS_PROOF",
+ "USE_UPS",
+ "NO_UNLOAD"
+ ]
+ },
+ {
+ "id": "crt_em_vest",
+ "type": "TOOL_ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T EM vest (off)",
+ "description": "The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech filaments and reactive servos which protects its wearer and assists in movement at the cost high power usage. It is commonly worn by C.R.I.T Spec Ops for its ease of use and manuverability. Turn it on for extra protection and movement.",
+ "weight": 10000,
+ "volume": 25,
+ "price": 7000000,
+ "to_hit": -3,
+ "bashing": 6,
+ "material": [ "kevlar", "superalloy" ],
+ "symbol": "[",
+ "color": "light_gray",
+ "covers": [ "TORSO" ],
+ "max_charges": 250,
+ "initial_charges": 25,
+ "charges_per_use": 1,
+ "use_action": {
+ "type": "transform",
+ "msg": "C.R.I.T EM booting up...",
+ "target": "crt_em_vest_on",
+ "active": true,
+ "need_charges": 1,
+ "need_charges_msg": "Power levels too low for safe bootup..."
+ },
+ "artifact_data": { "charge_type": "ARTC_SOLAR" },
+ "coverage": 85,
+ "encumbrance": 50,
+ "storage": 10,
+ "warmth": 10,
+ "material_thickness": 4,
+ "environmental_protection": 4,
+ "flags": [ "WATER_FRIENDLY", "STURDY", "VARSIZE", "USE_UPS", "NO_UNLOAD", "OUTER" ]
+ },
+ {
+ "id": "crt_em_vest_on",
+ "type": "TOOL_ARMOR",
+ "category": "armor",
+ "name": "C.R.I.T EM vest (on)",
+ "description": "The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech filaments, reactive servos and a generator which pumps a crystallized liquid that protects its wearer from most heavy combat situations at the cost of high power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is currently in suit form and draining your UPS power at high rates.",
+ "weight": 10000,
+ "volume": 25,
+ "price": 7000000,
+ "to_hit": -3,
+ "bashing": 6,
+ "material": [ "kevlar", "superalloy" ],
+ "symbol": "[",
+ "color": "light_green",
+ "covers": [ "TORSO", "LEGS", "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 5,
+ "storage": 10,
+ "warmth": 60,
+ "material_thickness": 6,
+ "environmental_protection": 16,
+ "max_charges": 250,
+ "initial_charges": 0,
+ "turns_per_charge": 1,
+ "revert_to": "crt_em_vest",
+ "use_action": { "type": "transform", "menu_text": "Turn off armor", "msg": "C.R.I.T E.M powering off...", "target": "crt_em_vest" },
+ "artifact_data": {
+ "charge_type": "ARTC_SOLAR",
+ "effects_carried": [ "AEP_ALL_UP" ],
+ "effects_wielded": [ "AEP_ALL_UP" ],
+ "effects_worn": [ "AEP_ALL_UP", "AEP_SPEED_UP" ]
+ },
+ "flags": [
+ "WATERPROOF",
+ "STURDY",
+ "VARSIZE",
+ "RAD_PROOF",
+ "kevlar_padded",
+ "ELECTRIC_IMMUNE",
+ "TRADER_AVOID",
+ "USE_UPS",
+ "NO_UNLOAD",
+ "OUTER"
+ ]
+ },
+ {
+ "id": "crt_helmet",
+ "copy-from": "helmet_army",
+ "type": "TOOL_ARMOR",
+ "name": "C.R.I.T helmet (off)",
+ "description": "C.R.T standard-issue helmet. Protects the noggin and has a stretch of insulated steel mesh for neck warmth and protection.",
+ "color": "gray",
+ "material": [ "kevlar", "hardsteel" ],
+ "material_thickness": 2,
+ "warmth": 20,
+ "max_charges": 100,
+ "initial_charges": 100,
+ "ammo": "battery",
+ "use_action": {
+ "type": "transform",
+ "msg": "You turn the %s on.",
+ "target": "crt_helmet_on",
+ "active": true,
+ "need_charges": 1,
+ "need_charges_msg": "The helmet's batteries are dead."
+ },
+ "flags": [ "WATERPROOF", "STURDY", "VARSIZE", "RAD_PROOF", "kevlar_padded", "TRADER_AVOID", "USE_UPS", "NO_UNLOAD", "OUTER" ]
+ },
+ {
+ "id": "crt_helmet_on",
+ "copy-from": "helmet_army",
+ "type": "TOOL_ARMOR",
+ "name": "C.R.I.T helmet (on)",
+ "description": "C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of insulated steel mesh for neck warmth and protection. A tactically dim flashlight is attatched to the side. This light is currently on and drawing power.",
+ "color": "gray",
+ "material": [ "kevlar", "hardsteel" ],
+ "flags": [
+ "WATERPROOF",
+ "STURDY",
+ "VARSIZE",
+ "kevlar_padded",
+ "USE_UPS",
+ "NO_UNLOAD",
+ "OUTER",
+ "LIGHT_35",
+ "CHARGEDIM",
+ "NO_UNLOAD",
+ "TRADER_AVOID"
+ ],
+ "material_thickness": 2,
+ "warmth": 20,
+ "revert_to": "crt_helmet",
+ "max_charges": 100,
+ "initial_charges": 100,
+ "charges_per_use": 1,
+ "turns_per_charge": 20,
+ "ammo": "battery",
+ "use_action": { "type": "transform", "msg": "You turn the %s off.", "target": "crt_helmet" }
+ },
+ {
+ "id": "crt_canteen",
+ "copy-from": "canteen",
+ "type": "ARMOR",
+ "name": "C.R.I.T canteen",
+ "description": "A simple, durable steel canteen that can heat up food with built in plutonium heating elements.",
+ "color": "dark_gray",
+ "material": "hardsteel",
+ "material_thickness": 1,
+ "qualities": [ [ "BOIL", 1 ], [ "CONTAIN", 1 ] ],
+ "use_action": "HOTPLATE"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/items/crt_tools.json b/data/mods/CRT_EXPANSION/items/crt_tools.json
new file mode 100644
index 0000000000000..c331f167d2661
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/items/crt_tools.json
@@ -0,0 +1,182 @@
+[
+ {
+ "id": "crt_mess_kit",
+ "type": "TOOL",
+ "name": "C.R.I.T mess kit",
+ "description": "C.R.I.T standard-issue mess kit designed for ease of transport. Based off of the normal military mess kit, but made to be telescopic, the parts are made from a thin sheet of a stainless superalloy composite and are insulated with ceramic. Sadly, this compact reimagining loses much of its battery life but does have a rather small solar panel installed. Also comes with an absurdly small integrated fpoon and knife spatula set!",
+ "weight": 850,
+ "volume": 3,
+ "price": 6500,
+ "to_hit": -1,
+ "bashing": 2,
+ "material": [ "superalloy", "ceramic" ],
+ "symbol": ";",
+ "color": "green",
+ "ammo": "battery",
+ "sub": "hotplate",
+ "initial_charges": 75,
+ "max_charges": 75,
+ "charges_per_use": 1,
+ "qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ],
+ "artifact_data": { "charge_type": "ARTC_SOLAR" },
+ "use_action": "HOTPLATE"
+ },
+ {
+ "id": "knife_crt",
+ "copy-from": "diveknife",
+ "type": "TOOL",
+ "category": "weapons",
+ "name": "C.R.I.T service knife",
+ "description": "C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked pry bar at the bottom for opening simple things and bashing in heads. Matte black finish helps it avoid flash in dim-light situations and tanto tip allows for light-armor penetration. Blade length allows for pretty decent reach as well. Something makes you feel... connected to the knife.",
+ "color": "dark_gray",
+ "material": [ "hardsteel" ],
+ "artifact_data": { "charge_type": "ARTC_NULL", "effects_wielded": [ "AEP_SAP_LIFE" ] },
+ "weight": 350,
+ "volume": 3,
+ "price": 20000,
+ "damage": { "damage_type": "cold", "amount": 100 },
+ "cutting": 7,
+ "bashing": 5,
+ "to_hit": 2,
+ "durability": 15,
+ "symbol": ";",
+ "qualities": [ [ "CUT_FINE", 1 ] ],
+ "use_action": "CROWBAR",
+ "flags": [ "SHEATH_KNIFE", "UNARMED_WEAPON", "STAB", "UNBREAKABLE_MELEE" ],
+ "techniques": [ "WBLOCK_2", "UHAND", "PROD" ]
+ },
+ {
+ "id": "crt_knuckledusters",
+ "type": "TOOL",
+ "category": "weapons",
+ "name": "C.R.I.T Knuckledusters",
+ "description": "C.R.I.T CQB knuckledusters. Not too different from any normal pair, but the .",
+ "color": "dark_gray",
+ "material": [ "hardsteel" ],
+ "artifact_data": { "charge_type": "ARTC_NULL", "effects_wielded": [ "AEP_SAP_LIFE" ] },
+ "weight": 350,
+ "volume": 3,
+ "price": 20000,
+ "bashing": 10,
+ "to_hit": 1,
+ "durability": 15,
+ "symbol": "8",
+ "flags": [ "UNARMED_WEAPON", "UNBREAKABLE_MELEE" ],
+ "techniques": [ "WBLOCK_2", "UHAND", "HOOK" ]
+ },
+ {
+ "id": "sword_crt",
+ "type": "TOOL",
+ "category": "weapons",
+ "name": "C.R.I.T Reso-blade",
+ "description": "C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade oddly lacks sharpness, and yet upon closer oberservation, a hum of energy thrums from within.",
+ "color": "dark_gray",
+ "material": [ "hardsteel" ],
+ "artifact_data": {
+ "charge_type": "ARTC_NULL",
+ "effects_wielded": [ "AEP_DEX_UP", "AEP_SPEED_UP", "AEP_SPEED_UP", "AEP_SPEED_UP", "AEP_SAP_LIFE" ]
+ },
+ "weight": 2500,
+ "volume": 10,
+ "price": 20000000,
+ "cutting": 5,
+ "bashing": 5,
+ "to_hit": 2,
+ "symbol": ";",
+ "qualities": [ [ "BUTCHER", 7 ] ],
+ "flags": [ "UNBREAKABLE_MELEE" ],
+ "techniques": [ "WBLOCK_2", "tec_feint", "tec_counter", "BERSERK", "DSINERTIAL" ]
+ },
+ {
+ "id": "blade_crt",
+ "type": "TOOL",
+ "category": "weapons",
+ "name": "Dragon Slayer",
+ "description": "C.R.I.T R&D's masterpiece weapon. Alien runes adorn the ridiculously oversized carbon steel blade and a hum of energy thrums from within. Merely brushing your fingers over the weapon brings a feeling of invincibility. It looks more like a raw heap of iron than a sword. The thing is... can you wield it?",
+ "color": "dark_gray",
+ "material": [ "hardsteel" ],
+ "artifact_data": {
+ "charge_type": "ARTC_NULL",
+ "effects_wielded": [
+ "AEP_ALL_UP",
+ "AEP_STR_UP",
+ "AEP_STR_UP",
+ "AEP_CARRY_MORE",
+ "AEP_SPEED_UP",
+ "AEP_SPEED_UP",
+ "AEP_SPEED_UP",
+ "AEP_SPEED_UP",
+ "AEP_SPEED_UP",
+ "AEP_SPEED_UP",
+ "AEP_RESIST_ELECTRICITY",
+ "AEP_SAP_LIFE"
+ ]
+ },
+ "weight": 55000,
+ "volume": 30,
+ "price": 20000000,
+ "cutting": 80,
+ "bashing": 95,
+ "to_hit": 5,
+ "symbol": ";",
+ "qualities": [ [ "PRY", 1 ] ],
+ "use_action": "CROWBAR",
+ "flags": [ "UNBREAKABLE_MELEE" ],
+ "techniques": [ "WBLOCK_3", "tec_feint", "tec_counter", "BERSERK", "DSBI", "DSINERTIAL" ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "crt_hatchet",
+ "symbol": ";",
+ "color": "light_gray",
+ "name": "C.R.I.T hatchet",
+ "description": "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee weapon, and is useful both for chopping things and for use as a hammer.",
+ "price": 2500,
+ "price_postapoc": 5000,
+ "material": [ "hardsteel", "plastic", "rubber" ],
+ "techniques": [ "CHOP", "INERTIAL", "SMASH" ],
+ "weight": 1807,
+ "volume": 2,
+ "bashing": 8,
+ "cutting": 10,
+ "flags": [ "DURABLE_MELEE", "BELT_CLIP", "NONCONDUCTIVE" ],
+ "to_hit": 1,
+ "category": "weapons",
+ "qualities": [ [ "AXE", 10 ], [ "CUT", 1 ], [ "HAMMER", 2 ], [ "HAMMER_FINE", 1 ], [ "BUTCHER", 15 ] ]
+ },
+ {
+ "id": "crt_etool",
+ "type": "TOOL",
+ "name": "C.R.I.T entrenching tool",
+ "description": "C.R.I.T standard-issue collapsible spade. A built in vibration system that is powered by the user's movement allows the smaller spade to clear soil like a larger shovel.",
+ "weight": 578,
+ "volume": 3,
+ "price": 4000,
+ "to_hit": 1,
+ "bashing": 6,
+ "cutting": 6,
+ "material": [ "hardsteel", "plastic" ],
+ "techniques": [ "CHOP", "SHOVE", "SMASH" ],
+ "symbol": "/",
+ "color": "dark_gray",
+ "qualities": [ [ "DIG", 3 ], [ "BUTCHER", -15 ], [ "COOK", 1 ] ],
+ "flags": [ "DURABLE_MELEE", "NEEDS_UNFOLD", "BELT_CLIP" ]
+ },
+ {
+ "id": "crt_nstick",
+ "type": "TOOL",
+ "name": "C.R.I.T night stick",
+ "description": "C.R.I.T standard issue guard tonfa. The length allows for great reach and the domed tip allows for greater impact than a cylinder style baton. Blood seems to soak into the length...",
+ "weight": 1028,
+ "volume": 5,
+ "price": 4000,
+ "to_hit": 2,
+ "bashing": 16,
+ "material": [ "hardsteel", "plastic", "rubber" ],
+ "artifact_data": { "charge_type": "ARTC_NULL", "effects_wielded": [ "AEP_SAP_LIFE" ] },
+ "techniques": [ "WBLOCK_3", "tec_break", "UHAND", "SMASH", "INERTIAL" ],
+ "symbol": "/",
+ "color": "dark_gray",
+ "flags": [ "UNBREAKABLE_MELEE", "BELT_CLIP" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/martial/CRT_Bladework.json b/data/mods/CRT_EXPANSION/martial/CRT_Bladework.json
new file mode 100644
index 0000000000000..fcadacac2a4f0
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/martial/CRT_Bladework.json
@@ -0,0 +1,141 @@
+[
+ {
+ "id": "manual_crt_blade",
+ "copy-from": "book_martial",
+ "type": "GENERIC",
+ "name": "C.R.I.T Blade-work manual",
+ "name_plural": "C.R.I.T Blade-work manuals",
+ "description": "An advanced military manual on C.R.I.T Blade-work."
+ },
+ {
+ "id": "book_martial",
+ "type": "item_group",
+ "items": [ [ "manual_crt_blade", 5 ] ]
+ },
+ {
+ "type": "martial_art",
+ "id": "style_crt_blade",
+ "name": "C.R.I.T Blade-work",
+ "description": "An offensive style that is centered around rapid slashes and prodding. Each attack landed increases your speed by 3 and offers other combat bonuses",
+ "initiate": [ "Initiate blade-work.", "%s initiates blade-work." ],
+ "arm_block": 3,
+ "leg_block": 99,
+ "static_buffs": [
+ {
+ "id": "crt_blade_static",
+ "name": "C.R.I.T Calculation",
+ "description": "DEX provides accuracy and minor cut and stab damage with slight piercing capability.",
+ "unarmed_allowed": true,
+ "flat_bonuses": [
+ [ "damage", "stab", "dex", 0.15 ],
+ [ "damage", "cut", "dex", 0.5 ],
+ [ "arpen", "stab", "dex", 0.1 ],
+ [ "arpen", "cut", "dex", 0.2 ],
+ [ "hit", "dex", 0.3 ]
+ ]
+ }
+ ],
+ "onhit_buffs": [
+ {
+ "id": "crt_blade_hit_buff",
+ "name": "C.R.I.T Intensity",
+ "description": "+3 Atk Speed and other small bonuses per stack. Bash damage decreases by 10 percent per stack. Max of 10 stacks",
+ "unarmed_allowed": false,
+ "min_unarmed": 1,
+ "buff_duration": 10,
+ "max_stacks": 10,
+ "flat_bonuses": [
+ [ "hit", "dex", 0.015 ],
+ [ "damage", "bash", -0.1 ],
+ [ "damage", "stab", "dex", 0.0075 ],
+ [ "damage", "cut", "dex", 0.015 ],
+ [ "arpen", "cut", "dex", 0.005 ],
+ [ "movecost", "dex", -0.075 ],
+ [ "movecost", -3 ]
+ ]
+ }
+ ],
+ "techniques": [ "tec_crt_blade_normal", "tec_crt_blade_rapid", "tec_crt_blade_precise", "tec_crt_blade_arpen", "tec_feint" ],
+ "weapons": [
+ "sword_crt",
+ "blade_crt",
+ "knife_crt",
+ "knife_combat",
+ "knife_hunting",
+ "knife_rambo",
+ "knife_rm42",
+ "knife_steak",
+ "knife_trench",
+ "knife_folding",
+ "makeshift_knife",
+ "primitive_knife",
+ "pockknife",
+ "copper_knife",
+ "diveknife",
+ "kris",
+ "switchblade",
+ "xacto"
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_blade_normal",
+ "name": "Shimmer Flurry",
+ "min_unarmed": 1,
+ "min_melee": 1,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "damage", "bash", 0.8 ], [ "damage", "cut", 0.7 ], [ "damage", "stab", 0.6 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.15 ], [ "damage", "cut", "dex", 0.2 ], [ "movecost", "dex", -0.5 ] ],
+ "messages": [ "You release a blinding slash at %s", " slashes at %s" ],
+ "stun_dur": 0.05
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_blade_rapid",
+ "name": "Tipped Intent",
+ "min_unarmed": 2,
+ "min_melee": 2,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 0.65 ], [ "damage", "bash", 0.55 ], [ "damage", "cut", 0.6 ], [ "damage", "stab", 0.55 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.01 ], [ "damage", "cut", "dex", 0.015 ], [ "movecost", "dex", -0.45 ] ],
+ "messages": [ "You swiftly jab your weapon into %s joints", " swiftly jabs their weapon into %s" ],
+ "stun_dur": 0.15
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_blade_precise",
+ "name": "Decisive Blow",
+ "min_unarmed": 3,
+ "min_melee": 3,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 0.8 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 1.05 ], [ "damage", "stab", 1.0 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.1 ], [ "damage", "cut", "dex", 0.5 ], [ "movecost", "dex", -0.2 ] ],
+ "crit_tec": true,
+ "messages": [ "You steady your hand and release a piercing jab at %s", " releases a piercing jab at %s" ],
+ "stun_dur": 1.5
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_blade_arpen",
+ "name": "End Slash",
+ "min_unarmed": 5,
+ "min_melee": 5,
+ "weighting": 2,
+ "unarmed_allowed": true,
+ "mult_bonuses": [
+ [ "movecost", 0.95 ],
+ [ "damage", "bash", 0.2 ],
+ [ "damage", "cut", 1.1 ],
+ [ "arpen", "stab", "dex", 0.15 ],
+ [ "damage", "stab", 1.1 ],
+ [ "arpen", "cut", "dex", 0.3 ]
+ ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.25 ], [ "damage", "cut", "dex", 0.35 ], [ "movecost", "dex", -0.5 ] ],
+ "crit_tec": true,
+ "messages": [
+ "You envision the tension of a fully drawn bow and then launch a piercing blow on %s's top half",
+ " lands a piercing blow on %s's face"
+ ],
+ "stun_dur": 0.25
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json b/data/mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json
new file mode 100644
index 0000000000000..f2f954019ac0c
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json
@@ -0,0 +1,126 @@
+[
+ {
+ "id": "manual_crt_enforcement",
+ "copy-from": "book_martial",
+ "type": "GENERIC",
+ "name": "C.R.I.T Enforcement manual",
+ "name_plural": "C.R.I.T Enforcement manuals",
+ "description": "An advanced military manual on C.R.I.T Enforcer melee."
+ },
+ {
+ "id": "book_martial",
+ "type": "item_group",
+ "items": [ [ "manual_crt_enforcement", 5 ] ]
+ },
+ {
+ "type": "martial_art",
+ "id": "style_crt_enforcement",
+ "name": "C.R.I.T Enforcement",
+ "description": "A defensive style that is centered around stunning swings, knockback and grounding enemies. Each attack landed increases your armor by 0.125 and offers other combat bonuses based on stats.",
+ "initiate": [ "Initiate enforcement.", "%s initiates enforcement." ],
+ "arm_block": 2,
+ "leg_block": 10,
+ "static_buffs": [
+ {
+ "id": "crt_enforcement_static",
+ "name": "C.R.I.T Guard",
+ "description": "+1 armor. STR provides accuracy and minor bash damage and arpen.",
+ "unarmed_allowed": true,
+ "flat_bonuses": [
+ [ "damage", "bash", "str", 0.15 ],
+ [ "arpen", "bash", "str", 0.15 ],
+ [ "armor", "bash", 1 ],
+ [ "armor", "cut", 1 ],
+ [ "armor", "stab", 1 ],
+ [ "hit", "str", 0.4 ]
+ ]
+ }
+ ],
+ "onhit_buffs": [
+ {
+ "id": "crt_enforcement_hit_buff",
+ "name": "C.R.I.T Endurance",
+ "description": "+0.05 armor, +0.1 bash and other small bonuses per stack. Max of 10 stacks",
+ "unarmed_allowed": true,
+ "min_unarmed": 1,
+ "buff_duration": 10,
+ "max_stacks": 10,
+ "flat_bonuses": [
+ [ "damage", "bash", 0.05 ],
+ [ "damage", "bash", "str", 0.05 ],
+ [ "armor", "bash", 0.05 ],
+ [ "armor", "cut", 0.05 ],
+ [ "armor", "stab", 0.05 ],
+ [ "armor", "bash", "str", 0.15 ],
+ [ "armor", "cut", "str", 0.125 ],
+ [ "armor", "stab", "str", 0.1 ],
+ [ "movecost", "str", -0.05 ]
+ ]
+ }
+ ],
+ "techniques": [ "tec_crt_enforcement_normal", "tec_crt_enforcement_rapid", "tec_crt_enforcement_brutal", "tec_feint" ],
+ "weapons": [
+ "knife_crt",
+ "crt_nstick",
+ "crt_knuckledusters",
+ "baton-extended",
+ "cudgel",
+ "sword_wood",
+ "sword_nail",
+ "2x4",
+ "pipe",
+ "bat",
+ "bwirebat",
+ "nailbat",
+ "nailboard",
+ "bat_metal",
+ "cane",
+ "mace",
+ "morningstar",
+ "tonfa",
+ "tonfa_wood",
+ "PR24-extended",
+ "glass_macuahuitl"
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_enforcement_normal",
+ "name": "Blindside",
+ "min_unarmed": 1,
+ "min_melee": 1,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "damage", "bash", 0.75 ], [ "damage", "cut", 0.15 ], [ "damage", "stab", 0.35 ] ],
+ "flat_bonuses": [ [ "damage", "bash", "str", 0.35 ], [ "movecost", "str", -1 ] ],
+ "messages": [ "You thwap %s's face", " smashes in %s's face" ],
+ "stun_dur": 0.35,
+ "knockback_dist": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_enforcement_rapid",
+ "name": "Unrelenting Smackos",
+ "min_unarmed": 2,
+ "min_melee": 2,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 1.0 ], [ "damage", "bash", 1.0 ], [ "damage", "cut", 0.1 ], [ "damage", "stab", 0.15 ] ],
+ "flat_bonuses": [ [ "damage", "bash", "str", 0.2 ], [ "movecost", "str", -2 ] ],
+ "messages": [ "You swiftly swipe your weapon's tip at %s", " swiftly jabs their weapon into %s" ],
+ "stun_dur": 0.05,
+ "down_dur": 0.2
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_enforcement_brutal",
+ "name": "Roomsweeper",
+ "min_unarmed": 3,
+ "min_melee": 3,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 1.35 ], [ "damage", "bash", 1.15 ], [ "damage", "cut", 1.05 ], [ "damage", "stab", 1.0 ] ],
+ "flat_bonuses": [ [ "damage", "bash", "str", 0.5 ], [ "damage", "cut", "str", 0.25 ], [ "movecost", "str", -1.5 ] ],
+ "crit_tec": true,
+ "messages": [ "You steady your arm and release a crushing blow at %s", " releases a crushing blow at %s" ],
+ "stun_dur": 3,
+ "knockback_dist": 2
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json b/data/mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json
new file mode 100644
index 0000000000000..f9e0bddfcc1e0
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json
@@ -0,0 +1,158 @@
+[
+ {
+ "id": "manual_crt_cqb",
+ "copy-from": "book_martial",
+ "type": "GENERIC",
+ "name": "C.R.I.T CQB manual",
+ "name_plural": "C.R.I.T CQB manuals",
+ "description": "An advanced military manual on C.R.I.T general CQB."
+ },
+ {
+ "id": "book_martial",
+ "type": "item_group",
+ "items": [ [ "manual_crt_cqb", 5 ] ]
+ },
+ {
+ "type": "mutation",
+ "id": "MARTIAL_CRT",
+ "name": "C.R.I.T Melee Training",
+ "points": 3,
+ "description": "You have received some defensive training. For every hit you land, gain various miniscule combat bonuses that scale off of your stats.",
+ "starting_trait": true,
+ "initial_ma_styles": [ "style_crt_cqb", "style_crt_blade", "style_crt_enforcement" ],
+ "valid": false
+ },
+ {
+ "type": "martial_art",
+ "id": "style_crt_cqb",
+ "name": "C.R.I.T CQB",
+ "description": "A defensive style centered around rapid paralyzing strikes and piercing jabs. Each attack landed increases your speed by 0.5 along with a slew of combat bonuses. 25 percent bash damage.",
+ "initiate": [ "Initiate CQB.", "%s initiates CQB." ],
+ "arm_block": 3,
+ "leg_block": 6,
+ "static_buffs": [
+ {
+ "id": "crt_cqb_static",
+ "name": "C.R.I.T Initiative",
+ "description": "DEX provides dodge ability, accuracy and minor cut /stab damage with slight piercing capability. 25 Percent Bash Damage that slightly increases per hit stack.",
+ "unarmed_allowed": true,
+ "flat_bonuses": [
+ [ "damage", "stab", "dex", 0.25 ],
+ [ "damage", "cut", "dex", 0.25 ],
+ [ "arpen", "stab", "dex", 0.1 ],
+ [ "arpen", "cut", "dex", 0.05 ],
+ [ "dodge", "dex", 0.05 ],
+ [ "hit", "dex", 0.3 ],
+ [ "movecost", "dex", -0.6 ]
+ ],
+ "mult_bonuses": [ [ "damage", "bash", 0.25 ] ]
+ }
+ ],
+ "onhit_buffs": [
+ {
+ "id": "crt_cqb_hit_buff",
+ "name": "C.R.I.T Tenacity",
+ "description": "+0.5 Atk Speed and other small bonuses based on DEX per stack. Max of 100 stacks",
+ "unarmed_allowed": true,
+ "min_unarmed": 1,
+ "buff_duration": 100,
+ "max_stacks": 100,
+ "flat_bonuses": [
+ [ "hit", "dex", 0.015 ],
+ [ "damage", "bash", "dex", 0.0125 ],
+ [ "damage", "stab", "dex", 0.025 ],
+ [ "damage", "cut", "dex", 0.0125 ],
+ [ "arpen", "stab", "dex", 0.005 ],
+ [ "arpen", "stab", "dex", 0.005 ],
+ [ "dodge", "dex", 0.01 ],
+ [ "movecost", "dex", -0.125 ],
+ [ "movecost", -0.5 ]
+ ]
+ }
+ ],
+ "techniques": [ "tec_crt_cqb_normal", "tec_crt_cqb_rapid", "tec_crt_cqb_precise", "tec_crt_cqb_arpen", "tec_feint" ],
+ "weapons": [
+ "sword_crt",
+ "blade_crt",
+ "knife_crt",
+ "knife_combat",
+ "knife_hunting",
+ "knife_rambo",
+ "knife_rm42",
+ "knife_steak",
+ "knife_swissarmy",
+ "knife_trench",
+ "knife_butter",
+ "knife_folding",
+ "makeshift_knife",
+ "primitive_knife",
+ "pockknife",
+ "copper_knife",
+ "diveknife",
+ "kris",
+ "switchblade",
+ "honey_scraper",
+ "fork",
+ "glass_shiv",
+ "scissors"
+ ]
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_cqb_normal",
+ "name": "Measured Footwork",
+ "min_unarmed": 1,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 0.85 ], [ "damage", "bash", 0.8 ], [ "damage", "cut", 1.0 ], [ "damage", "stab", 1.1 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.2 ], [ "damage", "cut", "dex", 0.1 ], [ "movecost", "dex", -0.15 ] ],
+ "messages": [ "You quickly batter %s", " batters %s" ],
+ "stun_dur": 0.1
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_cqb_rapid",
+ "name": "Rapid Burst",
+ "min_unarmed": 2,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 0.7 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.7 ], [ "damage", "stab", 0.8 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.015 ], [ "damage", "cut", "dex", 0.0125 ], [ "movecost", "dex", -0.35 ] ],
+ "messages": [ "You swiftly impale your fingers into %s joints", " swiftly impales their fingers into %s" ],
+ "stun_dur": 0.05
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_cqb_precise",
+ "name": "Rapid Jab",
+ "min_unarmed": 3,
+ "unarmed_allowed": true,
+ "mult_bonuses": [ [ "movecost", 0.8 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 1.1 ], [ "damage", "stab", 1.25 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.2 ], [ "damage", "cut", "dex", 0.01 ], [ "movecost", "dex", -0.2 ] ],
+ "crit_tec": true,
+ "messages": [ "You steady your hand and release a piercing jab at %s", " releases a piercing jab at %s" ],
+ "stun_dur": 1
+ },
+ {
+ "type": "technique",
+ "id": "tec_crt_cqb_arpen",
+ "name": "Calculated Pierce",
+ "min_unarmed": 5,
+ "weighting": 2,
+ "unarmed_allowed": true,
+ "mult_bonuses": [
+ [ "movecost", 0.9 ],
+ [ "damage", "bash", 0.2 ],
+ [ "damage", "cut", 1.25 ],
+ [ "arpen", "cut", "dex", 0.15 ],
+ [ "damage", "stab", 1.5 ],
+ [ "arpen", "stab", "dex", 0.3 ]
+ ],
+ "flat_bonuses": [ [ "damage", "stab", "dex", 0.5 ], [ "damage", "cut", "dex", 0.25 ], [ "movecost", "dex", -0.5 ] ],
+ "crit_tec": true,
+ "messages": [
+ "You envision a tempest in your hand and then land a piercing blow on %s's top half",
+ " lands a piercing blow on %s's face"
+ ],
+ "stun_dur": 1,
+ "down_dur": 1.25
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/martial/dragonslayertechn.json b/data/mods/CRT_EXPANSION/martial/dragonslayertechn.json
new file mode 100644
index 0000000000000..af5437118bd9d
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/martial/dragonslayertechn.json
@@ -0,0 +1,56 @@
+[
+ {
+ "type": "technique",
+ "id": "BERSERK",
+ "name": "BERSERK",
+ "min_melee": 1,
+ "mult_bonuses": [ [ "movecost", 0.3 ], [ "damage", "bash", 0.77 ], [ "damage", "cut", 0.77 ], [ "damage", "stab", 0.77 ] ],
+ "flat_bonuses": [
+ [ "movecost", "str", -10 ],
+ [ "damage", "bash", "str", 0.8 ],
+ [ "damage", "stab", "str", 1.5 ],
+ [ "damage", "cut", "str", 0.8 ]
+ ],
+ "down_dur": 2,
+ "messages": [ "Your swing makes %s stagger and fall", " hooks %s" ],
+ "description": "50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly reduces action cost and adds overall damage (S)"
+ },
+ {
+ "type": "technique",
+ "id": "DSINERTIAL",
+ "name": "SWEEPER",
+ "min_melee": 4,
+ "unarmed_allowed": false,
+ "melee_allowed": true,
+ "knockback_dist": 1,
+ "mult_bonuses": [ [ "movecost", 0.15 ], [ "damage", "bash", 0.35 ], [ "damage", "cut", 0.35 ], [ "damage", "stab", 0.35 ] ],
+ "flat_bonuses": [
+ [ "movecost", "str", -15 ],
+ [ "damage", "bash", "str", 0.1 ],
+ [ "damage", "stab", "str", 0.3 ],
+ [ "damage", "cut", "str", 0.1 ]
+ ],
+ "messages": [ "Your momentum causes your weapon to strike %s", " inertially strikes %s" ],
+ "aoe": "wide",
+ "description": "15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost, and adds a (A) damage bonus, min 4 melee"
+ },
+ {
+ "type": "technique",
+ "id": "DSBI",
+ "name": "BISECTION",
+ "min_melee": 2,
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "crit_tec": true,
+ "mult_bonuses": [ [ "movecost", 0.35 ], [ "damage", "bash", 1.05 ], [ "damage", "cut", 1.25 ], [ "damage", "stab", 1.05 ] ],
+ "flat_bonuses": [
+ [ "movecost", "str", -15 ],
+ [ "movecost", "dex", -7 ],
+ [ "damage", "bash", "per", 0.15 ],
+ [ "damage", "cut", "per", 0.3 ],
+ [ "damage", "stab", "per", 0.15 ]
+ ],
+ "messages": [ "You wind up the sword and release a well placed swing at %s", " chops %s" ],
+ "description": "Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) reduces action cost and increases overall (B) damage, min 2 melee"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/martial/generaltechn.json b/data/mods/CRT_EXPANSION/martial/generaltechn.json
new file mode 100644
index 0000000000000..f9aa1fb808407
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/martial/generaltechn.json
@@ -0,0 +1,125 @@
+[
+ {
+ "type": "technique",
+ "id": "HOOK",
+ "name": "HOOK",
+ "mult_bonuses": [ [ "movecost", 0.85 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.76 ], [ "damage", "stab", 0.86 ] ],
+ "flat_bonuses": [ [ "movecost", "str", -0.25 ] ],
+ "down_dur": 2,
+ "messages": [ "Your hooking attack makes %s stagger and fall", " hooks %s" ],
+ "description": "85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly reduces action cost"
+ },
+ {
+ "type": "technique",
+ "id": "INERTIAL",
+ "name": "INERTIAL SWING",
+ "min_melee": 4,
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "knockback_dist": 1,
+ "mult_bonuses": [ [ "movecost", 0.75 ], [ "damage", "bash", 0.6 ], [ "damage", "cut", 0.6 ], [ "damage", "stab", 0.6 ] ],
+ "flat_bonuses": [
+ [ "movecost", "str", -1.0 ],
+ [ "damage", "bash", "str", 0.1 ],
+ [ "damage", "stab", "str", 0.1 ],
+ [ "damage", "cut", "str", 0.1 ]
+ ],
+ "messages": [ "Your momentum causes your weapon to strike %s", " inertially strikes %s" ],
+ "aoe": "wide",
+ "description": "75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, and adds a (C) damage bonus, min 4 melee"
+ },
+ {
+ "type": "technique",
+ "id": "CHOP",
+ "name": "CHOP",
+ "min_melee": 2,
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "crit_tec": true,
+ "mult_bonuses": [ [ "movecost", 1.15 ], [ "damage", "bash", 1.05 ], [ "damage", "cut", 1.25 ], [ "damage", "stab", 1.05 ] ],
+ "flat_bonuses": [
+ [ "movecost", "dex", -0.2 ],
+ [ "movecost", "per", -0.125 ],
+ [ "damage", "bash", "per", 0.15 ],
+ [ "damage", "cut", "per", 0.3 ],
+ [ "damage", "stab", "per", 0.15 ]
+ ],
+ "messages": [ "You draw back your arm and release a well placed chop %s", " chops %s" ],
+ "description": "Crit only, 115% move cost, 105% Bash, 105% Stab, 125% Cut, DEX (D) and PER (E) reduces action cost and increases overall (B) damage, min 2 melee"
+ },
+ {
+ "type": "technique",
+ "id": "SMASH",
+ "name": "SMASH",
+ "min_melee": 2,
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "crit_tec": true,
+ "mult_bonuses": [ [ "movecost", 1.1 ], [ "damage", "bash", 1.2 ], [ "damage", "cut", 1.1 ], [ "damage", "stab", 1.05 ] ],
+ "flat_bonuses": [
+ [ "movecost", "dex", -0.2 ],
+ [ "movecost", "str", -0.125 ],
+ [ "damage", "bash", "str", 0.25 ],
+ [ "damage", "cut", "str", 0.15 ],
+ [ "damage", "stab", "str", 0.15 ]
+ ],
+ "messages": [ "You grip your weapon with two hands and slam it into %s", " smashes their weapon onto %s" ],
+ "description": "Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR (D) reduces action cost and increases overall (C) damage, min 2 melee"
+ },
+ {
+ "type": "technique",
+ "id": "UHAND",
+ "name": "UNDERHAND",
+ "min_melee": 1,
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "crit_tec": true,
+ "stun_dur": 1.5,
+ "mult_bonuses": [ [ "movecost", 1.2 ], [ "damage", "bash", 1.25 ], [ "damage", "cut", 1.25 ], [ "damage", "stab", 1.25 ] ],
+ "flat_bonuses": [ [ "movecost", "str", -0.8 ] ],
+ "messages": [
+ "You lunge forward with all your weight and swing upwards at %s",
+ " swings upwards with all their weight %s"
+ ],
+ "description": "Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically reduces action cost, min melee 1"
+ },
+ {
+ "type": "technique",
+ "id": "SHOVE",
+ "name": "SHOVE",
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "knockback_dist": 2,
+ "stun_dur": 1,
+ "mult_bonuses": [ [ "movecost", 0.65 ], [ "damage", "bash", 0.5 ], [ "damage", "cut", 0.15 ], [ "damage", "stab", 0.35 ] ],
+ "flat_bonuses": [ [ "movecost", "str", -0.15 ], [ "movecost", "dex", -0.1 ] ],
+ "messages": [ "You quickly shove %s out of the way", " quickly shoves %s" ],
+ "description": "65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR (D) and DEX (E) reduce action cost"
+ },
+ {
+ "type": "technique",
+ "id": "SSHOVE",
+ "name": "SHIELDED SHOVE",
+ "min_melee": 1,
+ "unarmed_allowed": false,
+ "melee_allowed": true,
+ "knockback_dist": 2,
+ "mult_bonuses": [ [ "movecost", 0.65 ], [ "damage", "bash", 1.1 ], [ "damage", "cut", 0 ], [ "damage", "stab", 1.1 ] ],
+ "flat_bonuses": [ [ "movecost", "str", -0.3 ], [ "movecost", "dex", -0.15 ] ],
+ "messages": [ "You quickly shove %s out of the way with your weapon", " quickly shoves %s" ],
+ "description": "65% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR (B) and DEX (C) reduce action cost, min melee 1"
+ },
+ {
+ "type": "technique",
+ "id": "TEAR",
+ "name": "TEAR",
+ "min_melee": 2,
+ "unarmed_allowed": true,
+ "melee_allowed": true,
+ "crit_tec": true,
+ "weighting": 2,
+ "mult_bonuses": [ [ "damage", "cut", 1.1 ], [ "damage", "stab", 1.15 ] ],
+ "messages": [ "You stab into %s and rake your blade out", " tears into %s flesh" ],
+ "description": "Crit only, 110% Cut, 115% Stab, min melee 2"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/martial/stabtechn.json b/data/mods/CRT_EXPANSION/martial/stabtechn.json
new file mode 100644
index 0000000000000..2692a11e0a5f9
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/martial/stabtechn.json
@@ -0,0 +1,58 @@
+[
+ {
+ "type": "technique",
+ "id": "THRUST",
+ "name": "THRUST",
+ "min_melee": 1,
+ "unarmed_allowed": false,
+ "melee_allowed": true,
+ "crit_tec": false,
+ "weighting": 1,
+ "mult_bonuses": [ [ "damage", "stab", 1.1 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "str", 0.1 ], [ "damage", "stab", "per", 0.2 ] ],
+ "messages": [ "You lean forward and stab at %s", " stabs into %s flesh" ],
+ "description": "110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee"
+ },
+ {
+ "type": "technique",
+ "id": "LUNGE",
+ "name": "LUNGE",
+ "min_melee": 2,
+ "unarmed_allowed": false,
+ "melee_allowed": true,
+ "crit_tec": true,
+ "weighting": 2,
+ "mult_bonuses": [ [ "damage", "stab", 1.15 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "str", 0.2 ], [ "damage", "stab", "per", 0.2 ] ],
+ "messages": [ "You explosively jab at %s", " violently jabs at %s" ],
+ "description": "Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) provides bonus damage, min 2 melee"
+ },
+ {
+ "type": "technique",
+ "id": "PROD",
+ "name": "PROD",
+ "min_melee": 3,
+ "unarmed_allowed": false,
+ "melee_allowed": true,
+ "crit_tec": false,
+ "weighting": 1,
+ "mult_bonuses": [ [ "movecost", 0.66 ], [ "damage", "stab", 0.7 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "str", 0.15 ], [ "damage", "stab", "per", 0.25 ], [ "movecost", "dex", 0.25 ] ],
+ "messages": [ "You prod at %s defensively", " prods at %s " ],
+ "description": "66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, DEX (C) reduces action cost, min 3 melee"
+ },
+ {
+ "type": "technique",
+ "id": "PROBE",
+ "name": "PROBE",
+ "min_unarmed": 3,
+ "unarmed_allowed": false,
+ "melee_allowed": true,
+ "crit_tec": false,
+ "weighting": 1,
+ "mult_bonuses": [ [ "movecost", 0.8 ], [ "damage", "stab", 0.75 ] ],
+ "flat_bonuses": [ [ "damage", "stab", "str", 0.25 ], [ "damage", "stab", "per", 0.3 ], [ "arpen", "stab", "per", 0.12 ] ],
+ "messages": [ "You probe %s's openings", " probe %s " ],
+ "description": "80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and also provides armor pierce (E), min 3 melee"
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/modinfo.json b/data/mods/CRT_EXPANSION/modinfo.json
new file mode 100644
index 0000000000000..8406903f81898
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/modinfo.json
@@ -0,0 +1,12 @@
+[
+ {
+ "type": "MOD_INFO",
+ "ident": "crt_expansion",
+ "name": "C.R.I.T Expansion Mod",
+ "authors": [ "Soupster89" ],
+ "maintainers": [ "Soupster89" ],
+ "description": "Adds new professions, guns, gunmods, enemies, materials, martial arts, melees/tools and weapon techniques.",
+ "category": "content",
+ "dependencies": [ "dda" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/monsters/crt_monster.json b/data/mods/CRT_EXPANSION/monsters/crt_monster.json
new file mode 100644
index 0000000000000..ae394e397a0a9
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/monsters/crt_monster.json
@@ -0,0 +1,254 @@
+[
+ {
+ "id": "mon_slasher",
+ "type": "MONSTER",
+ "name": "Slasher Necromorph",
+ "description": "A horrifically twisted human body. Two massive blades have burst through its hands which are poised above its head endlessly as it stalks about with terrifying purpose.",
+ "default_faction": "zombie",
+ "categories": [ "CLASSIC" ],
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 80,
+ "speed": 105,
+ "material": [ "flesh" ],
+ "symbol": "N",
+ "color": "light_red",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 5,
+ "melee_dice": 6,
+ "melee_dice_sides": 4,
+ "melee_cut": 10,
+ "vision_night": 10,
+ "harvest": "zombie",
+ "special_attacks": [ { "type": "bite", "cooldown": 3 }, [ "GRAB", 7 ], [ "scratch", 10 ] ],
+ "death_drops": "default_zombie_death_drops",
+ "death_function": [ "NORMAL" ],
+ "burn_into": "mon_zombie_scorched",
+ "flags": [
+ "SEES",
+ "HEARS",
+ "SMELLS",
+ "STUMBLES",
+ "WARM",
+ "BASHES",
+ "GROUP_BASH",
+ "POISON",
+ "BLEED",
+ "NO_BREATHE",
+ "REVIVES",
+ "PUSH_MON",
+ "FILTHY"
+ ]
+ },
+ {
+ "id": "mon_waster",
+ "type": "MONSTER",
+ "name": "Waster Necromorph",
+ "description": "Clad in heavy assault gear, an eerie light green glows beneath its helmet from sunken eye sockets and a gaping mouth. Strange blade like points have burst out of its arms making it a formidable force to be reckoned with.",
+ "default_faction": "zombie",
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 50,
+ "speed": 90,
+ "material": [ "bone" ],
+ "symbol": "N",
+ "color": "white",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 7,
+ "melee_dice": 3,
+ "melee_dice_sides": 6,
+ "melee_cut": 12,
+ "dodge": 1,
+ "armor_cut": 15,
+ "armor_stab": 30,
+ "armor_acid": 4,
+ "vision_day": 25,
+ "vision_night": 3,
+ "luminance": 3,
+ "harvest": "zombie",
+ "special_attacks": [ [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ],
+ "death_drops": "mon_zombie_cop_death_drops",
+ "death_function": [ "NORMAL" ],
+ "flags": [ "SEES", "HEARS", "BLEED", "REVIVES", "NO_BREATHE", "POISON", "FILTHY" ]
+ },
+ {
+ "id": "mon_leaper",
+ "type": "MONSTER",
+ "name": "Leaper Necromorph",
+ "description": "This once-human body is barely recognizable, scrambling about on its abdomen as it leaps forward with immense arm strength. With elongated fangs that are can easily mutilate your flesh, the grotesque face roars incessantly. The lower body has fused together into one giant tail with a barbed spike.",
+ "default_faction": "zombie",
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 90,
+ "speed": 110,
+ "material": [ "flesh" ],
+ "symbol": "Z",
+ "color": "brown",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 4,
+ "melee_dice": 2,
+ "melee_dice_sides": 4,
+ "melee_cut": 2,
+ "dodge": 3,
+ "vision_night": 5,
+ "harvest": "zombie",
+ "special_attacks": [
+ { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 10 } ] },
+ { "type": "leap", "cooldown": 3, "max_range": 5 },
+ {
+ "type": "bite",
+ "cooldown": 5,
+ "damage_max_instance": [ { "damage_type": "stab", "amount": 7, "armor_multiplier": 0.7 } ]
+ }
+ ],
+ "death_drops": "default_zombie_death_drops",
+ "death_function": [ "NORMAL" ],
+ "burn_into": "mon_zombie_scorched",
+ "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "CLIMBS", "PUSH_MON", "FILTHY" ]
+ },
+ {
+ "id": "mon_twitcher",
+ "type": "MONSTER",
+ "name": "Twitcher Necromorph",
+ "description": "With narrow blades coming out of its hands, this corpse spasmically dashes to-and-fro with surprising speed. It carries itself quite steadily when idle, further observation shows that the person before this husk was a C.R.I.T S-I G.E.A.R operator.",
+ "default_faction": "zombie",
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 90,
+ "speed": 140,
+ "material": [ "flesh" ],
+ "symbol": "Z",
+ "color": "brown_green",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 5,
+ "melee_dice": 8,
+ "melee_dice_sides": 3,
+ "melee_cut": 5,
+ "dodge": 5,
+ "armor_bash": 10,
+ "armor_cut": 10,
+ "vision_day": 30,
+ "vision_night": 5,
+ "harvest": "zombie",
+ "path_settings": { "max_dist": 5 },
+ "special_attacks": [
+ {
+ "type": "leap",
+ "cooldown": 2,
+ "max_range": 4,
+ "min_consider_range": 1,
+ "max_consider_range": 3,
+ "allow_no_target": false
+ },
+ {
+ "type": "bite",
+ "cooldown": 6,
+ "damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.5 } ]
+ },
+ { "id": "impale" }
+ ],
+ "death_drops": "default_zombie_death_drops",
+ "death_function": [ "NORMAL" ],
+ "burn_into": "mon_zombie_scorched",
+ "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "PUSH_MON", "BLEED", "FILTHY" ]
+ },
+ {
+ "id": "mon_pack",
+ "type": "MONSTER",
+ "name": "Pack Necromorph",
+ "description": "A shrieking mutated child zombie. The face is is mainly blank with eyes swollen shut and a torn-open mouth with flaps of flesh hanging to the side. A pair of seemingly purposeless appendages sprout from its shoulders before ending in its arms. Its small hands end in sharp claws.",
+ "default_faction": "zombie",
+ "species": [ "ZOMBIE" ],
+ "volume": "30000 ml",
+ "weight": 40750,
+ "hp": 25,
+ "speed": 100,
+ "material": [ "flesh" ],
+ "symbol": "n",
+ "color": "light_gray",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 4,
+ "melee_dice": 2,
+ "melee_dice_sides": 4,
+ "melee_cut": 4,
+ "dodge": 2,
+ "vision_day": 40,
+ "vision_night": 4,
+ "harvest": "zombie",
+ "special_attacks": [ [ "SHRIEK", 7 ], [ "scratch", 5 ], { "type": "leap", "cooldown": 4, "max_range": 3 } ],
+ "death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_clothes", 100 ], [ "child_items", 65 ] ] },
+ "death_function": [ "NORMAL" ],
+ "burn_into": "mon_zombie_child_scorched",
+ "flags": [
+ "SEES",
+ "HEARS",
+ "SMELLS",
+ "WARM",
+ "BLEED",
+ "BASHES",
+ "POISON",
+ "NO_BREATHE",
+ "REVIVES",
+ "CLIMBS",
+ "FILTHY",
+ "SWARMS"
+ ],
+ "//": "no GUILT because it no longer looks enough like a child to evoke pity"
+ },
+ {
+ "id": "mon_puker",
+ "type": "MONSTER",
+ "name": "Puker Necromorph",
+ "description": "A rather mutilated corpse covered in gaping sores. Hanging arms with hands that have long corroded away reveal jagged edges that could easily pierce into your flesh. A sticky, frothing yellow sludge flows from its exposed internal organs to its unhinged jaw where it drips, hissing as it eats through material.",
+ "default_faction": "zombie",
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "diff": 5,
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 65,
+ "speed": 80,
+ "material": [ "flesh" ],
+ "symbol": "N",
+ "color": "light_gray_yellow",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 3,
+ "melee_dice": 3,
+ "melee_dice_sides": 5,
+ "melee_cut": 4,
+ "dodge": 1,
+ "vision_night": 3,
+ "harvest": "zombie",
+ "special_attacks": [ [ "ACID_BARF", 5 ] ],
+ "death_drops": "default_zombie_death_drops",
+ "death_function": [ "ACID", "NORMAL" ],
+ "burn_into": "mon_zombie_scorched",
+ "flags": [
+ "SEES",
+ "HEARS",
+ "SMELLS",
+ "STUMBLES",
+ "WARM",
+ "BASHES",
+ "GROUP_BASH",
+ "POISON",
+ "ACIDPROOF",
+ "ACID_BLOOD",
+ "VENOM",
+ "NO_BREATHE",
+ "REVIVES",
+ "PUSH_MON",
+ "BLEED",
+ "FILTHY"
+ ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/monsters/monster.json b/data/mods/CRT_EXPANSION/monsters/monster.json
new file mode 100644
index 0000000000000..e5530678e10ea
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/monsters/monster.json
@@ -0,0 +1,59 @@
+[
+ {
+ "id": "mon_animate_arm",
+ "type": "MONSTER",
+ "name": "Animate Arm",
+ "description": "A dismembered arm that slowly crawls forward. Occasionally, tentacles sprout out from the wound and lash about wildly.",
+ "default_faction": "zombie",
+ "categories": [ "CLASSIC" ],
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 10,
+ "speed": 15,
+ "material": [ "flesh" ],
+ "symbol": "@",
+ "size": "medium",
+ "color": "pink",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 1,
+ "melee_dice": 1,
+ "melee_dice_sides": 1,
+ "melee_cut": 3,
+ "dodge": 3,
+ "armor_bash": 10,
+ "armor_cut": 16,
+ "harvest": "zombie",
+ "special_attacks": [ [ "TENTACLE", 2 ], [ "scratch", 10 ] ],
+ "death_function": [ "NORMAL" ],
+ "flags": [ "HEARS", "GOODHEARING", "WARM", "CLIMBS", "NOHEAD", "POISON", "BLEED", "NO_BREATHE" ]
+ },
+ {
+ "id": "mon_dullahan",
+ "type": "MONSTER",
+ "name": "Dullahan",
+ "description": "A headless humanoid that slowly sways. Ornate and functional armor adorn this dreadful corpse which carries itself with an unerringly terrible steadiness. A long tentacle has sprouted out of its right arm which occasionally flails about wildly.",
+ "default_faction": "zombie",
+ "categories": [ "CLASSIC" ],
+ "species": [ "ZOMBIE", "HUMAN" ],
+ "volume": "62500 ml",
+ "weight": 81500,
+ "hp": 10,
+ "speed": 15,
+ "material": [ "flesh" ],
+ "symbol": "D",
+ "size": "medium",
+ "color": "light_red",
+ "aggression": 100,
+ "morale": 100,
+ "melee_skill": 7,
+ "melee_dice": 3,
+ "melee_dice_sides": 5,
+ "melee_cut": 5,
+ "harvest": "zombie",
+ "special_attacks": [ [ "TENTACLE", 7 ], [ "scratch", 8 ] ],
+ "death_function": [ "NORMAL" ],
+ "flags": [ "WARM", "CLIMBS", "NOHEAD", "POISON", "BLEED", "NO_BREATHE" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json b/data/mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json
new file mode 100644
index 0000000000000..260f66c6e7415
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json
@@ -0,0 +1,75 @@
+[
+ {
+ "type": "item_group",
+ "id": "mut_lab",
+ "items": [
+ [ "recipe_elfa", 1 ],
+ [ "recipe_raptor", 1 ],
+ [ "recipe_alpha", 1 ],
+ [ "recipe_chimera", 2 ],
+ [ "recipe_medicalmut", 2 ],
+ [ "recipe_serum", 4 ],
+ [ "recipe_creepy", 4 ],
+ [ "recipe_animal", 4 ],
+ [ "recipe_maiar", 4 ],
+ [ "recipe_labchem", 6 ],
+ [ "mutagen", 8 ],
+ [ "iv_mutagen", 6 ],
+ [ "iv_mutagen_plant", 2 ],
+ [ "iv_mutagen_insect", 2 ],
+ [ "iv_mutagen_spider", 2 ],
+ [ "iv_mutagen_fish", 2 ],
+ [ "iv_mutagen_slime", 2 ],
+ [ "iv_mutagen_rat", 2 ],
+ [ "iv_mutagen_beast", 2 ],
+ [ "iv_mutagen_cattle", 2 ],
+ [ "iv_mutagen_cephalopod", 2 ],
+ [ "iv_mutagen_bird", 2 ],
+ [ "iv_mutagen_lizard", 2 ],
+ [ "iv_mutagen_troglobite", 2 ],
+ [ "iv_mutagen_ursine", 2 ],
+ [ "iv_mutagen_feline", 2 ],
+ [ "iv_mutagen_lupine", 2 ],
+ [ "iv_mutagen_mouse", 2 ],
+ [ "purifier", 10 ],
+ [ "iv_purifier", 8 ],
+ [ "syringe", 8 ],
+ [ "bleach", 20 ],
+ [ "ammonia", 24 ],
+ [ "lye_powder", 10 ],
+ [ "oxy_powder", 12 ],
+ [ "chemistry_set", 5 ],
+ [ "meat_tainted", 8 ],
+ [ "veggy_tainted", 4 ],
+ [ "slime_scrap", 8 ],
+ [ "chem_nitric_acid", 5 ],
+ [ "iv_mutagen_vamp", 2 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "mut_iv",
+ "items": [
+ [ "iv_mutagen", 10 ],
+ [ "iv_mutagen_plant", 2 ],
+ [ "iv_mutagen_insect", 2 ],
+ [ "iv_mutagen_spider", 2 ],
+ [ "iv_mutagen_fish", 2 ],
+ [ "iv_mutagen_slime", 2 ],
+ [ "iv_mutagen_rat", 2 ],
+ [ "iv_mutagen_beast", 2 ],
+ [ "iv_mutagen_cattle", 2 ],
+ [ "iv_mutagen_cephalopod", 2 ],
+ [ "iv_mutagen_bird", 2 ],
+ [ "iv_mutagen_lizard", 2 ],
+ [ "iv_mutagen_troglobite", 2 ],
+ [ "iv_mutagen_ursine", 2 ],
+ [ "iv_mutagen_feline", 2 ],
+ [ "iv_mutagen_lupine", 2 ],
+ [ "iv_mutagen_mouse", 2 ],
+ [ "iv_purifier", 20 ],
+ [ "syringe", 10 ],
+ [ "iv_mutagen_vamp", 2 ]
+ ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/crt_mutatinoc.json b/data/mods/CRT_EXPANSION/mutations/crt_mutatinoc.json
new file mode 100644
index 0000000000000..c98a56097d359
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/crt_mutatinoc.json
@@ -0,0 +1,41 @@
+[
+ {
+ "type": "mutation",
+ "id": "SHMELD",
+ "name": "Shadow Meld",
+ "points": 4,
+ "description": "The light around you bends strangely, making it harder for enemies to notice you.",
+ "valid": false,
+ "purifiable": false,
+ "prereqs": [ "WEAKSCENT" ],
+ "threshreq": [ "THRESH_VAMP" ],
+ "category": [ "VAMP" ],
+ "stealth_modifier": 25
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFULVAMP",
+ "name": "Moon-lit Grace",
+ "points": 6,
+ "visibility": -7,
+ "ugliness": -7,
+ "description": "Aside from your appearances, your movements are incredibly graceful and allow you to seemingly glide through every task.",
+ "thresheq": [ "THRESH_VAMP" ],
+ "category": [ "VAMP" ],
+ "stealth_modifier": 5
+ },
+ {
+ "type": "mutation",
+ "id": "VAMPEYES",
+ "name": "Red Iris",
+ "mixed_effect": true,
+ "points": 4,
+ "visibility": -1,
+ "ugliness": -1,
+ "description": "You eyes are a pleasant shade of hypnotic scarlet. People feel mildly persuaded by you.",
+ "prereqs": [ "BEAUTIFUL" ],
+ "cancels": [ "BIRD_EYE", "LIZ_EYE", "FEL_EYE", "URSINE_EYE", "COMPOUND_EYES", "ELFAEYES" ],
+ "category": [ "VAMP" ],
+ "social_modifiers": { "lie": 1, "persuade": 7, "intimidate": 1 }
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/crt_mutations.json b/data/mods/CRT_EXPANSION/mutations/crt_mutations.json
new file mode 100644
index 0000000000000..459651bc59b6c
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/crt_mutations.json
@@ -0,0 +1,1186 @@
+[
+ {
+ "type": "mutation",
+ "id": "THRESH_VAMP",
+ "name": "Night Walker",
+ "points": 1,
+ "description": "Emerge from the grave of the old world, and become the night once again.",
+ "//": "Parallel reference to Woken Furies quote from the Altered Carbon series and song.",
+ "valid": false,
+ "purifiable": false,
+ "threshold": true
+ },
+ {
+ "type": "mutation",
+ "id": "UNSTABLE",
+ "name": "Genetically Unstable",
+ "points": -2,
+ "mixed_effect": true,
+ "description": "Your DNA has been damaged in a way that causes you to continually develop more mutations.",
+ "changes_to": [ "CHAOTIC" ],
+ "category": [ "SLIME", "MEDICAL", "CHIMERA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "HISS",
+ "name": "Hissing Voice",
+ "mixed_effect": true,
+ "points": -1,
+ "description": "You hiss when speaking. Persuading NPCs will be more difficult, but threatening them will be easier.",
+ "category": [ "LIZARD", "RAPTOR", "VAMP" ],
+ "social_modifiers": { "persuade": -20, "lie": -10, "intimidate": 10 }
+ },
+ {
+ "type": "mutation",
+ "id": "FLEET",
+ "name": "Fleet-Footed",
+ "points": 2,
+ "description": "You can move more quickly than most, resulting in a 15% speed bonus on sure footing.",
+ "starting_trait": true,
+ "changes_to": [ "FLEET2" ],
+ "category": [ "SPIDER", "MOUSE", "VAMP" ],
+ "types": [ "RUNNING" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BADTEMPER",
+ "name": "Bad Temper",
+ "points": -2,
+ "description": "Things just keep getting you down. You tend to be unhappy, and it takes some doing to cheer you up.",
+ "starting_trait": true,
+ "cancels": [ "OPTIMISTIC" ],
+ "category": [ "URSINE", "LIZARD", "CHIMERA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INSOMNIA",
+ "name": "Insomniac",
+ "points": -2,
+ "description": "You have a hard time falling asleep, even under the best circumstances!",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "VAMP" ],
+ "cancels": [ "EASYSLEEPER" ]
+ },
+ {
+ "type": "mutation",
+ "id": "THINSKIN",
+ "name": "Thin-Skinned",
+ "points": -1,
+ "description": "Your skin is fragile. Cutting damage is slightly increased for you.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "cancels": [ "THICKSKIN" ],
+ "armor": [ { "parts": "ALL", "cut": -1 } ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIGHTWEIGHT",
+ "name": "Lightweight",
+ "points": -1,
+ "description": "Alcohol and drugs go straight to your head. You suffer the negative effects of these for longer.",
+ "starting_trait": true,
+ "category": [ "MEDICAL", "VAMP" ],
+ "cancels": [ "DRUNKEN", "TOLERANCE" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NARCOLEPTIC",
+ "name": "Narcoleptic",
+ "points": -3,
+ "description": "You randomly fall asleep without any reason.",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "MOODSWINGS",
+ "name": "Mood Swings",
+ "points": -1,
+ "description": "Your morale will shift up and down at random, often dramatically.",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "WEAKSTOMACH",
+ "name": "Weak Stomach",
+ "points": -1,
+ "description": "You are more likely to throw up from food poisoning, alcohol, etc.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "changes_to": [ "NAUSEA" ],
+ "cancels": [ "STRONGSTOMACH" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CHEMIMBALANCE",
+ "name": "Chemical Imbalance",
+ "points": -2,
+ "description": "You suffer from a minor chemical imbalance, whether mental or physical. Minor changes to your internal chemistry will manifest themselves on occasion, such as hunger, sleepiness, narcotic effects, etc.",
+ "starting_trait": true,
+ "category": [ "SLIME", "MEDICAL", "CHIMERA", "ELFA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "GOODHEARING",
+ "name": "Good Hearing",
+ "points": 1,
+ "description": "Your hearing is better than average, and you can hear distant sounds more easily.",
+ "starting_trait": true,
+ "category": [ "ALPHA", "MOUSE", "VAMP" ],
+ "cancels": [ "BADHEARING" ]
+ },
+ {
+ "type": "mutation",
+ "id": "OUTDOORSMAN",
+ "name": "Outdoorsman",
+ "points": 1,
+ "description": "You are accustomed to being exposed to the elements. This decreases morale penalties for being wet.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "wet_protection": [
+ { "part": "HEAD", "ignored": 6 },
+ { "part": "LEG_L", "ignored": 8 },
+ { "part": "LEG_R", "ignored": 8 },
+ { "part": "FOOT_L", "ignored": 2 },
+ { "part": "FOOT_R", "ignored": 2 },
+ { "part": "ARM_L", "ignored": 8 },
+ { "part": "ARM_R", "ignored": 8 },
+ { "part": "HAND_L", "ignored": 12 },
+ { "part": "HAND_R", "ignored": 12 },
+ { "part": "TORSO", "ignored": 10 }
+ ]
+ },
+ {
+ "type": "mutation",
+ "id": "PARKOUR",
+ "name": "Parkour Expert",
+ "points": 2,
+ "description": "You're skilled at clearing obstacles; terrain like railings or counters are as easy for you to move on as solid ground.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "BADKNEES" ]
+ },
+ {
+ "type": "mutation",
+ "id": "GOODCARDIO",
+ "name": "Indefatigable",
+ "points": 2,
+ "description": "Whether due to exercise and good diet, or due to a natural propensity to physical endurance, you tire due to physical exertion much less readily than others. Your maximum stamina is 25% higher than usual.",
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "BADCARDIO" ],
+ "changes_to": [ "GOODCARDIO2" ],
+ "category": [ "FISH", "LUPINE", "MOUSE", "INSECT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "RADIOGENIC",
+ "name": "Radiogenic",
+ "points": 3,
+ "description": "Your system has adapted to radiation. While irradiated, you will actually heal slowly, converting the radiation into hit points.",
+ "category": [ "SLIME", "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INFRESIST",
+ "name": "Infection Resistant",
+ "points": 2,
+ "description": "Your immune system is particularly good at resisting infections. You have an increased chance for bad wounds and infections to heal on their own, and only suffer reduced penalties from them.",
+ "starting_trait": true,
+ "changes_to": [ "INFIMMUNE" ],
+ "category": [ "TROGLOBITE", "RAT", "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INFIMMUNE",
+ "name": "Infection Immune",
+ "points": 3,
+ "description": "Your bloodstream has developed antibiotic properties. Your wounds will never become infected.",
+ "prereqs": [ "DISRESISTANT" ],
+ "prereqs2": [ "INFRESIST" ],
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PARAIMMUNE",
+ "name": "Parasite Immune",
+ "points": 1,
+ "description": "Your body is unusually inhospitable to parasitic lifeforms. You will never become infested with internal parasites.",
+ "prereqs": [ "DISRESISTANT" ],
+ "prereqs2": [ "INFRESIST" ],
+ "category": [ "ELFA", "CHIMERA", "MEDICAL", "SLIME", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BENDY1",
+ "name": "Stretchy Limbs",
+ "points": 1,
+ "visibility": 1,
+ "description": "Your limbs seem to have a little more 'give' to them. +1 Dexterity.",
+ "changes_to": [ "BENDY2" ],
+ "threshreq": [ "THRESH_SLIME", "THRESH_ELFA", "THRESH_VAMP" ],
+ "category": [ "SLIME", "ELFA", "VAMP" ],
+ "passive_mods": { "dex_mod": 1 }
+ },
+ {
+ "type": "mutation",
+ "id": "QUICK",
+ "name": "Quick",
+ "points": 3,
+ "description": "You're just generally quick! You get a 10% bonus to action points.",
+ "starting_trait": true,
+ "category": [ "FISH", "BIRD", "INSECT", "TROGLOBITE", "CHIMERA", "RAPTOR", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "EASYSLEEPER",
+ "name": "Accomplished Sleeper",
+ "points": 1,
+ "description": "You have always been able to fall asleep easily, even when sleeping in less than ideal circumstances.",
+ "changes_to": [ "EASYSLEEPER2" ],
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "INSOMNIA" ],
+ "category": [ "MOUSE", "INSECT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TOUGH",
+ "name": "Tough",
+ "points": 2,
+ "description": "It takes a lot to bring you down! You get a 20% bonus to all hit points.",
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "changes_to": [ "TOUGH2" ],
+ "social_modifiers": { "intimidate": 2 },
+ "hp_modifier": 0.2
+ },
+ {
+ "type": "mutation",
+ "id": "TOUGH2",
+ "name": "Durable",
+ "points": 3,
+ "description": "You can shrug off almost anything! You get a 30% bonus to all hit points.",
+ "valid": false,
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "prereqs": [ "TOUGH" ],
+ "changes_to": [ "TOUGH3" ],
+ "social_modifiers": { "intimidate": 3 },
+ "hp_modifier": 0.3
+ },
+ {
+ "type": "mutation",
+ "id": "SLEEPY",
+ "name": "Sleepy",
+ "points": -1,
+ "description": "You need sleep more often, but still spend most of your time awake.",
+ "changes_to": [ "SLEEPY2", "MET_RAT" ],
+ "starting_trait": true,
+ "types": [ "SLEEP" ],
+ "category": [ "BEAST", "CHIMERA", "MOUSE", "VAMP" ],
+ "fatigue_modifier": 0.333,
+ "fatigue_regen_modifier": 0.333
+ },
+ {
+ "type": "mutation",
+ "id": "STRONGBACK",
+ "name": "Strong Back",
+ "points": 2,
+ "description": "You are capable of carrying far more than someone with similar strength could. Your maximum weight carried is increased by 35%.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "BADBACK" ]
+ },
+ {
+ "type": "mutation",
+ "id": "FASTLEARNER",
+ "name": "Fast Learner",
+ "points": 3,
+ "description": "You have a flexible mind, allowing you to learn skills much faster than others. Note that this only applies to real-world experience, not to skill gain from other sources like books.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "SLOWLEARNER" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "FORGETFUL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "DEFT",
+ "name": "Deft",
+ "points": 1,
+ "description": "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.",
+ "starting_trait": true,
+ "category": [ "BIRD", "BEAST", "RAPTOR", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "FLIMSY",
+ "name": "Flimsy",
+ "points": -4,
+ "description": "Your body can't take much abuse. Its maximum HP is 25% lower than usual and you heal slightly slower. Stacks with Glass Jaw.",
+ "starting_trait": true,
+ "valid": false,
+ "social_modifiers": { "intimidate": -2 },
+ "cancels": [ "TOUGH", "TOUGH2", "TOUGH3" ],
+ "category": [ "MOUSE", "VAMP" ],
+ "changes_to": [ "FLIMSY2" ],
+ "hp_modifier": -0.25
+ },
+ {
+ "type": "mutation",
+ "id": "TERRIFYING",
+ "name": "Terrifying",
+ "points": 1,
+ "description": "There's something about you that creatures find frightening, and they are more likely to try to flee.",
+ "starting_trait": true,
+ "category": [ "BEAST", "INSECT", "CHIMERA", "VAMP" ],
+ "social_modifiers": { "intimidate": 15 }
+ },
+ {
+ "type": "mutation",
+ "id": "DISRESISTANT",
+ "name": "Disease Resistant",
+ "points": 1,
+ "description": "It's very unlikely that you will catch ambient diseases like a cold or the flu.",
+ "starting_trait": true,
+ "changes_to": [ "DISIMMUNE" ],
+ "category": [ "CATTLE", "RAT", "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "SELFAWARE",
+ "name": "Self-Aware",
+ "points": 1,
+ "description": "You get to see your exact amount of HP remaining and health, instead of only having a vague idea of whether you're in good condition or not.",
+ "starting_trait": true,
+ "valid": false,
+ "active": true,
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INCONSPICUOUS",
+ "name": "Inconspicuous",
+ "points": 1,
+ "description": "While sleeping or staying still, it is less likely that monsters will wander close to you.",
+ "category": [ "VAMP" ],
+ "social_modifiers": { "lie": 2 },
+ "valid": false
+ },
+ {
+ "type": "mutation",
+ "id": "STYLISH",
+ "name": "Stylish",
+ "points": 2,
+ "description": "Practicality is far less important than style. Your morale is improved by wearing fashionable and attractive clothing.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false
+ },
+ {
+ "type": "mutation",
+ "id": "EAGLEEYED",
+ "//": "Can't change the ID as that breaks save-compatibility.",
+ "name": "Scout",
+ "points": 1,
+ "description": "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.",
+ "valid": false,
+ "starting_trait": true,
+ "category": [ "MOUSE", "VAMP" ],
+ "cancels": [ "MYOPIC", "UNOBSERVANT" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "cancels": [ "URSINE_EYE", "EAGLEEYED" ],
+ "category": [ "BEAST", "TROGLOBITE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CANNIBAL",
+ "name": "Cannibal",
+ "points": 1,
+ "description": "For your whole life you've been forbidden from indulging in your peculiar tastes. Now the world's ended, and you'll be damned if anyone is going to tell you that you can't eat people.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "VEGETARIAN" ],
+ "flags": [ "CANNIBAL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PSYCHOPATH",
+ "name": "Psychopath",
+ "points": 2,
+ "description": "You don't experience guilt like others do. Even when you know your actions are wrong, you just don't care.",
+ "category": [ "VAMP" ],
+ "starting_trait": true,
+ "valid": false,
+ "social_modifiers": { "intimidate": 5 },
+ "cancels": [ "PACIFIST" ],
+ "flags": [ "CANNIBAL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "WEAKSCENT",
+ "name": "Weak Scent",
+ "points": 1,
+ "description": "Your scent is quite weak. Animals that track your scent will do so with more difficulty.",
+ "starting_trait": true,
+ "category": [ "ALPHA", "VAMP" ],
+ "types": [ "SCENT" ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIAR",
+ "name": "Skilled Liar",
+ "points": 1,
+ "description": "You have no qualms about bending the truth, and have practically no tells. Telling lies and otherwise bluffing will be much easier for you.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "cancels": [ "TRUTHTELLER" ],
+ "social_modifiers": { "lie": 40 }
+ },
+ {
+ "type": "mutation",
+ "id": "WAKEFUL",
+ "name": "Less Sleep",
+ "points": 1,
+ "description": "You need less sleep than the average person.",
+ "changes_to": [ "WAKEFUL2" ],
+ "types": [ "SLEEP" ],
+ "starting_trait": true,
+ "category": [ "ALPHA", "ELFA", "VAMP" ],
+ "fatigue_modifier": -0.15
+ },
+ {
+ "type": "mutation",
+ "id": "WAKEFUL2",
+ "name": "Very Little Sleep",
+ "points": 3,
+ "description": "You don't sleep often. But when you do, you need very little of it.",
+ "valid": false,
+ "types": [ "SLEEP" ],
+ "prereqs": [ "WAKEFUL" ],
+ "changes_to": [ "WAKEFUL3" ],
+ "threshreq": [ "THRESH_ALPHA", "THRESH_ELFA", "THRESH_VAMP" ],
+ "category": [ "ALPHA", "ELFA", "VAMP" ],
+ "fatigue_modifier": -0.25
+ },
+ {
+ "type": "mutation",
+ "id": "PRETTY",
+ "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.",
+ "starting_trait": true,
+ "category": [ "ALPHA", "FELINE", "LUPINE", "VAMP" ],
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "changes_to": [ "BEAUTIFUL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFUL",
+ "name": "Beautiful",
+ "points": 2,
+ "visibility": -4,
+ "ugliness": -4,
+ "description": "You're a real head-turner. Some people will react well to your appearance, and most people have an easier time trusting you.",
+ "category": [ "VAMP" ],
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "prereqs": [ "PRETTY" ],
+ "changes_to": [ "BEAUTIFUL2" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFUL2",
+ "name": "Very Beautiful",
+ "points": 3,
+ "visibility": -7,
+ "ugliness": -7,
+ "description": "You are a vision of beauty. Some people will react very well to your looks, and most people will trust you immediately.",
+ "category": [ "VAMP" ],
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "prereqs": [ "BEAUTIFUL" ],
+ "changes_to": [ "BEAUTIFUL3" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFUL3",
+ "name": "Glorious",
+ "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.",
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "prereqs": [ "BEAUTIFUL2" ],
+ "category": [ "ELFA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIGHTSTEP",
+ "name": "Light Step",
+ "points": 1,
+ "description": "You make less noise while walking. You're also less likely to set off traps.",
+ "starting_trait": true,
+ "category": [ "BIRD", "ELFA", "FELINE", "VAMP" ],
+ "cancels": [ "CLUMSY" ]
+ },
+ {
+ "type": "mutation",
+ "id": "DEBUG_SILENT",
+ "name": "Silent Movement",
+ "points": 6,
+ "valid": false,
+ "description": "You know how to move completely silently.",
+ "threshreq": [ "THRESH_VAMP" ],
+ "category": [ "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "purifiable": false,
+ "types": [ "HEALING" ],
+ "healing_resting": -0.66
+ },
+ {
+ "type": "mutation",
+ "id": "HEAVYSLEEPER",
+ "name": "Heavy Sleeper",
+ "points": -1,
+ "description": "You're quite the heavy sleeper. Noises are unlikely to wake you up.",
+ "changes_to": [ "HEAVYSLEEPER2" ],
+ "starting_trait": true,
+ "category": [ "INSECT", "PLANT", "MEDICAL", "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "HEAVYSLEEPER2",
+ "name": "Very Heavy Sleeper",
+ "points": -2,
+ "description": "You could probably sleep through a firefight.",
+ "valid": false,
+ "prereqs": [ "HEAVYSLEEPER" ],
+ "category": [ "BEAST", "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "ANIMALDISCORD",
+ "name": "Animal Discord",
+ "points": -1,
+ "description": "Most animals don't like you, and aggressive animals are more likely to attack you. This only applies to natural animals such as woodland creatures.",
+ "starting_trait": true,
+ "cancels": [ "ANIMALEMPATH" ],
+ "changes_to": [ "ANIMALDISCORD2" ],
+ "category": [ "LUPINE", "BEAST", "RAPTOR", "INSECT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "ANIMALDISCORD2",
+ "name": "Prey Animal",
+ "points": -3,
+ "description": "Natural animals like dogs and wolves see you as prey or a threat, and are liable to attack you on sight.",
+ "cancels": [ "ANIMALEMPATH" ],
+ "prereqs": [ "ANIMALDISCORD" ],
+ "category": [ "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NIGHTVISION",
+ "name": "Night Vision",
+ "points": 2,
+ "description": "You possess natural night vision, and can see further in the dark than most. Activate to toggle NV-visible areas on or off.",
+ "starting_trait": true,
+ "changes_to": [ "NIGHTVISION2" ],
+ "cancels": [ "ELFA_NV", "ELFA_FNV", "FEL_NV", "URSINE_EYE" ],
+ "category": [ "BIRD", "CATTLE", "INSECT", "VAMP" ],
+ "active": true,
+ "starts_active": true
+ },
+ {
+ "type": "mutation",
+ "id": "NIGHTVISION2",
+ "name": "High Night Vision",
+ "points": 4,
+ "description": "You can see incredibly well in the dark! Activate to toggle NV-visible areas on or off.",
+ "prereqs": [ "NIGHTVISION" ],
+ "changes_to": [ "NIGHTVISION3" ],
+ "cancels": [ "ELFA_NV", "ELFA_FNV", "FEL_NV", "URSINE_EYE" ],
+ "category": [ "FISH", "BEAST", "INSECT", "RAT", "CHIMERA", "LUPINE", "MOUSE", "VAMP" ],
+ "active": true,
+ "starts_active": true
+ },
+ {
+ "type": "mutation",
+ "id": "NIGHTVISION3",
+ "name": "Full Night Vision",
+ "points": 6,
+ "description": "You can see in pitch blackness as if you were wearing night-vision goggles. Activate to toggle NV-visible areas on or off.",
+ "prereqs": [ "NIGHTVISION2" ],
+ "leads_to": [ "INFRARED" ],
+ "cancels": [ "ELFA_NV", "ELFA_FNV", "FEL_NV", "URSINE_EYE" ],
+ "category": [ "FISH", "TROGLOBITE", "SPIDER", "VAMP" ],
+ "active": true,
+ "starts_active": true
+ },
+ {
+ "type": "mutation",
+ "id": "ELFAEYES",
+ "name": "Fey Eyes",
+ "points": 1,
+ "description": "Your eyes have turned...green. It's tough to tell the exact shade as it seems to shift. The effect is ...pleasant.",
+ "leads_to": [ "ELFA_NV" ],
+ "valid": false,
+ "cancels": [ "BIRD_EYE", "LIZ_EYE", "FEL_EYE", "URSINE_EYE", "COMPOUND_EYES" ],
+ "category": [ "ELFA", "VAMP" ],
+ "social_modifiers": { "lie": 5, "persuade": 5, "intimidate": -5 }
+ },
+ {
+ "type": "mutation",
+ "id": "FASTHEALER",
+ "name": "Fast Healer",
+ "points": 2,
+ "description": "You heal faster when sleeping and will even recover small amount of HP when not sleeping.",
+ "starting_trait": true,
+ "types": [ "HEALING" ],
+ "changes_to": [ "FASTHEALER2", "REGEN_LIZ" ],
+ "category": [ "MEDICAL", "VAMP" ],
+ "healing_awake": 0.2,
+ "healing_resting": 0.5
+ },
+ {
+ "type": "mutation",
+ "id": "FASTHEALER2",
+ "name": "Very Fast Healer",
+ "points": 4,
+ "description": "Your flesh regenerates slowly, and you will regain HP even when not sleeping.",
+ "types": [ "HEALING" ],
+ "prereqs": [ "FASTHEALER" ],
+ "changes_to": [ "REGEN" ],
+ "category": [ "PLANT", "VAMP" ],
+ "healing_awake": 0.66,
+ "healing_resting": 0.5
+ },
+ {
+ "type": "mutation",
+ "id": "REGEN",
+ "name": "Regeneration",
+ "points": 6,
+ "description": "Your flesh regenerates from wounds incredibly quickly.",
+ "types": [ "HEALING" ],
+ "prereqs": [ "FASTHEALER2" ],
+ "category": [ "SLIME", "TROGLOBITE", "VAMP" ],
+ "healing_awake": 2.0,
+ "healing_resting": 1.5
+ },
+ {
+ "type": "mutation",
+ "id": "FANGS",
+ "name": "Fangs",
+ "points": 2,
+ "visibility": 2,
+ "ugliness": 2,
+ "description": "Your teeth have grown into two-inch-long fangs, allowing you to make an extra attack when conditions favor it.",
+ "types": [ "TEETH" ],
+ "changes_to": [ "SABER_TEETH", "SHARKTEETH" ],
+ "category": [ "LIZARD", "FISH", "LUPINE", "FELINE", "CHIMERA", "VAMP" ],
+ "attacks": [
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "blocker_mutations": [ "MUZZLE", "MUZZLE_LONG", "MUZZLE_RAT" ],
+ "body_part": "MOUTH",
+ "chance": 20,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ },
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "required_mutations": [ "MUZZLE" ],
+ "body_part": "MOUTH",
+ "chance": 18,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ },
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "required_mutations": [ "MUZZLE_LONG" ],
+ "body_part": "MOUTH",
+ "chance": 15,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ },
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "required_mutations": [ "MUZZLE_RAT" ],
+ "body_part": "MOUTH",
+ "chance": 19,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ }
+ ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIGHT_BONES",
+ "name": "Light Bones",
+ "points": 2,
+ "description": "Your bones are very light. This enables you to move and attack 10% faster, but also reduces your carrying weight by 20% and makes bashing attacks hurt a little more.",
+ "category": [ "MOUSE", "VAMP" ],
+ "changes_to": [ "HOLLOW_BONES" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NAILS",
+ "name": "Long Fingernails",
+ "points": 1,
+ "visibility": 1,
+ "description": "Your fingernails are long and sharp. If you aren't wearing gloves, your unarmed attacks deal a minor amount of cutting damage.",
+ "types": [ "CLAWS" ],
+ "changes_to": [ "CLAWS", "TALONS" ],
+ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ],
+ "category": [ "RAPTOR", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CLAWS",
+ "name": "Claws",
+ "points": 2,
+ "visibility": 3,
+ "ugliness": 2,
+ "description": "You have claws on the ends of your fingers. If you aren't wearing gloves, your unarmed attacks deal a minor amount of cutting damage.",
+ "types": [ "CLAWS" ],
+ "prereqs": [ "NAILS" ],
+ "changes_to": [ "CLAWS_RETRACT", "CLAWS_RAT" ],
+ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ],
+ "category": [ "BEAST", "RAT", "URSINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CLAWS_RETRACT",
+ "name": "Retractable Claws",
+ "points": 2,
+ "ugliness": 1,
+ "description": "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.",
+ "types": [ "CLAWS" ],
+ "prereqs": [ "CLAWS" ],
+ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ],
+ "category": [ "FELINE", "VAMP" ],
+ "active": true,
+ "cost": 0
+ },
+ {
+ "type": "mutation",
+ "id": "MUT_TOUGH",
+ "name": "Resilient",
+ "points": 2,
+ "description": "You can survive injuries that would incapacitate humans: you get a 20% bonus to all hit points. Stacks with Tough, etc.",
+ "social_modifiers": { "intimidate": 2 },
+ "prereqs": [ "LARGE_OK", "HUGE_OK", "STR_UP_3", "STR_UP_4", "MASOCHIST_MED" ],
+ "threshreq": [ "THRESH_URSINE", "THRESH_CATTLE", "THRESH_CHIMERA", "THRESH_MEDICAL", "THRESH_LIZARD", "THRESH_BEAST", "THRESH_VAMP" ],
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "changes_to": [ "MUT_TOUGH2" ],
+ "category": [ "URSINE", "CATTLE", "CHIMERA", "BEAST", "LIZARD", "MEDICAL", "VAMP" ],
+ "hp_modifier_secondary": 0.2
+ },
+ {
+ "type": "mutation",
+ "id": "MUT_TOUGH2",
+ "name": "Solidly Built",
+ "points": 3,
+ "description": "Not much scares you. You get a 30% bonus to all hit points. Stacks with Tough, etc.",
+ "social_modifiers": { "intimidate": 3 },
+ "valid": false,
+ "prereqs": [ "MUT_TOUGH" ],
+ "threshreq": [ "THRESH_URSINE", "THRESH_CATTLE", "THRESH_CHIMERA", "THRESH_MEDICAL", "THRESH_VAMP" ],
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "changes_to": [ "MUT_TOUGH3" ],
+ "category": [ "URSINE", "CATTLE", "CHIMERA", "MEDICAL", "VAMP" ],
+ "hp_modifier_secondary": 0.3
+ },
+ {
+ "type": "mutation",
+ "id": "PAINREC1",
+ "name": "Pain Recovery",
+ "points": 3,
+ "description": "You recover from pain slightly faster than normal.",
+ "changes_to": [ "PAINREC2" ],
+ "category": [ "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PAINREC2",
+ "name": "Quick Pain Recovery",
+ "points": 5,
+ "description": "You recover from pain faster than normal.",
+ "prereqs": [ "PAINREC1" ],
+ "changes_to": [ "PAINREC3" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PAINREC3",
+ "name": "Very Quick Pain Recovery",
+ "points": 8,
+ "description": "You recover from pain much faster than normal.",
+ "prereqs": [ "PAINREC2" ],
+ "category": [ "MEDICAL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NOPAIN",
+ "name": "Deadened",
+ "points": 2,
+ "description": "Nothing hurts any more. Those bites tickle and the wounds itch a bit, but that's it.",
+ "valid": false,
+ "purifiable": false,
+ "prereqs": [ "MASOCHIST", "PAINRESIST" ],
+ "prereqs2": [ "PAINREC3" ],
+ "cancels": [ "MORE_PAIN", "MORE_PAIN2", "MORE_PAIN3" ],
+ "threshreq": [ "THRESH_MEDICAL", "THRESH_VAMP" ],
+ "//": "MASOCHIST_MED, CENOBITE, and NOPAIN don't cancel each other. By design. Poor painless people...",
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PAINRESIST",
+ "name": "Pain Resistant",
+ "points": 2,
+ "description": "You have a high tolerance for pain.",
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "MORE_PAIN", "MORE_PAIN2", "MORE_PAIN3" ],
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "MORE_PAIN",
+ "name": "Pain Sensitive",
+ "points": -2,
+ "description": "For some reason things always seem to hurt you more. Pain dealt to you is increased by 25%.",
+ "starting_trait": true,
+ "//": "The MORE_PAIN mutations will always increase the pain you receive by at least 1.",
+ "cancels": [ "PAINRESIST", "NOPAIN" ],
+ "category": [ "VAMP" ],
+ "changes_to": [ "MORE_PAIN2" ]
+ },
+ {
+ "type": "mutation",
+ "id": "MORE_PAIN2",
+ "name": "Hyperalgesia",
+ "points": -3,
+ "description": "Your body experiences pain out of proportion to the physical causes. Pain dealt to you is increased by 50%.",
+ "prereqs": [ "MORE_PAIN" ],
+ "cancels": [ "PAINRESIST", "NOPAIN" ],
+ "category": [ "VAMP" ],
+ "changes_to": [ "MORE_PAIN3" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "purifiable": false,
+ "changes_to": [ "PRED2" ],
+ "prereqs": [ "CARNIVORE" ],
+ "threshreq": [
+ "THRESH_BEAST",
+ "THRESH_RAPTOR",
+ "THRESH_CHIMERA",
+ "THRESH_LUPINE",
+ "THRESH_FELINE",
+ "THRESH_URSINE",
+ "THRESH_LIZARD",
+ "THRESH_SPIDER",
+ "THRESH_VAMP"
+ ],
+ "cancels": [ "PACIFIST" ],
+ "category": [ "BEAST", "RAPTOR", "CHIMERA", "LUPINE", "FELINE", "URSINE", "LIZARD", "SPIDER", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "social_modifiers": { "intimidate": 3 },
+ "purifiable": false,
+ "prereqs": [ "CARNIVORE", "THRESH_URSINE" ],
+ "prereqs2": [ "PRED1" ],
+ "changes_to": [ "PRED3" ],
+ "threshreq": [
+ "THRESH_BEAST",
+ "THRESH_RAPTOR",
+ "THRESH_CHIMERA",
+ "THRESH_LUPINE",
+ "THRESH_FELINE",
+ "THRESH_URSINE",
+ "THRESH_LIZARD",
+ "THRESH_SPIDER",
+ "THRESH_VAMP"
+ ],
+ "cancels": [ "PACIFIST" ],
+ "category": [ "BEAST", "RAPTOR", "CHIMERA", "LUPINE", "FELINE", "URSINE", "LIZARD", "SPIDER", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "STR_UP",
+ "name": "Strong",
+ "points": 1,
+ "description": "Your muscles are a little stronger. Strength + 1",
+ "changes_to": [ "STR_UP_2" ],
+ "category": [ "INSECT", "ELFA", "RAPTOR", "VAMP" ],
+ "passive_mods": { "str_mod": 1 }
+ },
+ {
+ "type": "mutation",
+ "id": "STR_UP_2",
+ "name": "Very Strong",
+ "points": 2,
+ "description": "Your muscles are stronger. Strength + 2",
+ "prereqs": [ "STR_UP" ],
+ "changes_to": [ "STR_UP_3", "STR_ALPHA" ],
+ "category": [ "LIZARD", "CATTLE", "PLANT", "ALPHA", "VAMP" ],
+ "passive_mods": { "str_mod": 2 }
+ },
+ {
+ "type": "mutation",
+ "id": "DEX_UP_2",
+ "name": "Very Dextrous",
+ "points": 2,
+ "description": "You are nimbler. Dexterity + 2",
+ "prereqs": [ "DEX_UP" ],
+ "changes_to": [ "DEX_UP_3" ],
+ "category": [ "LIZARD", "SPIDER", "CHIMERA", "RAPTOR", "MOUSE", "VAMP" ],
+ "passive_mods": { "dex_mod": 2 }
+ },
+ {
+ "type": "mutation",
+ "id": "DEX_UP_3",
+ "name": "Extremely Dextrous",
+ "points": 3,
+ "description": "You are nimble and quick. Dexterity + 4",
+ "prereqs": [ "DEX_UP_2" ],
+ "changes_to": [ "DEX_UP_4" ],
+ "category": [ "BIRD", "ELFA", "FELINE", "VAMP" ],
+ "passive_mods": { "dex_mod": 4 }
+ },
+ {
+ "type": "mutation",
+ "id": "INT_UP",
+ "name": "Smart",
+ "points": 1,
+ "description": "You are a little smarter. Intelligence + 1",
+ "changes_to": [ "INT_UP_2", "INT_ALPHA", "INT_SLIME" ],
+ "category": [ "SLIME", "ALPHA", "VAMP" ],
+ "passive_mods": { "int_mod": 1 }
+ },
+ {
+ "type": "mutation",
+ "id": "PER_UP_2",
+ "name": "Very Perceptive",
+ "points": 2,
+ "description": "Your senses are keener. Perception + 2",
+ "prereqs": [ "PER_UP" ],
+ "changes_to": [ "PER_UP_3", "PER_ALPHA" ],
+ "category": [ "ALPHA", "CHIMERA", "VAMP" ],
+ "passive_mods": { "per_mod": 2 }
+ },
+ {
+ "type": "mutation",
+ "id": "DEFORMED",
+ "name": "Deformed",
+ "points": -2,
+ "visibility": 4,
+ "ugliness": 4,
+ "description": "You're minorly deformed. Some people will react badly to your appearance.",
+ "cancels": [ "PRETTY", "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3" ],
+ "prereqs": [ "UGLY" ],
+ "changes_to": [ "DEFORMED2" ],
+ "category": [ "FISH", "CATTLE", "INSECT", "CEPHALOPOD", "FELINE", "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "HOLLOW_BONES",
+ "name": "Hollow Bones",
+ "points": 1,
+ "mixed_effect": true,
+ "description": "You have Avian Bone Syndrome--your bones are nearly hollow. Your body is very light as a result, enabling you to move and attack 20% faster, but also frail; you can carry 40% less, and bashing attacks injure you more.",
+ "prereqs": [ "LIGHT_BONES" ],
+ "category": [ "BIRD", "SLIME", "ELFA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "VOMITOUS",
+ "name": "Vomitous",
+ "points": -3,
+ "description": "You have a major digestive disorder. Though it causes you to vomit frequently, you have found that you can trigger your vomit reflex on demand, too.",
+ "prereqs": [ "NAUSEA" ],
+ "changes_to": [ "EATPOISON" ],
+ "category": [ "SLIME", "RAT", "MEDICAL", "ELFA", "VAMP" ],
+ "active": true
+ },
+ {
+ "type": "mutation",
+ "id": "HUNGER",
+ "name": "Fast Metabolism",
+ "points": -2,
+ "description": "You require more food than most people, but recover stamina slightly faster.",
+ "starting_trait": true,
+ "types": [ "METABOLISM" ],
+ "changes_to": [ "HUNGER2", "MET_RAT" ],
+ "category": [ "RAT", "ALPHA", "MEDICAL", "ELFA", "BEAST", "SLIME", "RAPTOR", "CHIMERA", "MOUSE", "VAMP" ],
+ "metabolism_modifier": 0.5,
+ "stamina_regen_modifier": 0.1
+ },
+ {
+ "type": "mutation",
+ "id": "THIRST2",
+ "name": "Very Thirsty",
+ "points": -3,
+ "description": "Ugh, out of water already? You need about twice the fluids of an average human.",
+ "prereqs": [ "THIRST" ],
+ "changes_to": [ "THIRST3" ],
+ "cancels": [ "NO_THIRST" ],
+ "category": [ "FISH", "SLIME", "CEPHALOPOD", "VAMP" ],
+ "thirst_modifier": 1.0
+ },
+ {
+ "type": "mutation",
+ "id": "THIRST3",
+ "name": "Extremely Thirsty",
+ "points": -5,
+ "description": "You dry out seriously quickly, requiring three times as much liquid to stay hydrated.",
+ "category": [ "VAMP" ],
+ "cancels": [ "NO_THIRST" ],
+ "prereqs": [ "THIRST2" ],
+ "thirst_modifier": 2.0
+ },
+ {
+ "type": "mutation",
+ "id": "ROT1",
+ "name": "Weakening",
+ "points": -2,
+ "bodytemp_modifiers": [ -250, -250 ],
+ "description": "You feel as though you are slowly weakening and your body heals slower.",
+ "types": [ "HEALING" ],
+ "changes_to": [ "ROT2" ],
+ "category": [ "ELFA", "VAMP" ],
+ "healing_awake": -0.002,
+ "healing_resting": -0.25
+ },
+ {
+ "type": "mutation",
+ "id": "ROT2",
+ "name": "Deterioration",
+ "points": -8,
+ "bodytemp_modifiers": [ -750, -750 ],
+ "description": "Your body is very slowly wasting away.",
+ "types": [ "HEALING" ],
+ "prereqs": [ "ROT1" ],
+ "changes_to": [ "ROT3" ],
+ "category": [ "CHIMERA", "VAMP" ],
+ "healing_awake": -0.02
+ },
+ {
+ "type": "mutation",
+ "id": "PALE",
+ "name": "Pale Skin",
+ "points": 0,
+ "visibility": 3,
+ "ugliness": 1,
+ "description": "Your skin is rather pale.",
+ "changes_to": [ "ALBINO" ],
+ "leads_to": [ "TROGLO" ],
+ "category": [ "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "changes_to": [ "SUNBURN" ],
+ "category": [ "TROGLOBITE", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "SUNBURN",
+ "name": "Solar Sensitivity",
+ "points": -3,
+ "description": "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It will seriously burn you.",
+ "prereqs": [ "ALBINO" ],
+ "prereqs2": [ "TROGLO2", "TROGLO3" ],
+ "category": [ "TROGLOBITE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TROGLO",
+ "name": "Light Sensitive",
+ "points": -2,
+ "description": "Sunlight makes you uncomfortable. If you are outdoors and the weather is Sunny, you suffer -1 to all stats.",
+ "cancels": [ "SUNLIGHT_DEPENDENT" ],
+ "changes_to": [ "TROGLO2" ],
+ "category": [ "LIZARD", "BEAST", "INSECT", "SLIME", "SPIDER", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TROGLO2",
+ "name": "Very Light Sensitive",
+ "points": -3,
+ "description": "Sunlight makes you very uncomfortable. If you are outdoors during the day, you suffer -1 to all stats; -2 if the weather is Sunny.",
+ "cancels": [ "SUNLIGHT_DEPENDENT" ],
+ "prereqs": [ "TROGLO" ],
+ "changes_to": [ "TROGLO3" ],
+ "category": [ "RAT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TROGLO3",
+ "name": "Troglobite",
+ "points": -5,
+ "description": "Sunlight makes you extremely uncomfortable, resulting in large penalties to all stats.",
+ "cancels": [ "SUNLIGHT_DEPENDENT" ],
+ "prereqs": [ "TROGLO2" ],
+ "category": [ "TROGLOBITE", "VAMP" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json b/data/mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json
new file mode 100644
index 0000000000000..459651bc59b6c
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json
@@ -0,0 +1,1186 @@
+[
+ {
+ "type": "mutation",
+ "id": "THRESH_VAMP",
+ "name": "Night Walker",
+ "points": 1,
+ "description": "Emerge from the grave of the old world, and become the night once again.",
+ "//": "Parallel reference to Woken Furies quote from the Altered Carbon series and song.",
+ "valid": false,
+ "purifiable": false,
+ "threshold": true
+ },
+ {
+ "type": "mutation",
+ "id": "UNSTABLE",
+ "name": "Genetically Unstable",
+ "points": -2,
+ "mixed_effect": true,
+ "description": "Your DNA has been damaged in a way that causes you to continually develop more mutations.",
+ "changes_to": [ "CHAOTIC" ],
+ "category": [ "SLIME", "MEDICAL", "CHIMERA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "HISS",
+ "name": "Hissing Voice",
+ "mixed_effect": true,
+ "points": -1,
+ "description": "You hiss when speaking. Persuading NPCs will be more difficult, but threatening them will be easier.",
+ "category": [ "LIZARD", "RAPTOR", "VAMP" ],
+ "social_modifiers": { "persuade": -20, "lie": -10, "intimidate": 10 }
+ },
+ {
+ "type": "mutation",
+ "id": "FLEET",
+ "name": "Fleet-Footed",
+ "points": 2,
+ "description": "You can move more quickly than most, resulting in a 15% speed bonus on sure footing.",
+ "starting_trait": true,
+ "changes_to": [ "FLEET2" ],
+ "category": [ "SPIDER", "MOUSE", "VAMP" ],
+ "types": [ "RUNNING" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BADTEMPER",
+ "name": "Bad Temper",
+ "points": -2,
+ "description": "Things just keep getting you down. You tend to be unhappy, and it takes some doing to cheer you up.",
+ "starting_trait": true,
+ "cancels": [ "OPTIMISTIC" ],
+ "category": [ "URSINE", "LIZARD", "CHIMERA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INSOMNIA",
+ "name": "Insomniac",
+ "points": -2,
+ "description": "You have a hard time falling asleep, even under the best circumstances!",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "VAMP" ],
+ "cancels": [ "EASYSLEEPER" ]
+ },
+ {
+ "type": "mutation",
+ "id": "THINSKIN",
+ "name": "Thin-Skinned",
+ "points": -1,
+ "description": "Your skin is fragile. Cutting damage is slightly increased for you.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "cancels": [ "THICKSKIN" ],
+ "armor": [ { "parts": "ALL", "cut": -1 } ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIGHTWEIGHT",
+ "name": "Lightweight",
+ "points": -1,
+ "description": "Alcohol and drugs go straight to your head. You suffer the negative effects of these for longer.",
+ "starting_trait": true,
+ "category": [ "MEDICAL", "VAMP" ],
+ "cancels": [ "DRUNKEN", "TOLERANCE" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NARCOLEPTIC",
+ "name": "Narcoleptic",
+ "points": -3,
+ "description": "You randomly fall asleep without any reason.",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "MOODSWINGS",
+ "name": "Mood Swings",
+ "points": -1,
+ "description": "Your morale will shift up and down at random, often dramatically.",
+ "starting_trait": true,
+ "valid": false,
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "WEAKSTOMACH",
+ "name": "Weak Stomach",
+ "points": -1,
+ "description": "You are more likely to throw up from food poisoning, alcohol, etc.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "changes_to": [ "NAUSEA" ],
+ "cancels": [ "STRONGSTOMACH" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CHEMIMBALANCE",
+ "name": "Chemical Imbalance",
+ "points": -2,
+ "description": "You suffer from a minor chemical imbalance, whether mental or physical. Minor changes to your internal chemistry will manifest themselves on occasion, such as hunger, sleepiness, narcotic effects, etc.",
+ "starting_trait": true,
+ "category": [ "SLIME", "MEDICAL", "CHIMERA", "ELFA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "GOODHEARING",
+ "name": "Good Hearing",
+ "points": 1,
+ "description": "Your hearing is better than average, and you can hear distant sounds more easily.",
+ "starting_trait": true,
+ "category": [ "ALPHA", "MOUSE", "VAMP" ],
+ "cancels": [ "BADHEARING" ]
+ },
+ {
+ "type": "mutation",
+ "id": "OUTDOORSMAN",
+ "name": "Outdoorsman",
+ "points": 1,
+ "description": "You are accustomed to being exposed to the elements. This decreases morale penalties for being wet.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "wet_protection": [
+ { "part": "HEAD", "ignored": 6 },
+ { "part": "LEG_L", "ignored": 8 },
+ { "part": "LEG_R", "ignored": 8 },
+ { "part": "FOOT_L", "ignored": 2 },
+ { "part": "FOOT_R", "ignored": 2 },
+ { "part": "ARM_L", "ignored": 8 },
+ { "part": "ARM_R", "ignored": 8 },
+ { "part": "HAND_L", "ignored": 12 },
+ { "part": "HAND_R", "ignored": 12 },
+ { "part": "TORSO", "ignored": 10 }
+ ]
+ },
+ {
+ "type": "mutation",
+ "id": "PARKOUR",
+ "name": "Parkour Expert",
+ "points": 2,
+ "description": "You're skilled at clearing obstacles; terrain like railings or counters are as easy for you to move on as solid ground.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "BADKNEES" ]
+ },
+ {
+ "type": "mutation",
+ "id": "GOODCARDIO",
+ "name": "Indefatigable",
+ "points": 2,
+ "description": "Whether due to exercise and good diet, or due to a natural propensity to physical endurance, you tire due to physical exertion much less readily than others. Your maximum stamina is 25% higher than usual.",
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "BADCARDIO" ],
+ "changes_to": [ "GOODCARDIO2" ],
+ "category": [ "FISH", "LUPINE", "MOUSE", "INSECT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "RADIOGENIC",
+ "name": "Radiogenic",
+ "points": 3,
+ "description": "Your system has adapted to radiation. While irradiated, you will actually heal slowly, converting the radiation into hit points.",
+ "category": [ "SLIME", "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INFRESIST",
+ "name": "Infection Resistant",
+ "points": 2,
+ "description": "Your immune system is particularly good at resisting infections. You have an increased chance for bad wounds and infections to heal on their own, and only suffer reduced penalties from them.",
+ "starting_trait": true,
+ "changes_to": [ "INFIMMUNE" ],
+ "category": [ "TROGLOBITE", "RAT", "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INFIMMUNE",
+ "name": "Infection Immune",
+ "points": 3,
+ "description": "Your bloodstream has developed antibiotic properties. Your wounds will never become infected.",
+ "prereqs": [ "DISRESISTANT" ],
+ "prereqs2": [ "INFRESIST" ],
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PARAIMMUNE",
+ "name": "Parasite Immune",
+ "points": 1,
+ "description": "Your body is unusually inhospitable to parasitic lifeforms. You will never become infested with internal parasites.",
+ "prereqs": [ "DISRESISTANT" ],
+ "prereqs2": [ "INFRESIST" ],
+ "category": [ "ELFA", "CHIMERA", "MEDICAL", "SLIME", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BENDY1",
+ "name": "Stretchy Limbs",
+ "points": 1,
+ "visibility": 1,
+ "description": "Your limbs seem to have a little more 'give' to them. +1 Dexterity.",
+ "changes_to": [ "BENDY2" ],
+ "threshreq": [ "THRESH_SLIME", "THRESH_ELFA", "THRESH_VAMP" ],
+ "category": [ "SLIME", "ELFA", "VAMP" ],
+ "passive_mods": { "dex_mod": 1 }
+ },
+ {
+ "type": "mutation",
+ "id": "QUICK",
+ "name": "Quick",
+ "points": 3,
+ "description": "You're just generally quick! You get a 10% bonus to action points.",
+ "starting_trait": true,
+ "category": [ "FISH", "BIRD", "INSECT", "TROGLOBITE", "CHIMERA", "RAPTOR", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "EASYSLEEPER",
+ "name": "Accomplished Sleeper",
+ "points": 1,
+ "description": "You have always been able to fall asleep easily, even when sleeping in less than ideal circumstances.",
+ "changes_to": [ "EASYSLEEPER2" ],
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "INSOMNIA" ],
+ "category": [ "MOUSE", "INSECT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TOUGH",
+ "name": "Tough",
+ "points": 2,
+ "description": "It takes a lot to bring you down! You get a 20% bonus to all hit points.",
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "changes_to": [ "TOUGH2" ],
+ "social_modifiers": { "intimidate": 2 },
+ "hp_modifier": 0.2
+ },
+ {
+ "type": "mutation",
+ "id": "TOUGH2",
+ "name": "Durable",
+ "points": 3,
+ "description": "You can shrug off almost anything! You get a 30% bonus to all hit points.",
+ "valid": false,
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "prereqs": [ "TOUGH" ],
+ "changes_to": [ "TOUGH3" ],
+ "social_modifiers": { "intimidate": 3 },
+ "hp_modifier": 0.3
+ },
+ {
+ "type": "mutation",
+ "id": "SLEEPY",
+ "name": "Sleepy",
+ "points": -1,
+ "description": "You need sleep more often, but still spend most of your time awake.",
+ "changes_to": [ "SLEEPY2", "MET_RAT" ],
+ "starting_trait": true,
+ "types": [ "SLEEP" ],
+ "category": [ "BEAST", "CHIMERA", "MOUSE", "VAMP" ],
+ "fatigue_modifier": 0.333,
+ "fatigue_regen_modifier": 0.333
+ },
+ {
+ "type": "mutation",
+ "id": "STRONGBACK",
+ "name": "Strong Back",
+ "points": 2,
+ "description": "You are capable of carrying far more than someone with similar strength could. Your maximum weight carried is increased by 35%.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "BADBACK" ]
+ },
+ {
+ "type": "mutation",
+ "id": "FASTLEARNER",
+ "name": "Fast Learner",
+ "points": 3,
+ "description": "You have a flexible mind, allowing you to learn skills much faster than others. Note that this only applies to real-world experience, not to skill gain from other sources like books.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "SLOWLEARNER" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "FORGETFUL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "DEFT",
+ "name": "Deft",
+ "points": 1,
+ "description": "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.",
+ "starting_trait": true,
+ "category": [ "BIRD", "BEAST", "RAPTOR", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "FLIMSY",
+ "name": "Flimsy",
+ "points": -4,
+ "description": "Your body can't take much abuse. Its maximum HP is 25% lower than usual and you heal slightly slower. Stacks with Glass Jaw.",
+ "starting_trait": true,
+ "valid": false,
+ "social_modifiers": { "intimidate": -2 },
+ "cancels": [ "TOUGH", "TOUGH2", "TOUGH3" ],
+ "category": [ "MOUSE", "VAMP" ],
+ "changes_to": [ "FLIMSY2" ],
+ "hp_modifier": -0.25
+ },
+ {
+ "type": "mutation",
+ "id": "TERRIFYING",
+ "name": "Terrifying",
+ "points": 1,
+ "description": "There's something about you that creatures find frightening, and they are more likely to try to flee.",
+ "starting_trait": true,
+ "category": [ "BEAST", "INSECT", "CHIMERA", "VAMP" ],
+ "social_modifiers": { "intimidate": 15 }
+ },
+ {
+ "type": "mutation",
+ "id": "DISRESISTANT",
+ "name": "Disease Resistant",
+ "points": 1,
+ "description": "It's very unlikely that you will catch ambient diseases like a cold or the flu.",
+ "starting_trait": true,
+ "changes_to": [ "DISIMMUNE" ],
+ "category": [ "CATTLE", "RAT", "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "SELFAWARE",
+ "name": "Self-Aware",
+ "points": 1,
+ "description": "You get to see your exact amount of HP remaining and health, instead of only having a vague idea of whether you're in good condition or not.",
+ "starting_trait": true,
+ "valid": false,
+ "active": true,
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "INCONSPICUOUS",
+ "name": "Inconspicuous",
+ "points": 1,
+ "description": "While sleeping or staying still, it is less likely that monsters will wander close to you.",
+ "category": [ "VAMP" ],
+ "social_modifiers": { "lie": 2 },
+ "valid": false
+ },
+ {
+ "type": "mutation",
+ "id": "STYLISH",
+ "name": "Stylish",
+ "points": 2,
+ "description": "Practicality is far less important than style. Your morale is improved by wearing fashionable and attractive clothing.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false
+ },
+ {
+ "type": "mutation",
+ "id": "EAGLEEYED",
+ "//": "Can't change the ID as that breaks save-compatibility.",
+ "name": "Scout",
+ "points": 1,
+ "description": "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.",
+ "valid": false,
+ "starting_trait": true,
+ "category": [ "MOUSE", "VAMP" ],
+ "cancels": [ "MYOPIC", "UNOBSERVANT" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "cancels": [ "URSINE_EYE", "EAGLEEYED" ],
+ "category": [ "BEAST", "TROGLOBITE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CANNIBAL",
+ "name": "Cannibal",
+ "points": 1,
+ "description": "For your whole life you've been forbidden from indulging in your peculiar tastes. Now the world's ended, and you'll be damned if anyone is going to tell you that you can't eat people.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "cancels": [ "VEGETARIAN" ],
+ "flags": [ "CANNIBAL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PSYCHOPATH",
+ "name": "Psychopath",
+ "points": 2,
+ "description": "You don't experience guilt like others do. Even when you know your actions are wrong, you just don't care.",
+ "category": [ "VAMP" ],
+ "starting_trait": true,
+ "valid": false,
+ "social_modifiers": { "intimidate": 5 },
+ "cancels": [ "PACIFIST" ],
+ "flags": [ "CANNIBAL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "WEAKSCENT",
+ "name": "Weak Scent",
+ "points": 1,
+ "description": "Your scent is quite weak. Animals that track your scent will do so with more difficulty.",
+ "starting_trait": true,
+ "category": [ "ALPHA", "VAMP" ],
+ "types": [ "SCENT" ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIAR",
+ "name": "Skilled Liar",
+ "points": 1,
+ "description": "You have no qualms about bending the truth, and have practically no tells. Telling lies and otherwise bluffing will be much easier for you.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "cancels": [ "TRUTHTELLER" ],
+ "social_modifiers": { "lie": 40 }
+ },
+ {
+ "type": "mutation",
+ "id": "WAKEFUL",
+ "name": "Less Sleep",
+ "points": 1,
+ "description": "You need less sleep than the average person.",
+ "changes_to": [ "WAKEFUL2" ],
+ "types": [ "SLEEP" ],
+ "starting_trait": true,
+ "category": [ "ALPHA", "ELFA", "VAMP" ],
+ "fatigue_modifier": -0.15
+ },
+ {
+ "type": "mutation",
+ "id": "WAKEFUL2",
+ "name": "Very Little Sleep",
+ "points": 3,
+ "description": "You don't sleep often. But when you do, you need very little of it.",
+ "valid": false,
+ "types": [ "SLEEP" ],
+ "prereqs": [ "WAKEFUL" ],
+ "changes_to": [ "WAKEFUL3" ],
+ "threshreq": [ "THRESH_ALPHA", "THRESH_ELFA", "THRESH_VAMP" ],
+ "category": [ "ALPHA", "ELFA", "VAMP" ],
+ "fatigue_modifier": -0.25
+ },
+ {
+ "type": "mutation",
+ "id": "PRETTY",
+ "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.",
+ "starting_trait": true,
+ "category": [ "ALPHA", "FELINE", "LUPINE", "VAMP" ],
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "changes_to": [ "BEAUTIFUL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFUL",
+ "name": "Beautiful",
+ "points": 2,
+ "visibility": -4,
+ "ugliness": -4,
+ "description": "You're a real head-turner. Some people will react well to your appearance, and most people have an easier time trusting you.",
+ "category": [ "VAMP" ],
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "prereqs": [ "PRETTY" ],
+ "changes_to": [ "BEAUTIFUL2" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFUL2",
+ "name": "Very Beautiful",
+ "points": 3,
+ "visibility": -7,
+ "ugliness": -7,
+ "description": "You are a vision of beauty. Some people will react very well to your looks, and most people will trust you immediately.",
+ "category": [ "VAMP" ],
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "prereqs": [ "BEAUTIFUL" ],
+ "changes_to": [ "BEAUTIFUL3" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BEAUTIFUL3",
+ "name": "Glorious",
+ "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.",
+ "cancels": [ "UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3" ],
+ "prereqs": [ "BEAUTIFUL2" ],
+ "category": [ "ELFA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIGHTSTEP",
+ "name": "Light Step",
+ "points": 1,
+ "description": "You make less noise while walking. You're also less likely to set off traps.",
+ "starting_trait": true,
+ "category": [ "BIRD", "ELFA", "FELINE", "VAMP" ],
+ "cancels": [ "CLUMSY" ]
+ },
+ {
+ "type": "mutation",
+ "id": "DEBUG_SILENT",
+ "name": "Silent Movement",
+ "points": 6,
+ "valid": false,
+ "description": "You know how to move completely silently.",
+ "threshreq": [ "THRESH_VAMP" ],
+ "category": [ "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "category": [ "VAMP" ],
+ "valid": false,
+ "purifiable": false,
+ "types": [ "HEALING" ],
+ "healing_resting": -0.66
+ },
+ {
+ "type": "mutation",
+ "id": "HEAVYSLEEPER",
+ "name": "Heavy Sleeper",
+ "points": -1,
+ "description": "You're quite the heavy sleeper. Noises are unlikely to wake you up.",
+ "changes_to": [ "HEAVYSLEEPER2" ],
+ "starting_trait": true,
+ "category": [ "INSECT", "PLANT", "MEDICAL", "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "HEAVYSLEEPER2",
+ "name": "Very Heavy Sleeper",
+ "points": -2,
+ "description": "You could probably sleep through a firefight.",
+ "valid": false,
+ "prereqs": [ "HEAVYSLEEPER" ],
+ "category": [ "BEAST", "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "ANIMALDISCORD",
+ "name": "Animal Discord",
+ "points": -1,
+ "description": "Most animals don't like you, and aggressive animals are more likely to attack you. This only applies to natural animals such as woodland creatures.",
+ "starting_trait": true,
+ "cancels": [ "ANIMALEMPATH" ],
+ "changes_to": [ "ANIMALDISCORD2" ],
+ "category": [ "LUPINE", "BEAST", "RAPTOR", "INSECT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "ANIMALDISCORD2",
+ "name": "Prey Animal",
+ "points": -3,
+ "description": "Natural animals like dogs and wolves see you as prey or a threat, and are liable to attack you on sight.",
+ "cancels": [ "ANIMALEMPATH" ],
+ "prereqs": [ "ANIMALDISCORD" ],
+ "category": [ "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NIGHTVISION",
+ "name": "Night Vision",
+ "points": 2,
+ "description": "You possess natural night vision, and can see further in the dark than most. Activate to toggle NV-visible areas on or off.",
+ "starting_trait": true,
+ "changes_to": [ "NIGHTVISION2" ],
+ "cancels": [ "ELFA_NV", "ELFA_FNV", "FEL_NV", "URSINE_EYE" ],
+ "category": [ "BIRD", "CATTLE", "INSECT", "VAMP" ],
+ "active": true,
+ "starts_active": true
+ },
+ {
+ "type": "mutation",
+ "id": "NIGHTVISION2",
+ "name": "High Night Vision",
+ "points": 4,
+ "description": "You can see incredibly well in the dark! Activate to toggle NV-visible areas on or off.",
+ "prereqs": [ "NIGHTVISION" ],
+ "changes_to": [ "NIGHTVISION3" ],
+ "cancels": [ "ELFA_NV", "ELFA_FNV", "FEL_NV", "URSINE_EYE" ],
+ "category": [ "FISH", "BEAST", "INSECT", "RAT", "CHIMERA", "LUPINE", "MOUSE", "VAMP" ],
+ "active": true,
+ "starts_active": true
+ },
+ {
+ "type": "mutation",
+ "id": "NIGHTVISION3",
+ "name": "Full Night Vision",
+ "points": 6,
+ "description": "You can see in pitch blackness as if you were wearing night-vision goggles. Activate to toggle NV-visible areas on or off.",
+ "prereqs": [ "NIGHTVISION2" ],
+ "leads_to": [ "INFRARED" ],
+ "cancels": [ "ELFA_NV", "ELFA_FNV", "FEL_NV", "URSINE_EYE" ],
+ "category": [ "FISH", "TROGLOBITE", "SPIDER", "VAMP" ],
+ "active": true,
+ "starts_active": true
+ },
+ {
+ "type": "mutation",
+ "id": "ELFAEYES",
+ "name": "Fey Eyes",
+ "points": 1,
+ "description": "Your eyes have turned...green. It's tough to tell the exact shade as it seems to shift. The effect is ...pleasant.",
+ "leads_to": [ "ELFA_NV" ],
+ "valid": false,
+ "cancels": [ "BIRD_EYE", "LIZ_EYE", "FEL_EYE", "URSINE_EYE", "COMPOUND_EYES" ],
+ "category": [ "ELFA", "VAMP" ],
+ "social_modifiers": { "lie": 5, "persuade": 5, "intimidate": -5 }
+ },
+ {
+ "type": "mutation",
+ "id": "FASTHEALER",
+ "name": "Fast Healer",
+ "points": 2,
+ "description": "You heal faster when sleeping and will even recover small amount of HP when not sleeping.",
+ "starting_trait": true,
+ "types": [ "HEALING" ],
+ "changes_to": [ "FASTHEALER2", "REGEN_LIZ" ],
+ "category": [ "MEDICAL", "VAMP" ],
+ "healing_awake": 0.2,
+ "healing_resting": 0.5
+ },
+ {
+ "type": "mutation",
+ "id": "FASTHEALER2",
+ "name": "Very Fast Healer",
+ "points": 4,
+ "description": "Your flesh regenerates slowly, and you will regain HP even when not sleeping.",
+ "types": [ "HEALING" ],
+ "prereqs": [ "FASTHEALER" ],
+ "changes_to": [ "REGEN" ],
+ "category": [ "PLANT", "VAMP" ],
+ "healing_awake": 0.66,
+ "healing_resting": 0.5
+ },
+ {
+ "type": "mutation",
+ "id": "REGEN",
+ "name": "Regeneration",
+ "points": 6,
+ "description": "Your flesh regenerates from wounds incredibly quickly.",
+ "types": [ "HEALING" ],
+ "prereqs": [ "FASTHEALER2" ],
+ "category": [ "SLIME", "TROGLOBITE", "VAMP" ],
+ "healing_awake": 2.0,
+ "healing_resting": 1.5
+ },
+ {
+ "type": "mutation",
+ "id": "FANGS",
+ "name": "Fangs",
+ "points": 2,
+ "visibility": 2,
+ "ugliness": 2,
+ "description": "Your teeth have grown into two-inch-long fangs, allowing you to make an extra attack when conditions favor it.",
+ "types": [ "TEETH" ],
+ "changes_to": [ "SABER_TEETH", "SHARKTEETH" ],
+ "category": [ "LIZARD", "FISH", "LUPINE", "FELINE", "CHIMERA", "VAMP" ],
+ "attacks": [
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "blocker_mutations": [ "MUZZLE", "MUZZLE_LONG", "MUZZLE_RAT" ],
+ "body_part": "MOUTH",
+ "chance": 20,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ },
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "required_mutations": [ "MUZZLE" ],
+ "body_part": "MOUTH",
+ "chance": 18,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ },
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "required_mutations": [ "MUZZLE_LONG" ],
+ "body_part": "MOUTH",
+ "chance": 15,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ },
+ {
+ "attack_text_u": "You sink your fangs into %s",
+ "attack_text_npc": "%1$s sinks their fangs into %2$s",
+ "required_mutations": [ "MUZZLE_RAT" ],
+ "body_part": "MOUTH",
+ "chance": 19,
+ "base_damage": { "damage_type": "stab", "amount": 20 }
+ }
+ ]
+ },
+ {
+ "type": "mutation",
+ "id": "LIGHT_BONES",
+ "name": "Light Bones",
+ "points": 2,
+ "description": "Your bones are very light. This enables you to move and attack 10% faster, but also reduces your carrying weight by 20% and makes bashing attacks hurt a little more.",
+ "category": [ "MOUSE", "VAMP" ],
+ "changes_to": [ "HOLLOW_BONES" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NAILS",
+ "name": "Long Fingernails",
+ "points": 1,
+ "visibility": 1,
+ "description": "Your fingernails are long and sharp. If you aren't wearing gloves, your unarmed attacks deal a minor amount of cutting damage.",
+ "types": [ "CLAWS" ],
+ "changes_to": [ "CLAWS", "TALONS" ],
+ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ],
+ "category": [ "RAPTOR", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CLAWS",
+ "name": "Claws",
+ "points": 2,
+ "visibility": 3,
+ "ugliness": 2,
+ "description": "You have claws on the ends of your fingers. If you aren't wearing gloves, your unarmed attacks deal a minor amount of cutting damage.",
+ "types": [ "CLAWS" ],
+ "prereqs": [ "NAILS" ],
+ "changes_to": [ "CLAWS_RETRACT", "CLAWS_RAT" ],
+ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ],
+ "category": [ "BEAST", "RAT", "URSINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "CLAWS_RETRACT",
+ "name": "Retractable Claws",
+ "points": 2,
+ "ugliness": 1,
+ "description": "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.",
+ "types": [ "CLAWS" ],
+ "prereqs": [ "CLAWS" ],
+ "cancels": [ "ARM_TENTACLES", "ARM_TENTACLES_4", "ARM_TENTACLES_8" ],
+ "category": [ "FELINE", "VAMP" ],
+ "active": true,
+ "cost": 0
+ },
+ {
+ "type": "mutation",
+ "id": "MUT_TOUGH",
+ "name": "Resilient",
+ "points": 2,
+ "description": "You can survive injuries that would incapacitate humans: you get a 20% bonus to all hit points. Stacks with Tough, etc.",
+ "social_modifiers": { "intimidate": 2 },
+ "prereqs": [ "LARGE_OK", "HUGE_OK", "STR_UP_3", "STR_UP_4", "MASOCHIST_MED" ],
+ "threshreq": [ "THRESH_URSINE", "THRESH_CATTLE", "THRESH_CHIMERA", "THRESH_MEDICAL", "THRESH_LIZARD", "THRESH_BEAST", "THRESH_VAMP" ],
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "changes_to": [ "MUT_TOUGH2" ],
+ "category": [ "URSINE", "CATTLE", "CHIMERA", "BEAST", "LIZARD", "MEDICAL", "VAMP" ],
+ "hp_modifier_secondary": 0.2
+ },
+ {
+ "type": "mutation",
+ "id": "MUT_TOUGH2",
+ "name": "Solidly Built",
+ "points": 3,
+ "description": "Not much scares you. You get a 30% bonus to all hit points. Stacks with Tough, etc.",
+ "social_modifiers": { "intimidate": 3 },
+ "valid": false,
+ "prereqs": [ "MUT_TOUGH" ],
+ "threshreq": [ "THRESH_URSINE", "THRESH_CATTLE", "THRESH_CHIMERA", "THRESH_MEDICAL", "THRESH_VAMP" ],
+ "cancels": [ "FLIMSY", "FLIMSY2", "FLIMSY3", "GLASSJAW" ],
+ "changes_to": [ "MUT_TOUGH3" ],
+ "category": [ "URSINE", "CATTLE", "CHIMERA", "MEDICAL", "VAMP" ],
+ "hp_modifier_secondary": 0.3
+ },
+ {
+ "type": "mutation",
+ "id": "PAINREC1",
+ "name": "Pain Recovery",
+ "points": 3,
+ "description": "You recover from pain slightly faster than normal.",
+ "changes_to": [ "PAINREC2" ],
+ "category": [ "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PAINREC2",
+ "name": "Quick Pain Recovery",
+ "points": 5,
+ "description": "You recover from pain faster than normal.",
+ "prereqs": [ "PAINREC1" ],
+ "changes_to": [ "PAINREC3" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PAINREC3",
+ "name": "Very Quick Pain Recovery",
+ "points": 8,
+ "description": "You recover from pain much faster than normal.",
+ "prereqs": [ "PAINREC2" ],
+ "category": [ "MEDICAL" ]
+ },
+ {
+ "type": "mutation",
+ "id": "NOPAIN",
+ "name": "Deadened",
+ "points": 2,
+ "description": "Nothing hurts any more. Those bites tickle and the wounds itch a bit, but that's it.",
+ "valid": false,
+ "purifiable": false,
+ "prereqs": [ "MASOCHIST", "PAINRESIST" ],
+ "prereqs2": [ "PAINREC3" ],
+ "cancels": [ "MORE_PAIN", "MORE_PAIN2", "MORE_PAIN3" ],
+ "threshreq": [ "THRESH_MEDICAL", "THRESH_VAMP" ],
+ "//": "MASOCHIST_MED, CENOBITE, and NOPAIN don't cancel each other. By design. Poor painless people...",
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "PAINRESIST",
+ "name": "Pain Resistant",
+ "points": 2,
+ "description": "You have a high tolerance for pain.",
+ "starting_trait": true,
+ "valid": false,
+ "cancels": [ "MORE_PAIN", "MORE_PAIN2", "MORE_PAIN3" ],
+ "category": [ "MEDICAL", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "MORE_PAIN",
+ "name": "Pain Sensitive",
+ "points": -2,
+ "description": "For some reason things always seem to hurt you more. Pain dealt to you is increased by 25%.",
+ "starting_trait": true,
+ "//": "The MORE_PAIN mutations will always increase the pain you receive by at least 1.",
+ "cancels": [ "PAINRESIST", "NOPAIN" ],
+ "category": [ "VAMP" ],
+ "changes_to": [ "MORE_PAIN2" ]
+ },
+ {
+ "type": "mutation",
+ "id": "MORE_PAIN2",
+ "name": "Hyperalgesia",
+ "points": -3,
+ "description": "Your body experiences pain out of proportion to the physical causes. Pain dealt to you is increased by 50%.",
+ "prereqs": [ "MORE_PAIN" ],
+ "cancels": [ "PAINRESIST", "NOPAIN" ],
+ "category": [ "VAMP" ],
+ "changes_to": [ "MORE_PAIN3" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "purifiable": false,
+ "changes_to": [ "PRED2" ],
+ "prereqs": [ "CARNIVORE" ],
+ "threshreq": [
+ "THRESH_BEAST",
+ "THRESH_RAPTOR",
+ "THRESH_CHIMERA",
+ "THRESH_LUPINE",
+ "THRESH_FELINE",
+ "THRESH_URSINE",
+ "THRESH_LIZARD",
+ "THRESH_SPIDER",
+ "THRESH_VAMP"
+ ],
+ "cancels": [ "PACIFIST" ],
+ "category": [ "BEAST", "RAPTOR", "CHIMERA", "LUPINE", "FELINE", "URSINE", "LIZARD", "SPIDER", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "social_modifiers": { "intimidate": 3 },
+ "purifiable": false,
+ "prereqs": [ "CARNIVORE", "THRESH_URSINE" ],
+ "prereqs2": [ "PRED1" ],
+ "changes_to": [ "PRED3" ],
+ "threshreq": [
+ "THRESH_BEAST",
+ "THRESH_RAPTOR",
+ "THRESH_CHIMERA",
+ "THRESH_LUPINE",
+ "THRESH_FELINE",
+ "THRESH_URSINE",
+ "THRESH_LIZARD",
+ "THRESH_SPIDER",
+ "THRESH_VAMP"
+ ],
+ "cancels": [ "PACIFIST" ],
+ "category": [ "BEAST", "RAPTOR", "CHIMERA", "LUPINE", "FELINE", "URSINE", "LIZARD", "SPIDER", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "STR_UP",
+ "name": "Strong",
+ "points": 1,
+ "description": "Your muscles are a little stronger. Strength + 1",
+ "changes_to": [ "STR_UP_2" ],
+ "category": [ "INSECT", "ELFA", "RAPTOR", "VAMP" ],
+ "passive_mods": { "str_mod": 1 }
+ },
+ {
+ "type": "mutation",
+ "id": "STR_UP_2",
+ "name": "Very Strong",
+ "points": 2,
+ "description": "Your muscles are stronger. Strength + 2",
+ "prereqs": [ "STR_UP" ],
+ "changes_to": [ "STR_UP_3", "STR_ALPHA" ],
+ "category": [ "LIZARD", "CATTLE", "PLANT", "ALPHA", "VAMP" ],
+ "passive_mods": { "str_mod": 2 }
+ },
+ {
+ "type": "mutation",
+ "id": "DEX_UP_2",
+ "name": "Very Dextrous",
+ "points": 2,
+ "description": "You are nimbler. Dexterity + 2",
+ "prereqs": [ "DEX_UP" ],
+ "changes_to": [ "DEX_UP_3" ],
+ "category": [ "LIZARD", "SPIDER", "CHIMERA", "RAPTOR", "MOUSE", "VAMP" ],
+ "passive_mods": { "dex_mod": 2 }
+ },
+ {
+ "type": "mutation",
+ "id": "DEX_UP_3",
+ "name": "Extremely Dextrous",
+ "points": 3,
+ "description": "You are nimble and quick. Dexterity + 4",
+ "prereqs": [ "DEX_UP_2" ],
+ "changes_to": [ "DEX_UP_4" ],
+ "category": [ "BIRD", "ELFA", "FELINE", "VAMP" ],
+ "passive_mods": { "dex_mod": 4 }
+ },
+ {
+ "type": "mutation",
+ "id": "INT_UP",
+ "name": "Smart",
+ "points": 1,
+ "description": "You are a little smarter. Intelligence + 1",
+ "changes_to": [ "INT_UP_2", "INT_ALPHA", "INT_SLIME" ],
+ "category": [ "SLIME", "ALPHA", "VAMP" ],
+ "passive_mods": { "int_mod": 1 }
+ },
+ {
+ "type": "mutation",
+ "id": "PER_UP_2",
+ "name": "Very Perceptive",
+ "points": 2,
+ "description": "Your senses are keener. Perception + 2",
+ "prereqs": [ "PER_UP" ],
+ "changes_to": [ "PER_UP_3", "PER_ALPHA" ],
+ "category": [ "ALPHA", "CHIMERA", "VAMP" ],
+ "passive_mods": { "per_mod": 2 }
+ },
+ {
+ "type": "mutation",
+ "id": "DEFORMED",
+ "name": "Deformed",
+ "points": -2,
+ "visibility": 4,
+ "ugliness": 4,
+ "description": "You're minorly deformed. Some people will react badly to your appearance.",
+ "cancels": [ "PRETTY", "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3" ],
+ "prereqs": [ "UGLY" ],
+ "changes_to": [ "DEFORMED2" ],
+ "category": [ "FISH", "CATTLE", "INSECT", "CEPHALOPOD", "FELINE", "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "HOLLOW_BONES",
+ "name": "Hollow Bones",
+ "points": 1,
+ "mixed_effect": true,
+ "description": "You have Avian Bone Syndrome--your bones are nearly hollow. Your body is very light as a result, enabling you to move and attack 20% faster, but also frail; you can carry 40% less, and bashing attacks injure you more.",
+ "prereqs": [ "LIGHT_BONES" ],
+ "category": [ "BIRD", "SLIME", "ELFA", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "VOMITOUS",
+ "name": "Vomitous",
+ "points": -3,
+ "description": "You have a major digestive disorder. Though it causes you to vomit frequently, you have found that you can trigger your vomit reflex on demand, too.",
+ "prereqs": [ "NAUSEA" ],
+ "changes_to": [ "EATPOISON" ],
+ "category": [ "SLIME", "RAT", "MEDICAL", "ELFA", "VAMP" ],
+ "active": true
+ },
+ {
+ "type": "mutation",
+ "id": "HUNGER",
+ "name": "Fast Metabolism",
+ "points": -2,
+ "description": "You require more food than most people, but recover stamina slightly faster.",
+ "starting_trait": true,
+ "types": [ "METABOLISM" ],
+ "changes_to": [ "HUNGER2", "MET_RAT" ],
+ "category": [ "RAT", "ALPHA", "MEDICAL", "ELFA", "BEAST", "SLIME", "RAPTOR", "CHIMERA", "MOUSE", "VAMP" ],
+ "metabolism_modifier": 0.5,
+ "stamina_regen_modifier": 0.1
+ },
+ {
+ "type": "mutation",
+ "id": "THIRST2",
+ "name": "Very Thirsty",
+ "points": -3,
+ "description": "Ugh, out of water already? You need about twice the fluids of an average human.",
+ "prereqs": [ "THIRST" ],
+ "changes_to": [ "THIRST3" ],
+ "cancels": [ "NO_THIRST" ],
+ "category": [ "FISH", "SLIME", "CEPHALOPOD", "VAMP" ],
+ "thirst_modifier": 1.0
+ },
+ {
+ "type": "mutation",
+ "id": "THIRST3",
+ "name": "Extremely Thirsty",
+ "points": -5,
+ "description": "You dry out seriously quickly, requiring three times as much liquid to stay hydrated.",
+ "category": [ "VAMP" ],
+ "cancels": [ "NO_THIRST" ],
+ "prereqs": [ "THIRST2" ],
+ "thirst_modifier": 2.0
+ },
+ {
+ "type": "mutation",
+ "id": "ROT1",
+ "name": "Weakening",
+ "points": -2,
+ "bodytemp_modifiers": [ -250, -250 ],
+ "description": "You feel as though you are slowly weakening and your body heals slower.",
+ "types": [ "HEALING" ],
+ "changes_to": [ "ROT2" ],
+ "category": [ "ELFA", "VAMP" ],
+ "healing_awake": -0.002,
+ "healing_resting": -0.25
+ },
+ {
+ "type": "mutation",
+ "id": "ROT2",
+ "name": "Deterioration",
+ "points": -8,
+ "bodytemp_modifiers": [ -750, -750 ],
+ "description": "Your body is very slowly wasting away.",
+ "types": [ "HEALING" ],
+ "prereqs": [ "ROT1" ],
+ "changes_to": [ "ROT3" ],
+ "category": [ "CHIMERA", "VAMP" ],
+ "healing_awake": -0.02
+ },
+ {
+ "type": "mutation",
+ "id": "PALE",
+ "name": "Pale Skin",
+ "points": 0,
+ "visibility": 3,
+ "ugliness": 1,
+ "description": "Your skin is rather pale.",
+ "changes_to": [ "ALBINO" ],
+ "leads_to": [ "TROGLO" ],
+ "category": [ "LUPINE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "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.",
+ "starting_trait": true,
+ "changes_to": [ "SUNBURN" ],
+ "category": [ "TROGLOBITE", "MOUSE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "SUNBURN",
+ "name": "Solar Sensitivity",
+ "points": -3,
+ "description": "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It will seriously burn you.",
+ "prereqs": [ "ALBINO" ],
+ "prereqs2": [ "TROGLO2", "TROGLO3" ],
+ "category": [ "TROGLOBITE", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TROGLO",
+ "name": "Light Sensitive",
+ "points": -2,
+ "description": "Sunlight makes you uncomfortable. If you are outdoors and the weather is Sunny, you suffer -1 to all stats.",
+ "cancels": [ "SUNLIGHT_DEPENDENT" ],
+ "changes_to": [ "TROGLO2" ],
+ "category": [ "LIZARD", "BEAST", "INSECT", "SLIME", "SPIDER", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TROGLO2",
+ "name": "Very Light Sensitive",
+ "points": -3,
+ "description": "Sunlight makes you very uncomfortable. If you are outdoors during the day, you suffer -1 to all stats; -2 if the weather is Sunny.",
+ "cancels": [ "SUNLIGHT_DEPENDENT" ],
+ "prereqs": [ "TROGLO" ],
+ "changes_to": [ "TROGLO3" ],
+ "category": [ "RAT", "VAMP" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TROGLO3",
+ "name": "Troglobite",
+ "points": -5,
+ "description": "Sunlight makes you extremely uncomfortable, resulting in large penalties to all stats.",
+ "cancels": [ "SUNLIGHT_DEPENDENT" ],
+ "prereqs": [ "TROGLO2" ],
+ "category": [ "TROGLOBITE", "VAMP" ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json b/data/mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json
new file mode 100644
index 0000000000000..ff219fbe0a562
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json
@@ -0,0 +1,49 @@
+[
+ {
+ "type": "mutation",
+ "id": "THRESH_WENDIGO",
+ "name": "Forest Guardian",
+ "points": 1,
+ "description": "The forests have longed for your help, and this last cry shook the world.",
+ "valid": false,
+ "purifiable": false,
+ "threshold": true
+ },
+ {
+ "type": "mutation",
+ "id": "NMELD",
+ "name": "Nature's Boon",
+ "points": 3,
+ "description": "Your very prescence is masked by nature itself. You are slightly harder to detect.",
+ "valid": false,
+ "purifiable": false,
+ "prereqs": [ "WEAKSCENT" ],
+ "threshreq": [ "THRESH_WENDIGO" ],
+ "category": [ "WENDIGO" ],
+ "stealth_modifier": 15
+ },
+ {
+ "type": "mutation",
+ "id": "SLASHERS",
+ "name": "Slashers",
+ "points": 5,
+ "visibility": 8,
+ "ugliness": 10,
+ "description": "Your torso has an extra set of appendages that have burst out of your back, they are tipped with massive bone blades at the end, and look like they can do some serious damage with the thick acid that they secrete.",
+ "valid": false,
+ "purifiable": false,
+ "threshreq": [ "THRESH_WENDIGO" ],
+ "category": [ "WENDIGO" ],
+ "social_modifiers": { "intimidate": 15 },
+ "attacks": [
+ {
+ "attack_text_u": "You tear into %s with your blades",
+ "attack_text_npc": "%1$s tears into %2$s with their blades",
+ "body_part": "TORSO",
+ "chance": 33,
+ "base_damage": { "damage_type": "cut", "amount": 10 },
+ "strength_damage": { "damage_type": "biological", "amount": 0.25 }
+ }
+ ]
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json b/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json
new file mode 100644
index 0000000000000..c22a9fff48e9e
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json
@@ -0,0 +1,66 @@
+[
+ {
+ "type": "mutation_category",
+ "id": "VAMP",
+ "name": "Vampire",
+ "threshold_mut": "THRESH_VAMP",
+ "mutagen_message": "Nearby shadows seem to bend towards you for a moment and then reality warps back into place.",
+ "iv_message": "You twitch and pant randomly as your desire to slake your thirst becomes overwhelming.",
+ "iv_min_mutations": 1,
+ "iv_additional_mutations": 2,
+ "iv_additional_mutations_chance": 3,
+ "iv_hunger": 15,
+ "iv_thirst": 20,
+ "iv_pain": 5,
+ "iv_fatigue": -5,
+ "memorial_message": "Dispersed into the shadows."
+ },
+ {
+ "id": "mutagen_vamp",
+ "copy-from": "mutagen_flavor",
+ "type": "COMESTIBLE",
+ "name": "vampire mutagen",
+ "description": "Mutagen cocktail simply labeled 'C.R.I.T R&D.'",
+ "use_action": { "type": "mutagen", "mutation_category": "VAMP" }
+ },
+ {
+ "id": "iv_mutagen_vamp",
+ "copy-from": "iv_mutagen_flavor",
+ "type": "COMESTIBLE",
+ "name": "vampire serum",
+ "description": "A super-concentrated pitch-black substance with silvery flecks that reminds you of a starry-night sky. You need a syringe to inject it... if you really want to?",
+ "color": "gray",
+ "healthy": -2,
+ "use_action": { "type": "mutagen_iv", "mutation_category": "VAMP" }
+ },
+ {
+ "type": "dream",
+ "messages": [ "You have a strange dream about the shadows.", "Your dreams give you a peculiar feeling of sinking into the dark." ],
+ "category": "VAMP",
+ "strength": 1
+ },
+ {
+ "type": "dream",
+ "messages": [ "You have a vivid dream of talking a midnight stroll.", "You dream of drinking copious amounts of warm water." ],
+ "category": "VAMP",
+ "strength": 2
+ },
+ {
+ "type": "dream",
+ "messages": [
+ "You have a dream of being chased by dogs as something warm drips from your mouth.",
+ "Snippets of stalking something in the star-lit night shakes you awake."
+ ],
+ "category": "VAMP",
+ "strength": 3
+ },
+ {
+ "type": "dream",
+ "messages": [
+ "You dream of sinking your fangs into more and more enemies.",
+ "You have a lucid dream where streams of blood are slowly pooling around your feet."
+ ],
+ "category": "VAMP",
+ "strength": 4
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json b/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json
new file mode 100644
index 0000000000000..1bac42fbac503
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json
@@ -0,0 +1,69 @@
+[
+ {
+ "type": "mutation_category",
+ "id": "WENDIGO",
+ "name": "Wendigo",
+ "threshold_mut": "THRESH_WENDIGO",
+ "mutagen_message": "Nearby plants seem to bend towards you for a moment and then they shift back into place.",
+ "iv_message": "A serene feeling of terror grips you as become acutely aware of the flora and fauna beckoning towards you.",
+ "iv_min_mutations": 2,
+ "iv_additional_mutations": 3,
+ "iv_additional_mutations_chance": 3,
+ "iv_hunger": 15,
+ "iv_thirst": 20,
+ "iv_pain": 5,
+ "iv_fatigue": -5,
+ "memorial_message": "Reclaimed by nature."
+ },
+ {
+ "id": "mutagen_wendigo",
+ "copy-from": "mutagen_flavor",
+ "type": "COMESTIBLE",
+ "name": "wendigo mutagen",
+ "description": "Mutagen cocktail simply labeled 'C.R.I.T R&D.'",
+ "use_action": { "type": "mutagen", "mutation_category": "WENDIGO" }
+ },
+ {
+ "id": "iv_mutagen_wendigo",
+ "copy-from": "iv_mutagen_flavor",
+ "type": "COMESTIBLE",
+ "name": "wendigo serum",
+ "description": "A super-concentrated peat-brown substance with glittering green flecks that reminds you of a a tree. You need a syringe to inject it... if you really want to?",
+ "color": "gray",
+ "healthy": -2,
+ "use_action": { "type": "mutagen_iv", "mutation_category": "WENDIGO" }
+ },
+ {
+ "type": "dream",
+ "messages": [
+ "You have a strange dream about the mountain forests.",
+ "Your dreams give you a peculiar feeling of sinking into the treelines."
+ ],
+ "category": "WENDIGO",
+ "strength": 1
+ },
+ {
+ "type": "dream",
+ "messages": [ "You have a vivid dream of strolling through the woods.", "You dream of drinking copious amounts of warm water." ],
+ "category": "WENDIGO",
+ "strength": 2
+ },
+ {
+ "type": "dream",
+ "messages": [
+ "You have a dream of chasing something as a raw hunger sears your mind.",
+ "Recollections of stalking a human shakes you awake."
+ ],
+ "category": "WENDIGO",
+ "strength": 3
+ },
+ {
+ "type": "dream",
+ "messages": [
+ "You dream of tearing into more and more enemies.",
+ "You have a lucid dream where nature carefully welcomes your body."
+ ],
+ "category": "WENDIGO",
+ "strength": 4
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/readme/README.md b/data/mods/CRT_EXPANSION/readme/README.md
new file mode 100644
index 0000000000000..8f13e015f538e
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/readme/README.md
@@ -0,0 +1,27 @@
+# C.R.T Expansion mod pack
+The core mod of the CRT Expansion mod pack, it currently adds an armor set, mildly OP gas mask and transforming vest, some gun mods, a new melee/tool and a new material. The items also use a lot of higher end materials such as superalloy, rubber (the "new" material), the lesser used hardsteel and also neoprene.
+
+This mod also adds 6 new classes to CDDA: the C.R.I.T Medic, C.R.I.T Commanding Officer, C.R.I.T Automatic Rifleman, C.R.I.T Grunt, C.R.I.T NCO, C.R.I.T ROTC member, and finally the highly feared (OP) C.R.I.T Spec Ops.
+
+I tried to keep the professions revolving around slightly upgraded army gear and as "balanced" as possible except for the C.R.T Spec Ops which is for trying out the new items and being stupid powerful.
+
+I can't fix some things like the toolmods attatching to the vest and gasmask, but that doesn't hurt the game and it's just more of a cheap way to progress instead of getting a UPS, even though it still drinks a ton of power.
+
+
+
+# Extended Techniques
+More techniques, more play styles. Tries to open up melee and offer more than "does it have a reach attack?" or "does it have rapid strikes?" to make melee interesting.
+
+# For those curious about stat scaling:
+
+* SS-Rank is for stupid high scaling
+* S-Rank is anything 2.0 down to 1.0
+* A-Rank is from 0.99 down to .75
+* B-Rank is .74 down to .5
+* C-Rank is .49 down to .25
+* D-Rank is .24 to .20
+* E-Rank is .19 and below
+
+I tried to keep the damage balanced and also added scaling damage and movecosts to make it so certain attacks or weapons carry different risks.
+
+Anyways, have fun and report any bugs you find.
\ No newline at end of file
diff --git a/data/mods/CRT_EXPANSION/scenarios/crt_classes.json b/data/mods/CRT_EXPANSION/scenarios/crt_classes.json
new file mode 100644
index 0000000000000..4aba6df6fd6cd
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/scenarios/crt_classes.json
@@ -0,0 +1,786 @@
+[
+ {
+ "type": "profession",
+ "ident": "crt_rotc",
+ "name": "C.R.I.T ROTC Member",
+ "description": "You were training ahead of time to become a C.R.I.T officer in the upcoming war. Your call to arms arrived dead on arrival and already plastered in the all-too vibrant gore of your squadmates. In the midst of panic, you snatched up what you could and bugged out before you joined the still-moving remnants of your friends. Now it's up to your wits and years of training to keep you alive in this Cataclysm.",
+ "points": 7,
+ "traits": [ "MARTIAL_CRT" ],
+ "skills": [
+ { "level": 2, "name": "gun" },
+ { "level": 2, "name": "rifle" },
+ { "level": 3, "name": "stabbing" },
+ { "level": 3, "name": "melee" },
+ { "level": 2, "name": "survival" },
+ { "level": 2, "name": "firstaid" },
+ { "level": 2, "name": "swimming" }
+ ],
+ "items": {
+ "both": {
+ "items": [ "bandana", "crt_chestrig", "crt_iduster", "army_top", "crt_canteen", "crt_pants", "socks", "crt_la_boots" ],
+ "entries": [
+ { "item": "knife_crt", "container-item": "crt_belt" },
+ { "item": "scar_h", "ammo-item": "308", "contents-item": "shoulder_strap" },
+ { "item": "scarhmag", "ammo-item": "308", "count": 2 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_dude",
+ "name": "C.R.I.T Janitor",
+ "description": "*Sigh* Your life has been a wreck. Hopping place to place you finally found a job at C.R.I.T... as a janitor of sorts. The pay was good and you at least got to see some pretty cool stuff. After all non essential personel were purged (as in you, because you merely cleaned stuff or were the errand boy and were not privy to anything remotely important) you found yourself stuck with nothing but the uniform they gave you and your equipment.",
+ "points": 6,
+ "skills": [
+ { "level": 2, "name": "tailor" },
+ { "level": 3, "name": "barter" },
+ { "level": 3, "name": "driving" },
+ { "level": 3, "name": "speech" },
+ { "level": 1, "name": "unarmed" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_rec_hat",
+ "crt_rec_duster",
+ "crt_jacket",
+ "polo_shirt",
+ "crt_rec_gloves",
+ "crt_dress_pants",
+ "socks",
+ "crt_dress_shoes",
+ "id_military",
+ "cell_phone"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "thermos" },
+ { "item": "knife_swissarmy", "container-item": "crt_belt" }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_nco",
+ "name": "C.R.I.T NCO",
+ "description": "You were a senior NCO, relaying orders to your squad was an everyday task. When the cataclysm struck, your expertise helped save everyone time and time again until it all fell to chaos.",
+ "points": 10,
+ "traits": [ "MARTIAL_CRT" ],
+ "skills": [
+ { "level": 2, "name": "gun" },
+ { "level": 2, "name": "rifle" },
+ { "level": 2, "name": "stabbing" },
+ { "level": 3, "name": "speech" },
+ { "level": 1, "name": "survival" },
+ { "level": 1, "name": "firstaid" },
+ { "level": 1, "name": "barter" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "beret",
+ "modularvestkevlar",
+ "jacket_army",
+ "army_top",
+ "legguard_hard",
+ "pants_army",
+ "armguard_hard",
+ "mre_veggy_box",
+ "crt_backpack",
+ "two_way_radio",
+ "crt_gloves_liner",
+ "gloves_tactical",
+ "socks",
+ "crt_la_boots",
+ "crt_canteen"
+ ],
+ "entries": [
+ { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "sleeping_bag", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "knife_crt", "container-item": "sheath" },
+ { "item": "m4a1", "ammo-item": "223", "contents-item": [ "grip", "holo_sight" ] },
+ { "item": "stanag30", "ammo-item": "223", "count": 1 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_rifleman",
+ "name": "C.R.I.T Grunt",
+ "description": "You were part of the infantry; first to hit the ground running, clear a forward operating base for use and then come back to relax peacefully with your squadmates. Those days ended when the cataclysm reared its ugly head. The infected tore through your lines like wet paper when the otherworldy abominations arived. Now alone and fleeing, will you have what it takes to survive or is this hellish landcape just a macabre metaphor of death's row?",
+ "points": 8,
+ "traits": [ "MARTIAL_CRT" ],
+ "skills": [ { "level": 3, "name": "gun" }, { "level": 3, "name": "rifle" }, { "level": 1, "name": "stabbing" } ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "modularvestkevlar",
+ "crt_chestrig",
+ "crt_pants",
+ "legguard_hard",
+ "army_top",
+ "crt_jacket",
+ "armguard_hard",
+ "mre_veggy_box",
+ "crt_helmet",
+ "glasses_bal",
+ "molle_pack",
+ "two_way_radio",
+ "crt_gloves",
+ "socks",
+ "crt_boots",
+ "crt_canteen"
+ ],
+ "entries": [
+ { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "sleeping_bag", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "knife_rm42", "container-item": "sheath" },
+ { "item": "scar_h", "ammo-item": "308", "contents-item": "shoulder_strap" },
+ { "item": "scarhmag", "ammo-item": "308", "count": 2 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_medic",
+ "name": "C.R.I.T Combat Medic",
+ "description": "You were a combat medic taught how to engage an anomaly. However, your main focus was the burden that was keeping your squadmates in one piece. For weeks, you crossed through hell and back to ensure this true mission was fufilled. During a one-sided firefight between the undead and the rogue ai that has now run rampant through government robots, you were singled out and overtaken. Forced to flee without your comrades in tow, will you have what it takes to survive or will your unforgivable sin come back to haunt you?",
+ "points": 8,
+ "traits": [ "MARTIAL_CRT" ],
+ "skills": [
+ { "level": 2, "name": "gun" },
+ { "level": 2, "name": "pistol" },
+ { "level": 3, "name": "firstaid" },
+ { "level": 2, "name": "speech" },
+ { "level": 1, "name": "survival" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "helmet_army",
+ "crt_helmet_liner",
+ "crt_aarmor",
+ "armguard_hard",
+ "legguard_hard",
+ "gloves_tactical",
+ "crt_gloves_liner",
+ "crt_canteen",
+ "crt_legrig",
+ "socks",
+ "mre_veggy_box",
+ "crt_la_boots",
+ "two_way_radio",
+ "1st_aid",
+ "bandages",
+ "crt_backpack",
+ "UPS_off"
+ ],
+ "entries": [
+ { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "sleeping_bag", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "knife_swissarmy", "container-item": "sheath" },
+ { "item": "crt_laser_pistol", "container-item": "holster" }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_saw",
+ "name": "C.R.I.T Automatic Rifleman",
+ "description": "You were assigned the billet of specializing in creating dead zones and providing supressing fire. When the cataclysm struck, your trusty m240 couldn't keep the veritable tide of undead from overtaking your squad. Now alone and fleeing, will you have what it takes to survive or is this hellish landcape something you just can't suppress?",
+ "points": 10,
+ "traits": [ "MARTIAL_CRT" ],
+ "skills": [ { "level": 2, "name": "gun" }, { "level": 3, "name": "rifle" }, { "level": 2, "name": "pistol" } ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_helmet",
+ "crt_helmet_liner",
+ "glasses_bal",
+ "balclava",
+ "modularvestkevlar",
+ "jacket_army",
+ "army_top",
+ "crt_armguard",
+ "mre_veggy_box",
+ "molle_pack",
+ "two_way_radio",
+ "crt_gloves",
+ "socks",
+ "crt_boots",
+ "crt_canteen"
+ ],
+ "entries": [
+ { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "sleeping_bag", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "knife_combat", "container-item": "sheath" },
+ { "item": "ds_pulse_rifle", "ammo-item": "pulsesb", "contents-item": [ "shoulder_strap", "bipod" ] },
+ { "item": "belt308", "ammo-item": "308", "count": 2 },
+ { "item": "m9", "ammo-item": "9mm", "container-item": "holster" },
+ { "item": "m9mag", "ammo-item": "9mm", "count": 2 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_officer",
+ "name": "C.R.I.T Commanding Officer",
+ "description": "As a top-ranking CO, you didn't see much in the way of combat other than when you felt like it. but your charisma and sharp intellect helped you climb up the ranks and provide support to allies in need. Now that everything went down the drain, will it help you again?",
+ "points": 9,
+ "traits": [ "MARTIAL_CRT" ],
+ "skills": [
+ { "level": 2, "name": "gun" },
+ { "level": 2, "name": "pistol" },
+ { "level": 4, "name": "speech" },
+ { "level": 3, "name": "barter" },
+ { "level": 2, "name": "firstaid" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "beret",
+ "crt_helmet_liner",
+ "fancy_sunglasses",
+ "crt_chestrig",
+ "crt_iduster",
+ "army_top",
+ "crt_pants",
+ "mre_veggy_box",
+ "heavy_flashlight",
+ "two_way_radio",
+ "socks",
+ "crt_la_boots",
+ "crt_canteen",
+ "id_military"
+ ],
+ "entries": [
+ { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "knife_rm42", "container-item": "sheath" },
+ { "item": "m9", "ammo-item": "9mm", "container-item": "holster" },
+ { "item": "m9mag", "ammo-item": "9mm", "count": 2 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_guard",
+ "name": "C.R.I.T Enforcer",
+ "description": "STR 12 recommended. You were a guard granted the authority of a U.S Marshal. Others ribbed at you and joked about you being nothing more than a mall cop with a fancy badge. Knowingly, you laughed it off as they were merely jealous of what you could do and have been doing undercover as your double stood in at base. While you mainly spent time at base, you honed your skills and got special implants to do your job easier at the low low cost of serving as a \"guard\" forever. Time to do your job, albeit mission parameters look like they've expanded quite a bit.",
+ "traits": [ "MARTIAL_CRT", "PROF_FED" ],
+ "CBMs": [
+ "bio_razors",
+ "bio_sunglasses",
+ "bio_ears",
+ "bio_speed",
+ "bio_str_enhancer",
+ "bio_torsionratchet",
+ "bio_power_storage"
+ ],
+ "points": 12,
+ "skills": [
+ { "level": 3, "name": "gun" },
+ { "level": 3, "name": "pistol" },
+ { "level": 4, "name": "bashing" },
+ { "level": 4, "name": "dodge" },
+ { "level": 4, "name": "melee" },
+ { "level": 4, "name": "unarmed" },
+ { "level": 2, "name": "speech" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_helmet",
+ "crt_helmet_liner",
+ "crt_mask",
+ "crt_earmor",
+ "crt_sarmor",
+ "army_top",
+ "crt_gloves_liner",
+ "crt_gloves",
+ "crt_canteen",
+ "crt_legrig",
+ "socks",
+ "crt_boots",
+ "two_way_radio",
+ "crt_nstick",
+ "lighter"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "crt_canteen" },
+ { "item": "knife_swissarmy", "container-item": "crt_belt" },
+ { "item": "knife_crt", "container-item": "sheath" },
+ { "item": "m9", "ammo-item": "9mm", "container-item": "holster" },
+ { "item": "m9mag", "ammo-item": "9mm", "count": 2 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_juggernaught",
+ "name": "C.R.I.T Lone Wolf",
+ "description": "STR 14 recommended. You are fully armored badass granted the full authority of a U.S Marshal. Sent in as the one man army capable of handling anything, you stalked into a warzone and laid out entire battalions by yourself, be it through cunning strategy or brute force. Time to hang them all.",
+ "traits": [ "MARTIAL_CRT", "PROF_FED" ],
+ "CBMs": [
+ "bio_weight",
+ "bio_ups",
+ "bio_armor_eyes",
+ "bio_armor_head",
+ "bio_armor_torso",
+ "bio_armor_arms",
+ "bio_armor_legs",
+ "bio_batteries",
+ "bio_razors",
+ "bio_sunglasses",
+ "bio_ears",
+ "bio_speed",
+ "bio_str_enhancer",
+ "bio_dex_enhancer",
+ "bio_int_enhancer",
+ "bio_membrane",
+ "bio_lockpick",
+ "bio_heat_absorb",
+ "bio_furnace",
+ "bio_tattoo_led",
+ "bio_eye_optic",
+ "bio_targeting",
+ "bio_alarm",
+ "bio_eye_enhancer",
+ "bio_solar",
+ "bio_carbon",
+ "bio_power_storage_mkII"
+ ],
+ "points": 12,
+ "skills": [
+ { "level": 10, "name": "gun" },
+ { "level": 10, "name": "launcher" },
+ { "level": 6, "name": "bashing" },
+ { "level": 6, "name": "dodge" },
+ { "level": 6, "name": "melee" },
+ { "level": 6, "name": "unarmed" },
+ { "level": 5, "name": "speech" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_helmet",
+ "crt_helmet_liner",
+ "crt_gasmask",
+ "crt_warmor",
+ "crt_sarmor",
+ "army_top",
+ "crt_gloves_liner",
+ "crt_gloves",
+ "crt_canteen",
+ "crt_legrig",
+ "socks",
+ "crt_boots",
+ "two_way_radio",
+ "crt_laser_gatling",
+ "crt_nstick",
+ "lighter"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "crt_canteen" },
+ { "item": "knife_swissarmy", "container-item": "crt_belt" },
+ { "item": "crt_mask", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "knife_crt", "container-item": "sheath" },
+ { "item": "m9", "ammo-item": "9mm", "container-item": "holster" },
+ { "item": "m9mag", "ammo-item": "9mm", "count": 2 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt",
+ "name": "C.R.I.T Spec Ops",
+ "description": "STR 10 recommended. You were an elite member of the Catastrophe Response/Research & Investigation Team. A looming spectre which responded to secular threats which allowed your faction to leap decades in front of other world powers. Your squad was the first to be deployed into the New England region, ground zero, to contain the impending outbreak and gain information to relay back to command. Good luck soldier.",
+ "traits": [ "MARTIAL_CRT" ],
+ "CBMs": [
+ "bio_razors",
+ "bio_sunglasses",
+ "bio_ears",
+ "bio_heat_absorb",
+ "bio_speed",
+ "bio_dex_enhancer",
+ "bio_power_storage_mkII"
+ ],
+ "points": 12,
+ "skills": [
+ { "level": 3, "name": "gun" },
+ { "level": 3, "name": "pistol" },
+ { "level": 4, "name": "stabbing" },
+ { "level": 4, "name": "bashing" },
+ { "level": 4, "name": "cutting" },
+ { "level": 4, "name": "dodge" },
+ { "level": 4, "name": "melee" },
+ { "level": 4, "name": "unarmed" },
+ { "level": 2, "name": "survival" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_helmet",
+ "crt_helmet_liner",
+ "crt_gasmask",
+ "crt_backpack",
+ "crt_em_vest",
+ "crt_sarmor",
+ "army_top",
+ "crt_armguard",
+ "crt_gloves_liner",
+ "crt_gloves",
+ "crt_legguard",
+ "crt_canteen",
+ "crt_legrig",
+ "socks",
+ "crt_boots",
+ "two_way_radio",
+ "UPS_off",
+ "geiger_off",
+ "crt_hatchet",
+ "mre_veggy_box",
+ "crt_mess_kit",
+ "lighter",
+ "crt_etool"
+ ],
+ "entries": [
+ { "item": "sleeping_bag", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "crt_la_boots", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "crt_mask", "custom-flags": [ "no_auto_equip" ] },
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "crt_canteen" },
+ { "item": "knife_crt", "container-item": "crt_belt" },
+ { "item": "knife_swissarmy", "container-item": "sheath" },
+ {
+ "item": "crt_laser_pistol",
+ "contents-item": [ "flare_gmod", "bthk_stock", "beam_difractor" ],
+ "container-item": "holster"
+ },
+ { "item": "signal_flare", "ammo-item": "signal_flare", "count": 5 },
+ { "item": "battery", "ammo-item": "battery", "count": 25 }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_exile",
+ "name": "C.R.I.T Survivalist",
+ "description": "You were an elite recon of the C.R.I.T. You were hailed as a top survivalist after being stuck for weeks behind enemy lines and having to survive with nothing but some rocks, sticks and plants. However, after a few too many drinks (20) at the local bar and getting into a fight (knocking them out) with one of your commanding officers during a drunken bout you were stripped of your rank and sent off into the forests with your current gear to run a trial by survival. After an hour of scouting about in the forest for a good shelter, your radio rang and you were briefed over the fact that the world was suddenly ending. Of course, no one has time to pick your sorry ass up, so cheers. Staying away from drinks might be a good idea; at least you got some real tools this time!",
+ "traits": [ "MARTIAL_CRT", "DRUNKEN", "ADDICTIVE" ],
+ "points": 12,
+ "skills": [
+ { "level": 2, "name": "gun" },
+ { "level": 2, "name": "rifle" },
+ { "level": 2, "name": "stabbing" },
+ { "level": 1, "name": "bashing" },
+ { "level": 1, "name": "cutting" },
+ { "level": 1, "name": "dodge" },
+ { "level": 2, "name": "melee" },
+ { "level": 2, "name": "unarmed" },
+ { "level": 6, "name": "survival" },
+ { "level": 6, "name": "fabrication" },
+ { "level": 6, "name": "throw" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_rec_hat",
+ "crt_helmet_liner",
+ "crt_mask",
+ "crt_iduster",
+ "crt_jacket",
+ "army_top",
+ "crt_armguard",
+ "crt_gloves_liner",
+ "crt_gloves",
+ "crt_legguard",
+ "crt_legrig",
+ "crt_canteen",
+ "crt_pants",
+ "socks",
+ "crt_boots",
+ "two_way_radio",
+ "crt_hatchet",
+ "mre_veggy_box",
+ "lighter",
+ "pellet",
+ "pelletgun",
+ "crt_etool"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "crt_canteen" },
+ { "item": "knife_swissarmy", "container-item": "crt_belt" },
+ { "item": "knife_crt", "container-item": "sheath" }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_normie",
+ "name": "C.R.I.T Recruit",
+ "description": "You were scheduled for some survival training in New England when the Cataclysm broke out and your instructor never showed up for the next lesson. Now stuck in the quarantine zone with your standard issue training equipment, you wish you had a better gun. Looks like you'll definitely learn a thing or two about survival though!",
+ "traits": [ "MARTIAL_CRT" ],
+ "points": 6,
+ "skills": [
+ { "level": 1, "name": "stabbing" },
+ { "level": 1, "name": "bashing" },
+ { "level": 1, "name": "cutting" },
+ { "level": 1, "name": "melee" },
+ { "level": 1, "name": "unarmed" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_helmet",
+ "crt_helmet_liner",
+ "glasses_bal",
+ "crt_backpack",
+ "crt_iduster",
+ "army_top",
+ "crt_gloves",
+ "crt_gloves_liner",
+ "crt_canteen",
+ "crt_pants",
+ "socks",
+ "crt_la_boots",
+ "crt_hatchet",
+ "mre_veggy_box",
+ "lighter",
+ "crt_mess_kit",
+ "id_military",
+ "pelletgun",
+ "pellet"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" },
+ { "item": "knife_swissarmy", "container-item": "crt_belt" }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_employee",
+ "name": "C.R.I.T Employee",
+ "description": "Like many others, you had requested to join the C.R.I.T organization's admin-offices to escape from bitter memories and past traumas after valiantly protecting your comrades for years. After you completed the readjustment program, your skills may have rusted considerably since your last deployment to battle, but the drilled muscle memories have not worn away. As your comrades' screams once again ring in your ears and repressed memories of abhorrent nature resurface, can you find it within yourself to overcome the looming terror which paralyzes you?",
+ "traits": [ "MARTIAL_CRT", "SPIRITUAL", "SCHIZOPHRENIC", "JITTERY" ],
+ "points": 6,
+ "skills": [
+ { "level": 2, "name": "computer" },
+ { "level": 1, "name": "barter" },
+ { "level": 3, "name": "driving" },
+ { "level": 3, "name": "speech" },
+ { "level": 2, "name": "melee" },
+ { "level": 1, "name": "unarmed" },
+ { "level": 2, "name": "gun" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "crt_rec_hat",
+ "briefcase",
+ "crt_rec_duster",
+ "crt_jacket",
+ "dress_shirt",
+ "crt_rec_gloves",
+ "crt_dress_pants",
+ "socks",
+ "crt_dress_shoes",
+ "lighter",
+ "thorazine",
+ "id_military"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "thermos" },
+ { "item": "knife_swissarmy", "container-item": "crt_belt" }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_engineer",
+ "name": "C.R.I.T Engineer",
+ "description": "You were scheduled to fix the several of the lab facilities in New England and show other researchers the new weapons you were working on. When the Cataclysm broke out, it made it so testing was easier to do, but then again nothing seems to making that much sense. Time to bug-out!",
+ "traits": [ "MARTIAL_CRT" ],
+ "points": 12,
+ "skills": [
+ { "level": 5, "name": "electronics" },
+ { "level": 5, "name": "computer" },
+ { "level": 5, "name": "fabrication" },
+ { "level": 1, "name": "melee" },
+ { "level": 1, "name": "gun" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "rucksack",
+ "ds_armor",
+ "ds_monitor",
+ "crt_jacket",
+ "army_top",
+ "crt_rec_gloves",
+ "crt_canteen",
+ "crt_belt",
+ "crt_pants",
+ "socks",
+ "ds_plasma_cutter",
+ "ds_line_gun",
+ "ds_pulse_rifle",
+ "ds_rivet_gun",
+ "ds_ripper",
+ "toolbox",
+ "mre_veggy_box",
+ "lighter",
+ "UPS_off",
+ "id_military",
+ "id_science"
+ ],
+ "entries": [ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" } ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "crt_vamp",
+ "name": "C.R.I.T Night Walker",
+ "description": "Your base in New England fell to the unholy onslaught of the Cataclysm. However, as a a top researcher in the R&D department, you had chosen to slowly mutate yourself into something more than human. Even if the concotion was less than perfect, your old flimsy body feels empowered. With the new flesh that is now your own, bare your fangs and fight until the next dawn.",
+ "traits": [
+ "MARTIAL_CRT",
+ "THRESH_VAMP",
+ "PROF_MED",
+ "TROGLO3",
+ "FLEET",
+ "BADTEMPER",
+ "INSOMNIA",
+ "THINSKIN",
+ "LIGHTWEIGHT",
+ "GOODHEARING",
+ "OUTDOORSMAN",
+ "PARKOUR",
+ "GOODCARDIO",
+ "INFRESIST",
+ "BENDY1",
+ "QUICK",
+ "DEFT",
+ "STRONGBACK",
+ "FLIMSY",
+ "SELFAWARE",
+ "INCONSPICUOUS",
+ "MYOPIC",
+ "CANNIBAL",
+ "LIAR",
+ "WAKEFUL2",
+ "BEAUTIFUL2",
+ "LIGHTSTEP",
+ "SLOWHEALER2",
+ "ALBINO",
+ "ANIMALDISCORD2",
+ "NIGHTVISION2",
+ "FANGS",
+ "NAILS",
+ "PAINRESIST",
+ "DEX_UP_3",
+ "LIGHT_BONES",
+ "HUNGER",
+ "THIRST2",
+ "SUNBURN"
+ ],
+ "points": 12,
+ "skills": [
+ { "level": 1, "name": "stabbing" },
+ { "level": 1, "name": "cutting" },
+ { "level": 3, "name": "dodge" },
+ { "level": 3, "name": "melee" },
+ { "level": 3, "name": "unarmed" },
+ { "level": 5, "name": "cooking" },
+ { "level": 3, "name": "fabrication" },
+ { "level": 3, "name": "electronics" }
+ ],
+ "items": {
+ "both": {
+ "ammo": 100,
+ "items": [
+ "beret",
+ "crt_helmet_liner",
+ "fancy_sunglasses",
+ "crt_iduster",
+ "army_top",
+ "ds_monitor",
+ "crt_gloves",
+ "crt_gloves_liner",
+ "crt_canteen",
+ "crt_pants",
+ "socks",
+ "crt_la_boots",
+ "crt_hatchet",
+ "mre_veggy_box",
+ "crt_mess_kit",
+ "lighter",
+ "knife_swissarmy",
+ "sword_crt",
+ "battery",
+ "crt_etool",
+ "id_military",
+ "id_science"
+ ],
+ "entries": [
+ { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" },
+ { "item": "knife_crt", "container-item": "crt_belt" }
+ ]
+ },
+ "male": [ "boxer_shorts" ],
+ "female": [ "sports_bra", "boxer_shorts" ]
+ }
+ }
+]
diff --git a/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json b/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json
new file mode 100644
index 0000000000000..bdc8ac0860209
--- /dev/null
+++ b/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json
@@ -0,0 +1,33 @@
+[
+ {
+ "type": "scenario",
+ "ident": "heli_crash",
+ "copy-from": "heli_crash",
+ "extend": {
+ "professions": [
+ "crt_rotc",
+ "crt_rifleman",
+ "crt_medic",
+ "crt_saw",
+ "crt_nco",
+ "crt_officer",
+ "crt_normie",
+ "crt_employee",
+ "crt_vamp",
+ "crt"
+ ]
+ }
+ },
+ {
+ "type": "scenario",
+ "ident": "lab_chal",
+ "copy-from": "lab_chal",
+ "extend": { "professions": [ "crt", "crt_engineer", "crt_employee", "crt_vamp" ] }
+ },
+ {
+ "type": "scenario",
+ "ident": "wilderness",
+ "copy-from": "wilderness",
+ "extend": { "professions": [ "crt_normie", "crt_vamp", "crt", "crt_exile" ] }
+ }
+]
diff --git a/data/mods/CrazyCataclysm/crazy_comestibles.json b/data/mods/CrazyCataclysm/crazy_comestibles.json
index b19276f63e5f5..f9113a0491b77 100644
--- a/data/mods/CrazyCataclysm/crazy_comestibles.json
+++ b/data/mods/CrazyCataclysm/crazy_comestibles.json
@@ -15,7 +15,7 @@
"charges": 4,
"stack_size": 20,
"fun": 10,
- "flags": [ "MYCUS_OK" ]
+ "flags": [ "MYCUS_OK", "FUNGAL_VECTOR" ]
},
{
"type": "recipe",
diff --git a/data/mods/CrazyCataclysm/crazy_vehicles.json b/data/mods/CrazyCataclysm/crazy_vehicles.json
new file mode 100644
index 0000000000000..f4cc12590e42d
--- /dev/null
+++ b/data/mods/CrazyCataclysm/crazy_vehicles.json
@@ -0,0 +1,53 @@
+[
+ {
+ "id": "car_atomic_flame",
+ "type": "vehicle",
+ "name": "Flaming Atomic Car",
+ "blueprint": [
+ [ "##++-o" ],
+ [ "+=##'|" ],
+ [ "+=##'|" ],
+ [ "##++-o" ]
+ ],
+ "parts": [
+ { "x": 0, "y": 0, "part": "frame_vertical_2" },
+ { "x": 0, "y": 0, "part": "seat" },
+ { "x": 0, "y": 0, "part": "seatbelt" },
+ { "x": 0, "y": 0, "part": "controls" },
+ { "x": 0, "y": 0, "part": "dashboard" },
+ { "x": 0, "y": 0, "part": "roof" },
+ { "x": 0, "y": 0, "part": "tank", "fuel": "napalm" },
+ { "x": 0, "y": 1, "part": "frame_vertical_2" },
+ { "x": 0, "y": 1, "part": "tank", "fuel": "gasoline" },
+ { "x": 0, "y": -1, "part": "frame_vertical" },
+ { "x": 0, "y": -1, "part": "tank", "fuel": "water_clean" },
+ { "x": 0, "y": -1, "part": "turret_mount" },
+ { "x": 0, "y": -1, "part": "laser_rifle" },
+ { "x": 0, "y": 2, "part": "frame_vertical" },
+ { "x": -1, "y": 0, "part": "frame_vertical_2" },
+ { "x": -1, "y": 1, "part": "frame_vertical_2" },
+ { "x": -1, "y": 1, "part": "minireactor" },
+ { "x": -1, "y": -1, "part": "frame_vertical" },
+ { "x": -1, "y": -1, "part": "wheel" },
+ { "x": -1, "y": -1, "part": "storage_battery" },
+ { "x": -1, "y": 2, "part": "frame_vertical" },
+ { "x": -1, "y": 2, "part": "wheel" },
+ { "x": -1, "y": 2, "part": "storage_battery" },
+ { "x": 1, "y": 0, "part": "frame_horizontal" },
+ { "x": 1, "y": 0, "part": "engine_electric_large" },
+ { "x": 1, "y": 0, "part": "turret_mount" },
+ { "x": 1, "y": 0, "part": "flamethrower" },
+ { "x": 1, "y": 1, "part": "frame_horizontal" },
+ { "x": 1, "y": 1, "part": "storage_battery_mount", "//": "to make the blazemod happy" },
+ { "x": 1, "y": -1, "part": "frame_nw" },
+ { "x": 1, "y": -1, "part": "wheel_steerable" },
+ { "x": 1, "y": -1, "part": "turret_mount" },
+ { "x": 1, "y": -1, "part": "watercannon" },
+ { "x": 1, "y": 2, "part": "frame_ne" },
+ { "x": 1, "y": 2, "part": "wheel_steerable" },
+ { "x": 1, "y": 2, "part": "tank", "fuel": "water" },
+ { "x": 1, "y": 2, "part": "turret_mount" },
+ { "x": 1, "y": 2, "part": "m249", "ammo": 100 }
+ ]
+ }
+]
diff --git a/data/mods/DeadPeople_Xotto/modinfo.json b/data/mods/DeadPeople_Xotto/modinfo.json
index 0af9f522bab89..915e4557ce42d 100644
--- a/data/mods/DeadPeople_Xotto/modinfo.json
+++ b/data/mods/DeadPeople_Xotto/modinfo.json
@@ -1,7 +1,7 @@
[
{
"type": "MOD_INFO",
- "ident": "DP__XOTTO_INDICATORS",
+ "ident": "DP_XOTTO_INDICATORS",
"name": "[DP_MOD] Indicators: Xotto",
"authors": [ "SomeDeadGuy" ],
"description": "Changes interface indicators to Xotto version.",
diff --git a/data/mods/Hydroponics/Hydroponics/construction.json b/data/mods/Hydroponics/Hydroponics/construction.json
deleted file mode 100644
index a2b74b86e8b45..0000000000000
--- a/data/mods/Hydroponics/Hydroponics/construction.json
+++ /dev/null
@@ -1,242 +0,0 @@
-[
- {
- "type": "construction",
- "description": "Build Hydroponics, Beans",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "raw_beans", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_bean_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Cabbage",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_cabbage", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_cabbage_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Carrot",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_carrot", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_carrot_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Celery",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_celery", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_celery_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Corn",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_corn", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_corn_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Cucumber",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_cucumber", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_cucumber_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Onion",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_onion", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_onion_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Potato",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "potato", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_potato_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Tomato",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_tomato", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_tomato_harvested"
- },
- {
- "type": "construction",
- "description": "Build Hydroponics, Marijuana",
- "category": "CONSTRUCT",
- "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
- "time": 180,
- "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
- "components": [
- [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
- [ [ "plastic_chunk", 10 ] ],
- [ [ "metal_tank_little", 2 ] ],
- [ [ "cu_pipe", 4 ] ],
- [ [ "small_storage_battery", 1 ] ],
- [ [ "plut_cell", 1 ] ],
- [ [ "e_scrap", 2 ] ],
- [ [ "lightstrip_inactive", 2 ] ],
- [ [ "circuit", 1 ] ],
- [ [ "fertilizer_commercial", 1 ] ],
- [ [ "water", 100 ] ],
- [ [ "seed_weed", 6 ] ]
- ],
- "pre_special": "check_empty",
- "post_terrain": "t_hydrop_weed_harvested"
- }
-]
diff --git a/data/mods/Hydroponics/Hydroponics/mapgen/basement_hydrop.json b/data/mods/Hydroponics/Hydroponics/mapgen/basement_hydrop.json
deleted file mode 100644
index c8a5dc4e0e1a8..0000000000000
--- a/data/mods/Hydroponics/Hydroponics/mapgen/basement_hydrop.json
+++ /dev/null
@@ -1,101 +0,0 @@
-[
- {
- "type": "mapgen",
- "method": "json",
- "om_terrain": [ "basement" ],
- "weight": 150,
- "object": {
- "fill_ter": "t_thconc_floor",
- "rotation": [ 0, 3 ],
- "rows": [
- "|----------------------|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|c....................c|",
- "|c....................c|",
- "|c....................c|",
- "|c....................c|",
- "|c....................c|",
- "|......................|",
- "|..HHHHH..|++|..HHHHH..|",
- "|.........|..|.........|",
- "|HHHHHHHHH|<<|HHHHHHHHH|",
- "------------------------",
- " ",
- " ",
- " ",
- " "
- ],
- "palettes": [ "lab_hydrop_palette" ],
- "terrain": {
- "+": "t_door_c",
- "-": "t_wall",
- ".": "t_thconc_floor",
- "<": "t_stairs_up",
- "c": "t_thconc_floor",
- "|": "t_concrete_wall"
- },
- "furniture": { "c": "f_counter" },
- "place_loot": [
- { "group": "farming_seeds", "x": 1, "y": [ 1, 14 ], "chance": 10, "repeat": [ 1, 10 ] },
- { "group": "farming_tools", "x": 22, "y": [ 1, 14 ], "chance": 10, "repeat": [ 1, 10 ] }
- ],
- "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 2, 23 ], "y": [ 1, 19 ], "chance": 10 } ]
- }
- },
- {
- "type": "mapgen",
- "method": "json",
- "om_terrain": [ "basement" ],
- "weight": 150,
- "object": {
- "fill_ter": "t_thconc_floor",
- "rotation": [ 0, 3 ],
- "rows": [
- "|----------------------|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|......................|",
- "|HHHHHHHHHH..HHHHHHHHHH|",
- "|c....................c|",
- "|c....................c|",
- "|c....................c|",
- "|c....................c|",
- "|c....................c|",
- "|......................|",
- "|..HHHHH..|++|..HHHHH..|",
- "|.........|..|.........|",
- "|HHHHHHHHH|<<|HHHHHHHHH|",
- "------------------------",
- " ",
- " ",
- " ",
- " "
- ],
- "terrain": {
- "H": "t_hydrop_weed",
- "+": "t_door_c",
- "-": "t_wall",
- ".": "t_thconc_floor",
- "<": "t_stairs_up",
- "c": "t_thconc_floor",
- "|": "t_concrete_wall"
- },
- "furniture": { "c": "f_counter" },
- "place_loot": [ { "group": "farming_tools", "x": 22, "y": [ 1, 14 ], "chance": 10, "repeat": [ 1, 10 ] } ],
- "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 2, 23 ], "y": [ 1, 19 ], "chance": 10 } ]
- }
- }
-]
diff --git a/data/mods/Hydroponics/Hydroponics/terrain.json b/data/mods/Hydroponics/Hydroponics/terrain.json
deleted file mode 100644
index fb67d4fcfa51a..0000000000000
--- a/data/mods/Hydroponics/Hydroponics/terrain.json
+++ /dev/null
@@ -1,499 +0,0 @@
-[
- {
- "type": "terrain",
- "id": "t_hydrop_bean",
- "//": "need some flag for producing light",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces beans once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_bean_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [
- { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "raw_beans", "base_num": [ 2, 4 ] } ] }
- ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "raw_beans", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_bean_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces beans once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_bean",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "raw_beans", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_cabbage",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces cabbages once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_cabbage_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [
- { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "cabbage", "base_num": [ 1, 3 ] } ] }
- ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_cabbage", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_cabbage_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces cabbages once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_cabbage",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_cabbage", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_carrot",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces carrots once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_carrot_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "carrot", "base_num": [ 2, 4 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_carrot", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_carrot_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces carrots once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_carrot",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_carrot", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_celery",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces celery once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_celery_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "celery", "base_num": [ 4, 6 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_celery", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_celery_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces celerys once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_celery",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_celery", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_corn",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces sweet corn once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_corn_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "corn", "base_num": [ 2, 4 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_corn", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_corn_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces sweet corn once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_corn",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_corn", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_cucumber",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces cucumbers once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_cucumber_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [
- { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "cucumber", "base_num": [ 3, 6 ] } ] }
- ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_cucumber", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_cucumber_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces cucumbers once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_cucumber",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_cucumber", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_onion",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces onions once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_onion_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "onion", "base_num": [ 3, 6 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_onion", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_onion_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces onions once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_onion",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_onion", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_potato",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces potatoes once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_potato_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "potato", "base_num": [ 4, 8 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "potato", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_potato_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces potatoes once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_potato",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "potato", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_tomato",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces tomatoes once a season.",
- "symbol": "^",
- "color": [ "light_blue", "yellow", "red", "white" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_tomato_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "tomato", "base_num": [ 4, 8 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_tomato", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_tomato_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow vegetables indoors. It produces tomatoes once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_tomato",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_tomato", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_weed",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow recreational drugs indoors. It produces marijuana once a season.",
- "symbol": "^",
- "color": "green",
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
- "transforms_into": "t_hydrop_weed_harvested",
- "examine_action": "harvest_ter_nectar",
- "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "weed", "base_num": [ 2, 3 ] } ] } ],
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_weed", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- },
- {
- "type": "terrain",
- "id": "t_hydrop_weed_harvested",
- "name": "hydroponic unit",
- "description": "This is a self-contained hydroponics unit used to grow recreational drugs indoors. It produces marijuana once a season.",
- "symbol": "0",
- "color": [ "light_gray", "light_gray", "light_gray", "light_gray" ],
- "move_cost": 0,
- "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT", "HARVESTED" ],
- "examine_action": "harvested_plant",
- "transforms_into": "t_hydrop_weed",
- "deconstruct": {
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_deconstruct_results" }, { "item": "seed_weed", "count": [ 3, 6 ] } ]
- },
- "bash": {
- "str_min": 12,
- "str_max": 30,
- "sound": "crunch!",
- "sound_fail": "whack!",
- "ter_set": "t_floor",
- "items": [ { "group": "hydrop_bash_results" } ]
- }
- }
-]
diff --git a/data/mods/Hydroponics/Hydroponics/tpalletes.json b/data/mods/Hydroponics/Hydroponics/tpalletes.json
deleted file mode 100644
index 0516038b98992..0000000000000
--- a/data/mods/Hydroponics/Hydroponics/tpalletes.json
+++ /dev/null
@@ -1,28 +0,0 @@
-[
- {
- "type": "palette",
- "id": "lab_hydrop_palette",
- "terrain": {
- "H": [
- "t_hydrop_bean",
- "t_hydrop_bean_harvested",
- "t_hydrop_cabbage",
- "t_hydrop_cabbage_harvested",
- "t_hydrop_carrot",
- "t_hydrop_carrot_harvested",
- "t_hydrop_celery",
- "t_hydrop_celery_harvested",
- "t_hydrop_cucumber",
- "t_hydrop_cucumber_harvested",
- "t_hydrop_corn",
- "t_hydrop_corn_harvested",
- "t_hydrop_onion",
- "t_hydrop_onion_harvested",
- "t_hydrop_potato",
- "t_hydrop_potato_harvested",
- "t_hydrop_tomato",
- "t_hydrop_tomato_harvested"
- ]
- }
- }
-]
diff --git a/data/mods/Hydroponics/construction.json b/data/mods/Hydroponics/construction.json
new file mode 100644
index 0000000000000..eec20b81e6dbc
--- /dev/null
+++ b/data/mods/Hydroponics/construction.json
@@ -0,0 +1,25 @@
+[
+ {
+ "type": "construction",
+ "description": "Build Hydroponics",
+ "category": "CONSTRUCT",
+ "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ],
+ "time": 180,
+ "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ],
+ "components": [
+ [ [ "pipe", 6 ], [ "xlframe", 1 ] ],
+ [ [ "plastic_chunk", 10 ] ],
+ [ [ "metal_tank_little", 2 ] ],
+ [ [ "cu_pipe", 4 ] ],
+ [ [ "small_storage_battery", 1 ] ],
+ [ [ "plut_cell", 1 ] ],
+ [ [ "e_scrap", 2 ] ],
+ [ [ "lightstrip_inactive", 2 ] ],
+ [ [ "circuit", 1 ] ],
+ [ [ "fertilizer_commercial", 1 ] ],
+ [ [ "water", 100 ] ]
+ ],
+ "pre_special": "check_empty",
+ "post_terrain": "f_hydroponics"
+ }
+]
diff --git a/data/mods/Hydroponics/furniture.json b/data/mods/Hydroponics/furniture.json
new file mode 100644
index 0000000000000..ff5c5ce92150b
--- /dev/null
+++ b/data/mods/Hydroponics/furniture.json
@@ -0,0 +1,112 @@
+[
+ {
+ "type": "furniture",
+ "id": "f_hydroponics",
+ "name": "hydroponics unit",
+ "description": "This is a self-contained hydroponics unit used to grow crops indoors.",
+ "symbol": "^",
+ "color": "light_blue",
+ "move_cost_mod": 1,
+ "required_str": 12,
+ "looks_like": "f_planter",
+ "flags": [ "TRANSPARENT", "PLANTABLE", "FLAT", "MOUNTABLE" ],
+ "deconstruct": { "items": [ { "group": "hydrop_deconstruct_results" } ] },
+ "bash": {
+ "str_min": 6,
+ "str_max": 14,
+ "sound": "crunch.",
+ "sound_fail": "whish.",
+ "items": [ { "group": "hydrop_bash_results" } ]
+ },
+ "plant_data": { "transform": "f_hydroponics_seed" },
+ "examine_action": "dirtmound"
+ },
+ {
+ "type": "furniture",
+ "id": "f_hydroponics_seed",
+ "name": "hydroponics unit with seed",
+ "description": "This is a self-contained hydroponics unit used to grow crops indoors. This one contains a planted seed",
+ "symbol": "^",
+ "color": "brown",
+ "looks_like": "f_plant_seed",
+ "move_cost_mod": 1,
+ "required_str": -1,
+ "flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_SEED" ],
+ "examine_action": "aggie_plant",
+ "deconstruct": { "items": [ { "group": "hydrop_deconstruct_results" } ] },
+ "bash": {
+ "str_min": 6,
+ "str_max": 14,
+ "sound": "crunch.",
+ "sound_fail": "whish.",
+ "items": [ { "group": "hydrop_bash_results" } ]
+ },
+ "plant_data": { "transform": "f_hydroponics_seedling", "base": "f_hydroponics" }
+ },
+ {
+ "type": "furniture",
+ "id": "f_hydroponics_seedling",
+ "name": "hydroponics unit with seedling",
+ "description": "This is a self-contained hydroponics unit used to grow crops indoors. This one contains a planted seedling",
+ "symbol": "^",
+ "color": "green",
+ "looks_like": "f_plant_seedling",
+ "move_cost_mod": 1,
+ "required_str": -1,
+ "flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_SEEDLING" ],
+ "examine_action": "aggie_plant",
+ "deconstruct": { "items": [ { "group": "hydrop_deconstruct_results" } ] },
+ "bash": {
+ "str_min": 6,
+ "str_max": 14,
+ "sound": "crunch.",
+ "sound_fail": "whish.",
+ "items": [ { "group": "hydrop_bash_results" } ]
+ },
+ "plant_data": { "transform": "f_hydroponics_mature", "base": "f_hydroponics" }
+ },
+ {
+ "type": "furniture",
+ "id": "f_hydroponics_mature",
+ "name": "hydroponics unit with mature plant",
+ "description": "This is a self-contained hydroponics unit used to grow crops indoors. This one contains a mature plant.",
+ "symbol": "#",
+ "color": "green",
+ "looks_like": "f_plant_mature",
+ "move_cost_mod": 0,
+ "required_str": -1,
+ "flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_MATURE" ],
+ "examine_action": "aggie_plant",
+ "deconstruct": { "items": [ { "group": "hydrop_deconstruct_results" } ] },
+ "bash": {
+ "str_min": 6,
+ "str_max": 14,
+ "sound": "crunch.",
+ "sound_fail": "whish.",
+ "items": [ { "group": "hydrop_bash_results" } ]
+ },
+ "plant_data": { "transform": "f_hydroponics_harvest", "base": "f_hydroponics" }
+ },
+ {
+ "type": "furniture",
+ "id": "f_hydroponics_harvest",
+ "name": "hydroponics unit with harvestable plant",
+ "description": "This is a self-contained hydroponics unit used to grow crops indoors. This one contains a mature plant that is ready for harvest.",
+ "symbol": "#",
+ "color": "light_green",
+ "looks_like": "f_plant_harvest",
+ "move_cost_mod": 0,
+ "required_str": -1,
+ "flags": [ "PLANT", "SEALED", "TRANSPARENT", "CONTAINER", "NOITEM", "TINY", "DONT_REMOVE_ROTTEN", "GROWTH_HARVEST" ],
+ "examine_action": "aggie_plant",
+ "deconstruct": { "items": [ { "group": "hydrop_deconstruct_results" } ] },
+ "bash": {
+ "str_min": 6,
+ "str_max": 14,
+ "sound": "crunch.",
+ "sound_fail": "whish.",
+ "items": [ { "group": "hydrop_bash_results" } ]
+ },
+ "plant_data": { "transform": "f_hydroponics", "base": "f_hydroponics", "harvest_multiplier": 2.5 }
+ }
+]
diff --git a/data/mods/Hydroponics/game_balance.json b/data/mods/Hydroponics/game_balance.json
new file mode 100644
index 0000000000000..3633ecb013fad
--- /dev/null
+++ b/data/mods/Hydroponics/game_balance.json
@@ -0,0 +1,9 @@
+[
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "MAX_HARVEST_COUNT",
+ "info": "The maximum amount of produce that can be harvested from a plant.",
+ "stype": "int",
+ "value": 30
+ }
+]
diff --git a/data/mods/Hydroponics/Hydroponics/item_groups.json b/data/mods/Hydroponics/item_groups.json
similarity index 92%
rename from data/mods/Hydroponics/Hydroponics/item_groups.json
rename to data/mods/Hydroponics/item_groups.json
index 4449d2e073016..929e795e12c04 100644
--- a/data/mods/Hydroponics/Hydroponics/item_groups.json
+++ b/data/mods/Hydroponics/item_groups.json
@@ -4,7 +4,6 @@
"id": "hydrop_deconstruct_results",
"subtype": "collection",
"entries": [
- { "item": "withered", "count": [ 3, 6 ] },
{ "item": "pipe", "count": [ 5, 6 ] },
{ "item": "plastic_chunk", "count": 10 },
{ "item": "metal_tank_little", "count": 2 },
@@ -22,7 +21,6 @@
"id": "hydrop_bash_results",
"subtype": "collection",
"entries": [
- { "item": "withered", "count": [ 3, 6 ] },
{ "item": "pipe", "count": [ 2, 4 ] },
{ "item": "plastic_chunk", "count": [ 8, 10 ] },
{ "item": "metal_tank_little", "count": [ 0, 2 ], "damage": [ 1, 3 ] },
diff --git a/data/mods/Hydroponics/mapgen/basement_hydrop.json b/data/mods/Hydroponics/mapgen/basement_hydrop.json
new file mode 100644
index 0000000000000..cb42445bb8fe9
--- /dev/null
+++ b/data/mods/Hydroponics/mapgen/basement_hydrop.json
@@ -0,0 +1,94 @@
+[
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [ "basement" ],
+ "weight": 150,
+ "object": {
+ "fill_ter": "t_rock",
+ "rotation": [ 0, 3 ],
+ "rows": [
+ "------------------------",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-c....................c-",
+ "-c....................c-",
+ "-c....................c-",
+ "-c....................c-",
+ "-c....................c-",
+ "-......................-",
+ "-..HHHHH..-++-..HHHHH..-",
+ "-.........-..-.........-",
+ "-HHHHHHHHH-<<-HHHHHHHHH-",
+ "------------------------",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "palettes": [ "lab_hydrop_palette" ],
+ "terrain": {
+ "+": "t_door_c",
+ "-": "t_wall",
+ ".": "t_thconc_floor",
+ "<": "t_stairs_up",
+ "c": "t_thconc_floor",
+ "|": "t_concrete_wall"
+ },
+ "furniture": { "c": "f_counter" },
+ "place_loot": [
+ { "group": "farming_seeds", "x": 1, "y": [ 1, 14 ], "chance": 10, "repeat": [ 1, 10 ] },
+ { "group": "farming_tools", "x": 22, "y": [ 1, 14 ], "chance": 10, "repeat": [ 1, 10 ] }
+ ],
+ "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 2, 23 ], "y": [ 1, 19 ], "chance": 10 } ]
+ }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "om_terrain": [ "basement" ],
+ "weight": 150,
+ "object": {
+ "fill_ter": "t_rock",
+ "rotation": [ 0, 3 ],
+ "rows": [
+ "------------------------",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-......................-",
+ "-HHHHHHHHHH..HHHHHHHHHH-",
+ "-c....................c-",
+ "-c....................c-",
+ "-c....................c-",
+ "-c....................c-",
+ "-c....................c-",
+ "-......................-",
+ "-..HHHHH..-++-..HHHHH..-",
+ "-.........-..-.........-",
+ "-HHHHHHHHH-<<-HHHHHHHHH-",
+ "------------------------",
+ " ",
+ " ",
+ " ",
+ " "
+ ],
+ "terrain": { "H": "t_floor", "+": "t_door_c", "-": "t_wall", ".": "t_thconc_floor", "<": "t_stairs_up", "c": "t_thconc_floor" },
+ "furniture": { "c": "f_counter" },
+ "sealed_item": { "H": { "item": { "item": "seed_weed" }, "furniture": "f_hydroponics_harvest" } },
+ "place_loot": [ { "group": "farming_tools", "x": 22, "y": [ 1, 14 ], "chance": 10, "repeat": [ 1, 10 ] } ],
+ "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 2, 23 ], "y": [ 1, 19 ], "chance": 10 } ]
+ }
+ }
+]
diff --git a/data/mods/Hydroponics/Hydroponics/mapgen/lab_floorplans_1side.json b/data/mods/Hydroponics/mapgen/lab_floorplans_1side.json
similarity index 100%
rename from data/mods/Hydroponics/Hydroponics/mapgen/lab_floorplans_1side.json
rename to data/mods/Hydroponics/mapgen/lab_floorplans_1side.json
diff --git a/data/mods/Hydroponics/Hydroponics/mapgen/lab_rooms.json b/data/mods/Hydroponics/mapgen/lab_rooms.json
similarity index 100%
rename from data/mods/Hydroponics/Hydroponics/mapgen/lab_rooms.json
rename to data/mods/Hydroponics/mapgen/lab_rooms.json
diff --git a/data/mods/Hydroponics/Hydroponics/modinfo.json b/data/mods/Hydroponics/modinfo.json
similarity index 100%
rename from data/mods/Hydroponics/Hydroponics/modinfo.json
rename to data/mods/Hydroponics/modinfo.json
diff --git a/data/mods/Hydroponics/Hydroponics/requirements.json b/data/mods/Hydroponics/requirements.json
similarity index 100%
rename from data/mods/Hydroponics/Hydroponics/requirements.json
rename to data/mods/Hydroponics/requirements.json
diff --git a/data/mods/Hydroponics/terrain.json b/data/mods/Hydroponics/terrain.json
new file mode 100644
index 0000000000000..eab802c3b1498
--- /dev/null
+++ b/data/mods/Hydroponics/terrain.json
@@ -0,0 +1,161 @@
+[
+ {
+ "type": "terrain",
+ "id": "t_hydrop_generic",
+ "name": "LEGACY hydroponics unit",
+ "description": "This is a deprecated hydroponics unit. Deconstruct it to recieve your materials back.",
+ "symbol": "^",
+ "color": "light_blue",
+ "move_cost": 0,
+ "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "REDUCE_SCENT" ],
+ "deconstruct": { "ter_set": "t_floor", "items": [ { "group": "hydrop_deconstruct_results" } ] },
+ "bash": {
+ "str_min": 12,
+ "str_max": 30,
+ "sound": "crunch!",
+ "sound_fail": "whack!",
+ "ter_set": "t_floor",
+ "items": [ { "group": "hydrop_bash_results" } ]
+ }
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_bean",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_bean_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_cabbage",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_cabbage_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_carrot",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_carrot_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_celery",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_celery_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_corn",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_corn_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_cucumber",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_cucumber_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_onion",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_onion_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_potato",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_potato_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_tomato",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_tomato_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_weed",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ },
+ {
+ "type": "terrain",
+ "id": "t_hydrop_weed_harvested",
+ "symbol": "^",
+ "color": "light_blue",
+ "copy-from": "t_hydrop_generic"
+ }
+]
diff --git a/data/mods/Hydroponics/tpalletes.json b/data/mods/Hydroponics/tpalletes.json
new file mode 100644
index 0000000000000..a94a126d2d74e
--- /dev/null
+++ b/data/mods/Hydroponics/tpalletes.json
@@ -0,0 +1,8 @@
+[
+ {
+ "type": "palette",
+ "id": "lab_hydrop_palette",
+ "terrain": { "H": "t_floor" },
+ "sealed_item": { "H": { "items": { "item": "farming_seeds", "chance": 100 }, "furniture": "f_hydroponics_harvest" } }
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/animist.json b/data/mods/Magiclysm/Spells/animist.json
new file mode 100644
index 0000000000000..01bfa01e2bb17
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/animist.json
@@ -0,0 +1,21 @@
+[
+ {
+ "id": "smite",
+ "type": "SPELL",
+ "name": "Smite",
+ "description": "Evil has become pervasive throughout the world. Let your power be the light that shines in the darkness!",
+ "valid_targets": [ "hostile" ],
+ "min_damage": 10,
+ "max_damage": 200,
+ "damage_increment": 15,
+ "min_range": 1,
+ "max_range": 1,
+ "effect": "target_attack",
+ "base_casting_time": 85,
+ "base_energy_cost": 250,
+ "spell_class": "ANIMIST",
+ "difficulty": 8,
+ "max_level": 15,
+ "energy_source": "MANA"
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/biomancer.json b/data/mods/Magiclysm/Spells/biomancer.json
new file mode 100644
index 0000000000000..960389a05e160
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/biomancer.json
@@ -0,0 +1,36 @@
+[
+ {
+ "id": "light_healing",
+ "type": "SPELL",
+ "name": "Cure Light Wounds",
+ "description": "Heals a little bit of damage on the target.",
+ "valid_targets": [ "self", "ally" ],
+ "min_damage": -5,
+ "max_damage": -20,
+ "damage_increment": -1,
+ "max_level": 10,
+ "min_range": 0,
+ "max_range": 4,
+ "range_increment": 0.75,
+ "effect": "target_attack",
+ "base_casting_time": 300,
+ "base_energy_cost": 300,
+ "spell_class": "BIOMANCER",
+ "difficulty": 2,
+ "energy_source": "MANA"
+ },
+ {
+ "id": "pain_split",
+ "type": "SPELL",
+ "name": "Pain Split",
+ "description": "Evens out damage among your limbs.",
+ "valid_targets": [ "self" ],
+ "effect": "pain_split",
+ "base_casting_time": 100,
+ "base_energy_cost": 800,
+ "energy_source": "MANA",
+ "spell_class": "BIOMANCER",
+ "difficulty": 4,
+ "max_level": 1
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/classless.json b/data/mods/Magiclysm/Spells/classless.json
new file mode 100644
index 0000000000000..60fb4f9e481d9
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/classless.json
@@ -0,0 +1,120 @@
+[
+ {
+ "id": "megablast",
+ "type": "SPELL",
+ "name": "Megablast",
+ "description": "You always wanted to fire energy beams like in the animes you watched as a kid. Now you can!",
+ "valid_targets": [ "ally", "hostile", "ground" ],
+ "effect": "line_attack",
+ "damage_type": "fire",
+ "base_casting_time": 200,
+ "base_energy_cost": 800,
+ "energy_source": "STAMINA",
+ "spell_class": "NONE",
+ "difficulty": 10,
+ "max_level": 20,
+ "min_damage": 30,
+ "max_damage": 100,
+ "damage_increment": 3.25,
+ "min_range": 3,
+ "max_range": 12,
+ "range_increment": 0.45,
+ "min_aoe": 1,
+ "max_aoe": 5,
+ "aoe_increment": 0.2
+ },
+ {
+ "id": "create_atomic_light",
+ "type": "SPELL",
+ "name": "Light",
+ "description": "Creates a magical light.",
+ "valid_targets": [ "none" ],
+ "min_range": 0,
+ "max_range": 0,
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "magic_light",
+ "energy_source": "MANA",
+ "difficulty": 1,
+ "max_level": 20,
+ "base_casting_time": 1000,
+ "base_energy_cost": 500,
+ "min_duration": 100000,
+ "max_duration": 1000000,
+ "duration_increment": 2000
+ },
+ {
+ "id": "blinding_flash",
+ "type": "SPELL",
+ "name": "Blinding Flash",
+ "description": "Blind enemies for a short time with a sudden, dazzling light. Higher levels deal slightly higher damage.",
+ "effect": "target_attack",
+ "effect_str": "blind",
+ "valid_targets": [ "hostile" ],
+ "max_level": 20,
+ "min_damage": 1,
+ "max_damage": 10,
+ "damage_increment": 0.5,
+ "min_aoe": 0,
+ "max_aoe": 3,
+ "aoe_increment": 0.15,
+ "min_range": 4,
+ "max_range": 16,
+ "range_increment": 0.6,
+ "min_duration": 1000,
+ "max_duration": 3000,
+ "duration_increment": 100,
+ "spell_class": "NONE",
+ "base_casting_time": 200,
+ "base_energy_cost": 150,
+ "energy_source": "MANA",
+ "difficulty": 3,
+ "damage_type": "none"
+ },
+ {
+ "id": "ethereal_grasp",
+ "type": "SPELL",
+ "name": "Ethereal Grasp",
+ "description": "A mass of spectral hands emerge from the ground, slowing everything in range. Higher levels allow a bigger AoE, and longer effect.",
+ "effect": "target_attack",
+ "effect_str": "effect_ethereal_grasp",
+ "valid_targets": [ "hostile" ],
+ "max_level": 20,
+ "min_damage": 10,
+ "max_damage": 30,
+ "damage_increment": 1,
+ "min_aoe": 2,
+ "max_aoe": 20,
+ "aoe_increment": 0.5,
+ "min_range": 5,
+ "max_range": 20,
+ "range_increment": 2,
+ "min_duration": 1000,
+ "max_duration": 5000,
+ "duration_increment": 200,
+ "spell_class": "NONE",
+ "base_casting_time": 200,
+ "base_energy_cost": 400,
+ "energy_source": "MANA",
+ "difficulty": 3,
+ "damage_type": "bash"
+ },
+ {
+ "id": "protection_aura",
+ "type": "SPELL",
+ "name": "Aura of Protection",
+ "description": "Encases your whole body in a magical aura that protects you from the environment.",
+ "valid_targets": [ "self" ],
+ "effect": "target_attack",
+ "effect_str": "protect_env",
+ "energy_source": "MANA",
+ "difficulty": 1,
+ "max_level": 20,
+ "base_casting_time": 350,
+ "base_energy_cost": 375,
+ "min_duration": 10000,
+ "max_duration": 50000,
+ "duration_increment": 3000
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/debug.json b/data/mods/Magiclysm/Spells/debug.json
new file mode 100644
index 0000000000000..0decd801aa140
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/debug.json
@@ -0,0 +1,93 @@
+[
+ {
+ "//": "This spell exists in json as a template for contributors to see the possible values of the spell",
+ "id": "example_template",
+ "type": "SPELL",
+ "name": "Template Spell",
+ "description": "This is a template to show off all the available values",
+ "valid_targets": [ "hostile", "ground", "self", "ally" ],
+ "//": "effect is only limited by what is coded.",
+ "effect": "shallow_pit",
+ "//": "base_casting_time is in moves",
+ "base_casting_time": 100,
+ "base_energy_cost": 10,
+ "//": "Available energy sourcese are: MANA, STAMINA, HP, BIONIC, NONE",
+ "energy_source": "MANA",
+ "difficulty": 12,
+ "max_level": 10,
+ "min_damage": 0,
+ "max_damage": 100,
+ "damage_increment": 2.5,
+ "min_aoe": 0,
+ "max_aoe": 5,
+ "aoe_increment": 0.1,
+ "min_range": 1,
+ "max_range": 10,
+ "range_increment": 2,
+ "min_dot": 0,
+ "max_dot": 2,
+ "dot_increment": 0.1,
+ "//": "duration is in moves",
+ "min_duration": 0,
+ "max_duration": 1000,
+ "duration_increment": 4,
+ "min_pierce": 0,
+ "max_pierce": 1,
+ "pierce_increment": 0.1
+ },
+ {
+ "id": "debug_stamina",
+ "type": "SPELL",
+ "name": "Debug Stamina Spell",
+ "description": "Uses a little stamina",
+ "valid_targets": [ "self" ],
+ "effect": "none",
+ "min_range": 1,
+ "max_range": 1,
+ "base_casting_time": 100,
+ "base_energy_cost": 100,
+ "energy_source": "STAMINA"
+ },
+ {
+ "id": "debug_hp",
+ "type": "SPELL",
+ "name": "Debug HP Spell",
+ "description": "Uses a little HP",
+ "valid_targets": [ "self" ],
+ "effect": "none",
+ "min_range": 1,
+ "max_range": 1,
+ "base_casting_time": 100,
+ "base_energy_cost": 30,
+ "energy_source": "HP"
+ },
+ {
+ "id": "debug_bionic",
+ "type": "SPELL",
+ "name": "Debug Bionic Spell",
+ "description": "Uses a little Bionic Power",
+ "valid_targets": [ "self" ],
+ "effect": "none",
+ "min_range": 1,
+ "max_range": 1,
+ "base_casting_time": 100,
+ "base_energy_cost": 150,
+ "energy_source": "BIONIC"
+ },
+ {
+ "id": "debug_effect",
+ "type": "SPELL",
+ "name": "Debug effect spell",
+ "description": "Adds an effect to the target",
+ "valid_targets": [ "self", "hostile", "ally" ],
+ "effect": "target_attack",
+ "effect_str": "dazed",
+ "min_range": 12,
+ "max_range": 12,
+ "base_casting_time": 100,
+ "base_energy_cost": 150,
+ "min_duration": 500,
+ "max_duration": 500,
+ "energy_source": "MANA"
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/earthshaper.json b/data/mods/Magiclysm/Spells/earthshaper.json
new file mode 100644
index 0000000000000..3d1d9a93f9d78
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/earthshaper.json
@@ -0,0 +1,50 @@
+[
+ {
+ "id": "stonefist",
+ "type": "SPELL",
+ "name": "Stonefist",
+ "description": "Encases your arms and hands in a sheath of magical stone, you can punch and defend yourself with it in melee combat.",
+ "valid_targets": [ "self" ],
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "apt_stonefist",
+ "spell_class": "EARTHSHAPER",
+ "energy_source": "MANA",
+ "difficulty": 2,
+ "max_level": 20,
+ "base_casting_time": 200,
+ "base_energy_cost": 100,
+ "min_duration": 10000,
+ "max_duration": 100000,
+ "duration_increment": 2000
+ },
+ {
+ "id": "seismic_stomp",
+ "type": "SPELL",
+ "name": "Seismic Stomp",
+ "description": "Focusing mana into your leg, you stomp your foot and send out a shockwave, knocking enemies around you onto the ground.",
+ "effect": "cone_attack",
+ "effect_str": "downed",
+ "valid_targets": [ "hostile", "ground" ],
+ "max_level": 10,
+ "min_damage": 2,
+ "max_damage": 10,
+ "damage_increment": 0,
+ "min_aoe": 360,
+ "max_aoe": 360,
+ "aoe_increment": 0,
+ "min_range": 3,
+ "max_range": 12,
+ "range_increment": 1,
+ "min_duration": 1000,
+ "max_duration": 6000,
+ "duration_increment": 500,
+ "spell_class": "EARTHSHAPER",
+ "base_casting_time": 100,
+ "base_energy_cost": 250,
+ "energy_source": "MANA",
+ "difficulty": 2,
+ "damage_type": "bash"
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/kelvinist.json b/data/mods/Magiclysm/Spells/kelvinist.json
new file mode 100644
index 0000000000000..8b0409c9d6c38
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/kelvinist.json
@@ -0,0 +1,269 @@
+[
+ {
+ "id": "point_flare",
+ "type": "SPELL",
+ "name": "Point Flare",
+ "description": "Causes an intense heat at the location, damaging the target.",
+ "valid_targets": [ "hostile" ],
+ "effect": "target_attack",
+ "damage_type": "fire",
+ "min_damage": 16,
+ "damage_increment": 4,
+ "max_damage": 80,
+ "min_range": 3,
+ "range_increment": 0.5,
+ "max_range": 11,
+ "base_energy_cost": 75,
+ "spell_class": "KELVINIST",
+ "difficulty": 4,
+ "max_level": 16,
+ "base_casting_time": 300,
+ "energy_source": "MANA"
+ },
+ {
+ "id": "ice_spike",
+ "type": "SPELL",
+ "name": "Ice Spike",
+ "description": "Causes jagged icicles to form in the air above the target, falling and damaging it.",
+ "valid_targets": [ "hostile" ],
+ "effect": "target_attack",
+ "damage_type": "cold",
+ "min_damage": 30,
+ "max_damage": 100,
+ "damage_increment": 3.5,
+ "min_range": 4,
+ "max_range": 12,
+ "range_increment": 0.6,
+ "max_level": 20,
+ "difficulty": 6,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 200,
+ "energy_source": "MANA",
+ "base_energy_cost": 100
+ },
+ {
+ "id": "fireball",
+ "type": "SPELL",
+ "name": "Fireball",
+ "description": "You hurl a pea-sized glowing orb that when reaches its target or an obstacle produces a pressure-less blast of searing heat.",
+ "effect": "projectile_attack",
+ "valid_targets": [ "self", "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 24,
+ "max_damage": 68,
+ "damage_increment": 1.2,
+ "min_aoe": 3,
+ "max_aoe": 5,
+ "aoe_increment": 0.1,
+ "min_range": 6,
+ "max_range": 20,
+ "range_increment": 1,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 200,
+ "base_energy_cost": 350,
+ "energy_source": "MANA",
+ "difficulty": 4,
+ "damage_type": "fire"
+ },
+ {
+ "id": "cone_cold",
+ "type": "SPELL",
+ "name": "Cone of Cold",
+ "description": "You blast a cone of frigid air toward the target.",
+ "effect": "cone_attack",
+ "valid_targets": [ "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 24,
+ "max_damage": 68,
+ "damage_increment": 1.2,
+ "min_aoe": 30,
+ "max_aoe": 60,
+ "aoe_increment": 1.4,
+ "min_range": 6,
+ "max_range": 20,
+ "range_increment": 1,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 200,
+ "base_energy_cost": 350,
+ "energy_source": "MANA",
+ "difficulty": 4,
+ "damage_type": "cold"
+ },
+ {
+ "id": "burning_hands",
+ "type": "SPELL",
+ "name": "Burning Hands",
+ "description": "You're pretty sure you saw this in a game somewhere. You fire a short-range cone of fire.",
+ "effect": "cone_attack",
+ "valid_targets": [ "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 8,
+ "max_damage": 65,
+ "damage_increment": 4,
+ "min_range": 3,
+ "max_range": 5,
+ "range_increment": 0.25,
+ "min_aoe": 25,
+ "max_aoe": 60,
+ "aoe_increment": 5,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 100,
+ "base_energy_cost": 150,
+ "energy_source": "MANA",
+ "difficulty": 2,
+ "damage_type": "fire"
+ },
+ {
+ "id": "iceball",
+ "type": "SPELL",
+ "name": "Hoary Blast",
+ "description": "A glowing chunk of ice bursts into being from your hand and explodes into a wave of intense cold on impact.",
+ "effect": "projectile_attack",
+ "valid_targets": [ "self", "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 24,
+ "max_damage": 68,
+ "damage_increment": 1.2,
+ "min_aoe": 3,
+ "max_aoe": 5,
+ "aoe_increment": 0.1,
+ "min_range": 6,
+ "max_range": 20,
+ "range_increment": 1,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 150,
+ "base_energy_cost": 150,
+ "energy_source": "MANA",
+ "difficulty": 3,
+ "damage_type": "cold"
+ },
+ {
+ "id": "frost_spray",
+ "type": "SPELL",
+ "name": "Frost Spray",
+ "description": "You're pretty sure you saw this in a game somewhere. You fire a short-range cone of ice and cold.",
+ "effect": "cone_attack",
+ "effect_str": "cold",
+ "valid_targets": [ "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 8,
+ "max_damage": 65,
+ "damage_increment": 4,
+ "min_range": 3,
+ "max_range": 5,
+ "range_increment": 0.25,
+ "min_aoe": 25,
+ "max_aoe": 60,
+ "aoe_increment": 5,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 100,
+ "base_energy_cost": 100,
+ "energy_source": "MANA",
+ "difficulty": 2,
+ "damage_type": "cold"
+ },
+ {
+ "id": "chilling_touch",
+ "type": "SPELL",
+ "name": "Chilling Touch",
+ "description": "Freezes the touched target with intense cold.",
+ "valid_targets": [ "hostile" ],
+ "effect": "target_attack",
+ "effect_str": "cold",
+ "damage_type": "cold",
+ "min_damage": 3,
+ "damage_increment": 4,
+ "max_damage": 40,
+ "min_range": 1,
+ "max_range": 1,
+ "base_energy_cost": 50,
+ "spell_class": "KELVINIST",
+ "difficulty": 1,
+ "max_level": 10,
+ "base_casting_time": 100,
+ "energy_source": "MANA"
+ },
+ {
+ "id": "glide_ice",
+ "type": "SPELL",
+ "name": "Glide on Ice",
+ "description": "Encases your feet in a magical coating of ice, allowing you to glide along smooth surfaces faster.",
+ "valid_targets": [ "none" ],
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "ice_gliders",
+ "energy_source": "MANA",
+ "spell_class": "KELVINIST",
+ "difficulty": 2,
+ "max_level": 20,
+ "base_casting_time": 650,
+ "base_energy_cost": 100,
+ "min_duration": 10000,
+ "max_duration": 100000,
+ "duration_increment": 2000
+ },
+ {
+ "id": "hoary_blast",
+ "type": "SPELL",
+ "name": "Hoary Blast",
+ "description": "You project a glowing white crystal of ice and it explodes on impact into a blossom of shattering cold.",
+ "effect": "projectile_attack",
+ "effect_str": "cold",
+ "valid_targets": [ "self", "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 24,
+ "max_damage": 68,
+ "damage_increment": 1.2,
+ "min_aoe": 3,
+ "max_aoe": 5,
+ "aoe_increment": 0.1,
+ "min_range": 6,
+ "max_range": 20,
+ "range_increment": 1,
+ "spell_class": "KELVINIST",
+ "base_casting_time": 200,
+ "base_energy_cost": 350,
+ "energy_source": "MANA",
+ "difficulty": 4,
+ "damage_type": "cold"
+ },
+ {
+ "id": "ice_shield",
+ "type": "SPELL",
+ "name": "Ice Shield",
+ "description": "Creates a magical shield of ice on your arm, you can defend yourself with it in melee combat and use it to bash.",
+ "valid_targets": [ "none" ],
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "shield_ice",
+ "energy_source": "MANA",
+ "spell_class": "KELVINIST",
+ "difficulty": 2,
+ "max_level": 20,
+ "base_casting_time": 150,
+ "base_energy_cost": 100,
+ "min_duration": 10000,
+ "max_duration": 50000,
+ "duration_increment": 3000
+ },
+ {
+ "id": "frost_armor",
+ "type": "SPELL",
+ "name": "Frost Armor",
+ "description": "Covers you in a thin layer of magical ice to protect you from harm.",
+ "valid_targets": [ "self" ],
+ "effect": "target_attack",
+ "effect_str": "armor_frost",
+ "energy_source": "MANA",
+ "spell_class": "KELVINIST",
+ "difficulty": 3,
+ "max_level": 20,
+ "base_casting_time": 200,
+ "base_energy_cost": 550,
+ "min_duration": 10000,
+ "max_duration": 50000,
+ "duration_increment": 3000
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/magus.json b/data/mods/Magiclysm/Spells/magus.json
new file mode 100644
index 0000000000000..e730706fb30a9
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/magus.json
@@ -0,0 +1,67 @@
+[
+ {
+ "id": "magic_missile",
+ "type": "SPELL",
+ "name": "Magic Missile",
+ "description": "I cast Magic Missile at the darkness!",
+ "valid_targets": [ "hostile" ],
+ "min_damage": 1,
+ "damage_increment": 1.5,
+ "damage_type": "none",
+ "max_damage": 20,
+ "min_range": 8,
+ "range_increment": 0.8,
+ "max_range": 20,
+ "base_energy_cost": 50,
+ "spell_class": "MAGUS",
+ "difficulty": 1,
+ "max_level": 15,
+ "base_casting_time": 100,
+ "energy_source": "MANA",
+ "effect": "target_attack"
+ },
+ {
+ "id": "phase_door",
+ "type": "SPELL",
+ "name": "Phase Door",
+ "description": "Teleports you in a random direction a short distance.",
+ "effect": "teleport_random",
+ "valid_targets": [ "none" ],
+ "min_range": 3,
+ "max_range": 4,
+ "range_increment": 0.1,
+ "min_aoe": 2,
+ "max_aoe": 4,
+ "aoe_increment": 0.2,
+ "max_level": 10,
+ "difficulty": 2,
+ "spell_class": "MAGUS",
+ "base_casting_time": 100,
+ "energy_source": "MANA",
+ "base_energy_cost": 100
+ },
+ {
+ "id": "gravity_well",
+ "type": "SPELL",
+ "name": "Gravity Well",
+ "description": "Summons a well of gravity with the epicenter at the location. Deals bashing damage to all creatures in the affected area.",
+ "effect": "target_attack",
+ "valid_targets": [ "self", "ally", "hostile", "ground" ],
+ "min_damage": 20,
+ "max_damage": 45,
+ "damage_increment": 1.2,
+ "damage_type": "bash",
+ "min_range": 5,
+ "max_range": 15,
+ "range_increment": 0.5,
+ "min_aoe": 1,
+ "max_aoe": 6,
+ "aoe_increment": 0.25,
+ "max_level": 20,
+ "difficulty": 10,
+ "spell_class": "MAGUS",
+ "base_casting_time": 600,
+ "energy_source": "MANA",
+ "base_energy_cost": 350
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/stormshaper.json b/data/mods/Magiclysm/Spells/stormshaper.json
new file mode 100644
index 0000000000000..fc2a1074d4ba0
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/stormshaper.json
@@ -0,0 +1,95 @@
+[
+ {
+ "id": "jolt",
+ "type": "SPELL",
+ "name": "Jolt",
+ "description": "A short ranged fan of elecricity shoots from your fingers.",
+ "effect": "cone_attack",
+ "valid_targets": [ "ally", "hostile", "ground" ],
+ "max_level": 20,
+ "min_damage": 8,
+ "max_damage": 65,
+ "damage_increment": 4,
+ "min_range": 3,
+ "max_range": 5,
+ "range_increment": 0.25,
+ "min_aoe": 25,
+ "max_aoe": 60,
+ "aoe_increment": 5,
+ "spell_class": "STORMSHAPER",
+ "base_casting_time": 100,
+ "base_energy_cost": 150,
+ "energy_source": "MANA",
+ "difficulty": 2,
+ "damage_type": "electric"
+ },
+ {
+ "id": "windstrike",
+ "type": "SPELL",
+ "name": "Windstrike",
+ "description": "A powerful blast of wind slams into anything in front of your outstretched hand.",
+ "effect": "cone_attack",
+ "effect_str": "downed",
+ "valid_targets": [ "ally", "hostile", "ground" ],
+ "max_level": 10,
+ "min_damage": 24,
+ "max_damage": 68,
+ "damage_increment": 1.2,
+ "min_aoe": 30,
+ "max_aoe": 60,
+ "aoe_increment": 1.4,
+ "min_range": 6,
+ "max_range": 20,
+ "range_increment": 1,
+ "min_duration": 200,
+ "max_duration": 1000,
+ "duration_increment": 100,
+ "base_casting_time": 125,
+ "base_energy_cost": 285,
+ "spell_class": "STORMSHAPER",
+ "energy_source": "MANA",
+ "difficulty": 3,
+ "damage_type": "bash"
+ },
+ {
+ "id": "windrun",
+ "type": "SPELL",
+ "name": "Windrunning",
+ "description": "A magical wind pushes you forward as you move, easing your movements and increasing speed.",
+ "base_casting_time": 125,
+ "base_energy_cost": 100,
+ "energy_source": "MANA",
+ "spell_class": "STORMSHAPER",
+ "difficulty": 2,
+ "effect": "target_attack",
+ "effect_str": "enchant_windrun",
+ "valid_targets": [ "ally", "self" ],
+ "max_level": 10,
+ "min_duration": 2000,
+ "max_duration": 10000,
+ "duration_increment": 1000,
+ "min_range": 1,
+ "max_range": 20,
+ "range_increment": 1
+ },
+ {
+ "id": "storm_hammer",
+ "type": "SPELL",
+ "name": "Call Stormhammer",
+ "description": "Creates a crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!",
+ "valid_targets": [ "self" ],
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "stormhammer",
+ "energy_source": "MANA",
+ "spell_class": "STORMSHAPER",
+ "difficulty": 3,
+ "max_level": 20,
+ "base_casting_time": 150,
+ "base_energy_cost": 100,
+ "min_duration": 10000,
+ "max_duration": 50000,
+ "duration_increment": 2000
+ }
+]
diff --git a/data/mods/Magiclysm/Spells/technomancer.json b/data/mods/Magiclysm/Spells/technomancer.json
new file mode 100644
index 0000000000000..e9dedc159d846
--- /dev/null
+++ b/data/mods/Magiclysm/Spells/technomancer.json
@@ -0,0 +1,97 @@
+[
+ {
+ "id": "bless",
+ "type": "SPELL",
+ "name": "Bless",
+ "description": "A spell of blessing that gives you energy and boosts your abilities.",
+ "valid_targets": [ "self", "ally" ],
+ "effect": "target_attack",
+ "effect_str": "bless",
+ "base_casting_time": 100,
+ "base_energy_cost": 100,
+ "energy_source": "MANA",
+ "spell_class": "TECHNOMANCER",
+ "difficulty": 1,
+ "max_level": 1,
+ "min_damage": 0,
+ "max_damage": -20,
+ "damage_increment": -1,
+ "min_aoe": 0,
+ "max_aoe": 5,
+ "aoe_increment": 0.1,
+ "min_range": 1,
+ "max_range": 10,
+ "range_increment": 2,
+ "dot_increment": 0.1,
+ "//": "duration is in moves",
+ "min_duration": 6000,
+ "max_duration": 10000,
+ "duration_increment": 400
+ },
+ {
+ "id": "holy_blade",
+ "type": "SPELL",
+ "name": "Holy Blade",
+ "description": "This blade of light will cut through any evil it makes contact with!",
+ "valid_targets": [ "self" ],
+ "min_range": 0,
+ "max_range": 0,
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "longsword",
+ "base_casting_time": 350,
+ "base_energy_cost": 375,
+ "min_duration": 3000,
+ "max_duration": 9000,
+ "duration_increment": 3000,
+ "difficulty": 5,
+ "max_level": 20,
+ "spell_class": "TECHNOMANCER",
+ "energy_source": "MANA"
+ },
+ {
+ "id": "spirit_armor",
+ "type": "SPELL",
+ "name": "Spiritual Armor",
+ "description": "Evil will not make it through your defenses if your faith is strong enough!",
+ "valid_targets": [ "self" ],
+ "min_range": 0,
+ "max_range": 0,
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "armor_lightplate",
+ "spell_class": "TECHNOMANCER",
+ "energy_source": "MANA",
+ "difficulty": 5,
+ "max_level": 20,
+ "base_casting_time": 350,
+ "base_energy_cost": 375,
+ "min_duration": 3000,
+ "max_duration": 9000,
+ "duration_increment": 3000
+ },
+ {
+ "id": "create_atomic_lamp",
+ "type": "SPELL",
+ "name": "Lamp",
+ "description": "Creates a magical lamp.",
+ "valid_targets": [ "none" ],
+ "min_range": 0,
+ "max_range": 0,
+ "min_damage": 1,
+ "max_damage": 1,
+ "effect": "spawn_item",
+ "effect_str": "magic_lamp",
+ "energy_source": "MANA",
+ "spell_class": "TECHNOMANCER",
+ "difficulty": 2,
+ "max_level": 20,
+ "base_casting_time": 200,
+ "base_energy_cost": 750,
+ "min_duration": 100000,
+ "max_duration": 1000000,
+ "duration_increment": 2000
+ }
+]
diff --git a/data/mods/Magiclysm/effects/effects.json b/data/mods/Magiclysm/effects/effects.json
new file mode 100644
index 0000000000000..15c29a49ec298
--- /dev/null
+++ b/data/mods/Magiclysm/effects/effects.json
@@ -0,0 +1,61 @@
+[
+ {
+ "type": "effect_type",
+ "id": "enchant_windrun",
+ "name": [ "Windrunning" ],
+ "desc": [ "You are bolstered and pushed along by the power of the wind." ],
+ "apply_message": "You are bolstered and pushed along by the power of the wind",
+ "remove_message": "The wind at your back dies down.",
+ "rating": "good",
+ "base_mods": { "speed_mod": [ 20 ], "stamina_min": [ 10 ] }
+ },
+ {
+ "type": "effect_type",
+ "id": "effect_ethereal_grasp",
+ "name": [ "Ethereal Hold" ],
+ "desc": [ "Ghostly arms are trying to hold you in place!" ],
+ "max_intensity": 4,
+ "int_add_val": 1,
+ "apply_message": "Ethereal arms shoot out of the ground and grab onto you!",
+ "remove_message": "The ghostly arms fade away.",
+ "base_mods": { "speed_mod": [ -40 ] },
+ "scaling_mods": { "speed_mod": [ -10 ] }
+ },
+ {
+ "type": "effect_type",
+ "id": "bless",
+ "name": [ "Blessed" ],
+ "desc": [ "You are filled with energy that improves everything you do." ],
+ "apply_message": "You are filled with energy that improves everything you do!",
+ "remove_message": "Your energy fades.",
+ "rating": "good",
+ "base_mods": { "per_mod": [ 2 ], "dex_mod": [ 2 ], "str_mod": [ 2, 2 ], "speed_mod": [ 20 ] }
+ },
+ {
+ "type": "effect_type",
+ "id": "protect_env",
+ "name": [ "Enviromental Protection" ],
+ "desc": [ "You are protected by an energy field." ],
+ "apply_message": "You are protected by an energy field.",
+ "remove_message": "Your energy field fades.",
+ "rating": "good",
+ "show_in_info": true,
+ "base_mods": {
+ "environmental_protection": [ 5 ],
+ "material_thickness": [ 3 ],
+ "warmth": [ 50 ],
+ "covers": [ "HEAD", "LEGS", "TORSO", "ARMS", "HANDS", "FEET" ]
+ }
+ },
+ {
+ "type": "effect_type",
+ "id": "armor_frost",
+ "name": [ "Frost Armor" ],
+ "desc": [ "Covers you in a thin layer of magical ice to protect you from harm." ],
+ "apply_message": "You are protected by Frost Armor.",
+ "remove_message": "Your Frost Armor melts away.",
+ "rating": "good",
+ "show_in_info": true,
+ "base_mods": { "environmental_protection": [ 5 ], "material_thickness": [ 5 ], "warmth": [ 20 ] }
+ }
+]
diff --git a/data/mods/Magiclysm/itemgroups.json b/data/mods/Magiclysm/itemgroups.json
new file mode 100644
index 0000000000000..b2182920bc4d5
--- /dev/null
+++ b/data/mods/Magiclysm/itemgroups.json
@@ -0,0 +1,53 @@
+[
+ {
+ "type": "item_group",
+ "id": "religious_books",
+ "items": [ [ "priest_beginner", 1 ], [ "priest_advanced", 1 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "novels",
+ "items": [ [ "wizard_beginner", 3 ], [ "wizard_advanced", 1 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "homebooks",
+ "items": [ [ "wizard_beginner", 3 ], [ "wizard_advanced", 1 ], [ "priest_beginner", 5 ], [ "wizard_utility", 3 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "manuals",
+ "items": [ [ "wizard_beginner", 3 ], [ "wizard_advanced", 1 ], [ "wizard_utility", 5 ] ]
+ },
+ {
+ "type": "item_group",
+ "id": "lab_bookshelves",
+ "items": [
+ [ "wizard_beginner", 3 ],
+ [ "wizard_advanced", 5 ],
+ [ "priest_beginner", 3 ],
+ [ "wizard_utility", 5 ],
+ [ "priest_advanced", 5 ],
+ [ "pyro", 6 ],
+ [ "winter_grasp", 6 ],
+ [ "tome_of_storms", 3 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "mansion_books",
+ "items": [
+ [ "wizard_beginner", 10 ],
+ [ "wizard_advanced", 5 ],
+ [ "priest_beginner", 10 ],
+ [ "pyro", 3 ],
+ [ "winter_grasp", 3 ],
+ [ "tome_of_storms", 3 ]
+ ]
+ },
+ {
+ "type": "item_group",
+ "id": "exotic_books",
+ "items": [ [ "wizard_advanced", 12 ], [ "pyro", 3 ], [ "winter_grasp", 3 ], [ "tome_of_storms", 3 ], [ "priest_advanced", 6 ] ]
+ }
+]
diff --git a/data/mods/Magiclysm/items/cast_spell_items.json b/data/mods/Magiclysm/items/cast_spell_items.json
new file mode 100644
index 0000000000000..99225e1180969
--- /dev/null
+++ b/data/mods/Magiclysm/items/cast_spell_items.json
@@ -0,0 +1,21 @@
+[
+ {
+ "id": "wand_fireball",
+ "name": "wand of fireballs",
+ "plural": "wands of fireball",
+ "description": "A classic, this wand shoots fireballs without fail. A more skilled Kelvinist could cast them more efficiently, though.",
+ "type": "TOOL",
+ "weight": 230,
+ "volume": 2,
+ "price": 10000,
+ "bashing": 3,
+ "to_hit": 2,
+ "material": [ "wood" ],
+ "symbol": "|",
+ "charges_per_use": 1,
+ "ammo": "crystallized_mana",
+ "use_action": { "type": "cast_spell", "spell_id": "fireball", "no_fail": true, "level": 5 },
+ "magazines": [ [ "crystallized_mana", [ "small_mana_crystal" ] ] ],
+ "magazine_well": 1
+ }
+]
diff --git a/data/mods/Magiclysm/items/ethereal_items.json b/data/mods/Magiclysm/items/ethereal_items.json
new file mode 100644
index 0000000000000..e86e6e1a42456
--- /dev/null
+++ b/data/mods/Magiclysm/items/ethereal_items.json
@@ -0,0 +1,174 @@
+[
+ {
+ "id": "stonefist",
+ "type": "GENERIC",
+ "name": "pair of magical armored stone gauntlets",
+ "name_plural": "pairs of armored gauntlets",
+ "description": "A magical flexible stonelike substance for protection and attack.",
+ "weight": 1,
+ "volume": 1,
+ "price": 1,
+ "to_hit": 2,
+ "bashing": 20,
+ "material": [ "superalloy" ],
+ "symbol": "[",
+ "color": "light_gray",
+ "covers": [ "HANDS", "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 0,
+ "warmth": 20,
+ "material_thickness": 4,
+ "environmental_protection": 10,
+ "qualities": [ [ "HAMMER", 1 ] ],
+ "flags": [ "VARSIZE", "STURDY", "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE" ],
+ "techniques": [ "WBLOCK_3" ]
+ },
+ {
+ "id": "armor_stonefist",
+ "type": "ARMOR",
+ "category": "armor",
+ "name": "pair of magical armored stone gauntlets",
+ "name_plural": "pairs of armored gauntlets",
+ "description": "A magical flexible stonelike substance for protection and attack.",
+ "weight": 1,
+ "volume": 1,
+ "price": 1,
+ "to_hit": 2,
+ "bashing": 20,
+ "material": [ "superalloy" ],
+ "symbol": "[",
+ "color": "light_gray",
+ "covers": [ "HANDS", "ARMS" ],
+ "coverage": 100,
+ "encumbrance": 0,
+ "warmth": 20,
+ "material_thickness": 4,
+ "environmental_protection": 10,
+ "qualities": [ [ "HAMMER", 1 ] ],
+ "flags": [ "VARSIZE", "STURDY", "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE" ],
+ "techniques": [ "WBLOCK_3" ]
+ },
+ {
+ "id": "magic_lamp",
+ "type": "ARMOR",
+ "category": "tools",
+ "name": "magic lamp",
+ "description": "a magical light source that will light up a small area.",
+ "weight": 1,
+ "volume": 1,
+ "price": 1,
+ "to_hit": -2,
+ "bashing": 8,
+ "symbol": ",",
+ "color": "light_green",
+ "flags": [ "LIGHT_15", "LEAK_DAM" ]
+ },
+ {
+ "id": "magic_light",
+ "type": "ARMOR",
+ "category": "tools",
+ "name": "magic light",
+ "description": "A small magical light that you can read by.",
+ "weight": 0,
+ "volume": 0,
+ "price": 0,
+ "symbol": ",",
+ "color": "light_green",
+ "flags": [ "LIGHT_5", "LEAK_DAM" ]
+ },
+ {
+ "id": "shield_ice",
+ "type": "ARMOR",
+ "name": "large shield of magical ice",
+ "category": "armor",
+ "description": "A lightweight but tough shield crafted entirely of magical ice.",
+ "weight": 1000,
+ "volume": 20,
+ "price": 1,
+ "to_hit": 1,
+ "bashing": 14,
+ "material": [ "steel" ],
+ "symbol": "[",
+ "color": "light_gray",
+ "covers": [ "ARM_EITHER", "HAND_EITHER" ],
+ "coverage": 70,
+ "encumbrance": 20,
+ "material_thickness": 3,
+ "techniques": [ "WBLOCK_3" ],
+ "flags": [ "OVERSIZE", "BELTED", "RESTRICT_HANDS", "BLOCK_WHILE_WORN" ]
+ },
+ {
+ "id": "ice_gliders",
+ "type": "ARMOR",
+ "name": "pair of slick icy coatings on your feet",
+ "name_plural": "slick icy coatings",
+ "description": "A magical slick icy coating on your feet. While quite fast on flat floors, they make it difficult to move on rough terrain.",
+ "weight": 1,
+ "volume": 1,
+ "price": 1,
+ "to_hit": -2,
+ "bashing": 6,
+ "material": [ "steel" ],
+ "symbol": "[",
+ "color": "brown",
+ "covers": [ "FEET" ],
+ "coverage": 100,
+ "encumbrance": 0,
+ "warmth": 30,
+ "material_thickness": 3,
+ "environmental_protection": 2,
+ "flags": [ "WATERPROOF", "ROLLER_QUAD", "BELTED" ]
+ },
+ {
+ "type": "GENERIC",
+ "id": "stormhammer",
+ "name": "The Stormhammer",
+ "description": "A crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!",
+ "weight": 1337,
+ "to_hit": 2,
+ "color": "brown",
+ "symbol": "/",
+ "material": [ "superalloy" ],
+ "techniques": [ "WBLOCK_2", "BRUTAL", "SWEEP" ],
+ "flags": [ "DURABLE_MELEE", "SPEAR", "NONCONDUCTIVE", "BELT_CLIP", "LIGHT_15" ],
+ "volume": 5,
+ "bashing": 30,
+ "electric": 15,
+ "price": 0,
+ "qualities": [ [ "HAMMER", 1 ] ]
+ },
+ {
+ "id": "stormfist",
+ "type": "SPELL",
+ "name": "Stormfist",
+ "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.",
+ "valid_targets": [ "self" ],
+ "min_damage": 0,
+ "max_damage": 0,
+ "effect": "spawn_item",
+ "effect_str": "stormglove",
+ "energy_source": "MANA",
+ "difficulty": 2,
+ "max_level": 20,
+ "base_casting_time": 200,
+ "base_energy_cost": 100,
+ "min_duration": 10000,
+ "max_duration": 100000,
+ "duration_increment": 2000
+ },
+ {
+ "type": "GENERIC",
+ "id": "stormglove",
+ "symbol": "3",
+ "color": "light_gray",
+ "name": "Stormfist",
+ "name_plural": "Stormfists",
+ "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.",
+ "material": [ "superalloy" ],
+ "volume": 1,
+ "weight": 1,
+ "bashing": 10,
+ "electric": 15,
+ "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE", "LIGHT_5" ]
+ }
+]
diff --git a/data/mods/Magiclysm/items/mana_crystals.json b/data/mods/Magiclysm/items/mana_crystals.json
new file mode 100644
index 0000000000000..36cfae1062134
--- /dev/null
+++ b/data/mods/Magiclysm/items/mana_crystals.json
@@ -0,0 +1,43 @@
+[
+ {
+ "type": "ammunition_type",
+ "id": "crystallized_mana",
+ "name": "crystallized mana",
+ "default": "crystallized_mana"
+ },
+ {
+ "type": "AMMO",
+ "id": "crystallized_mana",
+ "category": "spare_parts",
+ "price": 1000,
+ "name": "crystallized mana",
+ "name_plural": "crystallized mana",
+ "symbol": "=",
+ "color": "yellow",
+ "description": "Some crystallized mana. This can be reloaded into rechargable mana crystals, but can never be unloaded.",
+ "flags": "TRADER_AVOID",
+ "volume": "100 ml",
+ "ammo_type": "crystallized_mana",
+ "reload_time": 1,
+ "count": 100,
+ "looks_like": "battery",
+ "fuel": { "energy": 1 }
+ },
+ {
+ "id": "small_mana_crystal",
+ "type": "MAGAZINE",
+ "category": "spare_parts",
+ "name": "small mana crystal",
+ "name_plural": "ultra-light batteries",
+ "description": "This is a small mana crystal specifically designed to be attacked to wand tips.",
+ "weight": 5,
+ "volume": 1,
+ "price": 1500,
+ "symbol": "=",
+ "color": "yellow",
+ "ammo_type": "crystallized_mana",
+ "capacity": 50,
+ "looks_like": "battery",
+ "flags": [ "NO_SALVAGE", "NO_UNLOAD" ]
+ }
+]
diff --git a/data/mods/Magiclysm/items/spellbooks.json b/data/mods/Magiclysm/items/spellbooks.json
new file mode 100644
index 0000000000000..d081718484e61
--- /dev/null
+++ b/data/mods/Magiclysm/items/spellbooks.json
@@ -0,0 +1,133 @@
+[
+ {
+ "id": "DEBUG_spellbook",
+ "type": "GENERIC",
+ "name": "A Technomancer's Guide to Debugging C:DDA",
+ "description": "static std::string description( spell sp ) const;",
+ "weight": 1,
+ "volume": "1 ml",
+ "symbol": "?",
+ "color": "magenta",
+ "use_action": {
+ "type": "learn_spell",
+ "spells": [
+ "debug_hp",
+ "debug_stamina",
+ "example_template",
+ "debug_bionic",
+ "pain_split",
+ "fireball",
+ "gravity_well",
+ "cone_cold",
+ "megablast"
+ ]
+ }
+ },
+ {
+ "id": "wizard_beginner",
+ "type": "GENERIC",
+ "name": "A Beginner's Guide to Magic",
+ "description": "You would describe this as more like a pamphlet than a spellbook, but it seems to have at least one interesting spell you can use.",
+ "weight": 585,
+ "volume": 1,
+ "price": 5000,
+ "symbol": "?",
+ "color": "light_red",
+ "use_action": { "type": "learn_spell", "spells": [ "magic_missile", "phase_door" ] }
+ },
+ {
+ "id": "wizard_utility",
+ "type": "GENERIC",
+ "name": "Wizarding Guide to Backpacking",
+ "description": "This appears to be the spell version of a guide for what things to take with you when backpacking. It's a little bulky, but will certainly prove useful.",
+ "weight": 1000,
+ "volume": 5,
+ "price": 35000,
+ "symbol": "?",
+ "color": "red",
+ "use_action": { "type": "learn_spell", "spells": [ "phase_door", "burning_hands", "pain_split" ] }
+ },
+ {
+ "id": "pyro",
+ "type": "GENERIC",
+ "name": "Pyromancy for Heretics",
+ "description": "This charred husk of a book still contains many ways to light things aflame.",
+ "weight": 450,
+ "volume": 4,
+ "price": 1904,
+ "symbol": "?",
+ "color": "light_red",
+ "use_action": { "type": "learn_spell", "spells": [ "point_flare", "fireball", "burning_hands" ] }
+ },
+ {
+ "id": "wizard_advanced",
+ "type": "GENERIC",
+ "name": "A Treatise on Magical Elements",
+ "description": "This details complex diagrams, rituals, and choreography that describes various spells.",
+ "weight": 920,
+ "volume": 3,
+ "price": 30000,
+ "symbol": "?",
+ "color": "light_red",
+ "use_action": { "type": "learn_spell", "spells": [ "point_flare", "ice_spike", "gravity_well", "pain_split" ] }
+ },
+ {
+ "id": "priest_beginner",
+ "type": "GENERIC",
+ "name": "Introduction to the Divine",
+ "description": "This appears to mostly be a religious text, but it does have some notes on healing.",
+ "weight": 585,
+ "volume": 2,
+ "price": 5000,
+ "symbol": "?",
+ "color": "light_green",
+ "use_action": { "type": "learn_spell", "spells": [ "light_healing" ] }
+ },
+ {
+ "id": "priest_advanced",
+ "type": "GENERIC",
+ "name": "The Paladin's Guide to Modern Spellcasting",
+ "description": "Despite the title, this seems to be written in Middle English. A little obtuse, but you can make out most of the words well enough.",
+ "weight": 830,
+ "volume": 3,
+ "price": 30000,
+ "symbol": "?",
+ "color": "green",
+ "use_action": { "type": "learn_spell", "spells": [ "smite" ] }
+ },
+ {
+ "id": "winter_grasp",
+ "type": "GENERIC",
+ "name": "Winter's Eternal Grasp",
+ "description": "This slim book almost seems to be made from ice, it's cold to the touch.",
+ "weight": 450,
+ "volume": 4,
+ "price": 1904,
+ "symbol": "?",
+ "color": "light_blue",
+ "use_action": { "type": "learn_spell", "spells": [ "cone_cold", "ice_spike", "hoary_blast", "chilling_touch", "frost_spray" ] }
+ },
+ {
+ "id": "tome_of_storms",
+ "type": "GENERIC",
+ "name": "The Tome of The Oncoming Storm",
+ "description": "A large book embossed with crossed lightning bolts and storm clouds, it tingles to the touch.",
+ "weight": 430,
+ "volume": 3,
+ "price": 5000,
+ "symbol": "?",
+ "color": "light_grey",
+ "use_action": { "type": "learn_spell", "spells": [ "jolt", "windstrike" ] }
+ },
+ {
+ "id": "generic_spellbook",
+ "type": "GENERIC",
+ "name": "Nondescript Spellbook",
+ "description": "A small book, containing spells created by a novice magician.",
+ "weight": 355,
+ "volume": 2,
+ "symbol": "?",
+ "color": "magenta",
+ "use_action": { "type": "learn_spell", "spells": [ "seismic_stomp" ] }
+ }
+]
diff --git a/data/mods/Magiclysm/modinfo.json b/data/mods/Magiclysm/modinfo.json
new file mode 100644
index 0000000000000..fab3d8f390c7c
--- /dev/null
+++ b/data/mods/Magiclysm/modinfo.json
@@ -0,0 +1,18 @@
+[
+ {
+ "type": "MOD_INFO",
+ "ident": "magiclysm",
+ "name": "Magiclysm",
+ "authors": [ "KorGgenT", "Aptronym" ],
+ "maintainer": [ "KorGgenT" ],
+ "description": "Cataclysm but with magic spells!",
+ "category": "content",
+ "dependencies": [ "dda" ]
+ },
+ {
+ "type": "skill",
+ "ident": "spellcraft",
+ "name": "spellcraft",
+ "description": "Your skill in the arcane. Represents magic theory and all that entails. A higher skill increases how quickly you can learn spells, and decreases their spell failure chance. You learn this skill by studying books or spells."
+ }
+]
diff --git a/data/mods/Magiclysm/professions.json b/data/mods/Magiclysm/professions.json
new file mode 100644
index 0000000000000..ecf418a2c42ca
--- /dev/null
+++ b/data/mods/Magiclysm/professions.json
@@ -0,0 +1,39 @@
+[
+ {
+ "type": "profession",
+ "ident": "wizard_novice",
+ "name": "Would-be Wizard",
+ "description": "You found a pamphlet with bright colors claiming you can be a Wizard, oddly serene with the world falling down around you.",
+ "points": -2,
+ "items": {
+ "both": [
+ "jeans",
+ "tshirt",
+ "gloves_light",
+ "hat_ball",
+ "boots",
+ "socks",
+ "hoodie",
+ "knit_scarf",
+ "pockknife",
+ "lighter",
+ "wizard_beginner"
+ ],
+ "male": [ "boxer_briefs" ],
+ "female": [ "bra", "panties" ]
+ }
+ },
+ {
+ "type": "profession",
+ "ident": "priest",
+ "name": "Priest",
+ "description": "When the apocalypse struck, you did everything you could to protect your parish faithful, but it appears that prayers were not enough. Now that they are all dead, you should probably find something more tangible to protect you.",
+ "points": 0,
+ "skills": [ { "level": 3, "name": "speech" } ],
+ "items": {
+ "both": [ "pants", "longshirt", "socks", "cassock", "dress_shoes", "holy_symbol", "priest_beginner", "cell_phone" ],
+ "male": [ "briefs" ],
+ "female": [ "bra", "panties" ]
+ }
+ }
+]
diff --git a/data/mods/Magiclysm/traits/classes.json b/data/mods/Magiclysm/traits/classes.json
new file mode 100644
index 0000000000000..517cd2c5ee391
--- /dev/null
+++ b/data/mods/Magiclysm/traits/classes.json
@@ -0,0 +1,82 @@
+[
+ {
+ "type": "mutation",
+ "id": "MAGUS",
+ "name": "Magus",
+ "points": 0,
+ "description": "A tradition as old as magic, the magus focuses on binding and shaping the energy of the universe to their will.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "ANIMIST" ]
+ },
+ {
+ "type": "mutation",
+ "id": "ANIMIST",
+ "name": "Animist",
+ "points": 0,
+ "description": "The animist tradition is a relatively new school of magical thought, formed through combination of many older ways that focus on harmony and connection to the natural world. This does not mean that animists are passive: the natural world is a savage place.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "MAGUS" ]
+ },
+ {
+ "type": "mutation",
+ "id": "KELVINIST",
+ "name": "Kelvinist",
+ "points": 0,
+ "description": "Disciples of the great Archwizard Lord Kelvin. Kelvinists focus their magic on manipulation and control of the temperature of their environment, leading to spectacularly powerful explosions or bone-chilling cold.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "STORMSHAPER" ]
+ },
+ {
+ "type": "mutation",
+ "id": "STORMSHAPER",
+ "name": "Stormshaper",
+ "points": 0,
+ "description": "Stormshapers follow ancient arcane disciplines of meditation and harmony with the winds and tides that shape the planet. Through their deep connection to these forces, they can request powerful changes.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "KELVINIST" ]
+ },
+ {
+ "type": "mutation",
+ "id": "TECHNOMANCER",
+ "name": "Technomancer",
+ "points": 0,
+ "description": "Technomancers are the new breed of modern magician, blending their arcane might with their advanced knowledge of the fundamental nature of the universe. They use technology to enhance their magic and vice versa.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "EARTHSHAPER" ]
+ },
+ {
+ "type": "mutation",
+ "id": "EARTHSHAPER",
+ "name": "Earthshaper",
+ "points": 0,
+ "description": "Earthshapers have allowed their minds to sink deep within the stones and metals of the planet, and become one with its secrets. To a master Earthshaper, spells can be as permanent as the stones they are created from, and time is measured in geological eras.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "TECHNOMANCER" ]
+ },
+ {
+ "type": "mutation",
+ "id": "BIOMANCER",
+ "name": "Biomancer",
+ "points": 0,
+ "description": "The Biomancer focuses on manipulating and even absorbing flesh; their own, and that of other living or dead things. Most other wizards find their powers gross and disturbing, but no one can question the potency of their abilities, and certainly not their adaptability to any situation.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "DRUID" ]
+ },
+ {
+ "type": "mutation",
+ "id": "DRUID",
+ "name": "Druid",
+ "points": 0,
+ "description": "Druids follow a wild tradition of allegiance and rebirth within the world of nature, especially the cycle of death and rebirth that is the plant world. A powerful druid is as much a part of that world as the human one.",
+ "starting_trait": false,
+ "purifiable": false,
+ "cancels": [ "BIOMANCER" ]
+ }
+]
diff --git a/data/mods/Modular_Turrets/items.json b/data/mods/Modular_Turrets/items.json
index 5cd5dc4b507f0..df50b96dd85cc 100644
--- a/data/mods/Modular_Turrets/items.json
+++ b/data/mods/Modular_Turrets/items.json
@@ -23,10 +23,13 @@
"light_plus_battery_cell",
"light_minus_battery_cell",
"light_minus_atomic_battery_cell",
- "light_atomic_battery_cell"
+ "light_atomic_battery_cell",
+ "light_minus_disposable_cell",
+ "light_disposable_cell"
]
]
- ]
+ ],
+ "magazine_well": 1
},
{
"abstract": "robopart_base",
diff --git a/data/mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json b/data/mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json
index 41e709f6a5dba..487804d869ded 100644
--- a/data/mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json
+++ b/data/mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json
@@ -45,13 +45,12 @@
{ "item": "broken_copbot", "chance": 4 },
{ "item": "broken_riotbot", "chance": 4 },
{ "item": "broken_skitterbot", "chance": 3 }
- ],
- "l": { "item": "battery", "amount": [ 0, 2 ] }
+ ]
},
"items": {
"$": { "item": "bots", "chance": 80 },
"b": { "item": "textbooks", "chance": 60 },
- "l": { "item": "electronics", "chance": 60 },
+ "l": [ { "item": "electronics", "chance": 60 }, { "item": "ammo_pocket_batteries_full", "repeat": [ 0, 2 ] } ],
"L": { "item": "tools_common", "chance": 60 },
"T": { "item": "tools_common", "chance": 30 },
"X": { "item": "consumer_electronics", "chance": 70 }
diff --git a/data/mods/More_Survival_Tools/ammo.json b/data/mods/More_Survival_Tools/ammo.json
index b96b7f03d1f02..a700a72bec820 100644
--- a/data/mods/More_Survival_Tools/ammo.json
+++ b/data/mods/More_Survival_Tools/ammo.json
@@ -20,27 +20,6 @@
"loudness": 0,
"effects": [ "NEVER_MISFIRES" ]
},
- {
- "id": "chem_hexamine",
- "type": "AMMO",
- "category": "spare_parts",
- "name": "hexamine",
- "name_plural": "hexamine",
- "description": "A handful of waxy hexamine tablets. This ubiquitous fuel was used to start up almost every garden grill and no 'real' camping trip could do its cooking without it, until the Cataclysm. Nowadays, it is even more valuable then before, being the key component in the preparation of several military-grade explosives.",
- "weight": 16.625,
- "volume": 2,
- "price": 1800,
- "bashing": 1,
- "container": "box_small",
- "material": "powder",
- "symbol": "=",
- "color": "red",
- "count": 50,
- "ammo_type": "esbit",
- "range": 0,
- "damage": 0,
- "dispersion": 0
- },
{
"id": "bolt_bone",
"type": "AMMO",
diff --git a/data/mods/More_Survival_Tools/ammo_types.json b/data/mods/More_Survival_Tools/ammo_types.json
index 8ae90f9f0f205..4cb2ae3d06b2e 100644
--- a/data/mods/More_Survival_Tools/ammo_types.json
+++ b/data/mods/More_Survival_Tools/ammo_types.json
@@ -4,11 +4,5 @@
"name": "javelin",
"default": "javelin",
"type": "ammunition_type"
- },
- {
- "id": "esbit",
- "name": "hexamine",
- "default": "chem_hexamine",
- "type": "ammunition_type"
}
]
diff --git a/data/mods/More_Survival_Tools/armor.json b/data/mods/More_Survival_Tools/armor.json
index 4ad0bedd3462a..611c2c33f1e8d 100644
--- a/data/mods/More_Survival_Tools/armor.json
+++ b/data/mods/More_Survival_Tools/armor.json
@@ -37,26 +37,6 @@
"material_thickness": 2,
"flags": [ "VARSIZE" ]
},
- {
- "id": "tarp",
- "type": "ARMOR",
- "name": "tarpaulin",
- "description": "A plastic sheet with several grommets for securing it with rope or cord. Useful for improvised rain protection.",
- "weight": 1244,
- "volume": 8,
- "price": 5000,
- "to_hit": -1,
- "material": [ "plastic" ],
- "symbol": "[",
- "color": "light_blue",
- "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ],
- "coverage": 90,
- "encumbrance": 30,
- "warmth": 10,
- "material_thickness": 1,
- "environmental_protection": 1,
- "flags": [ "OVERSIZE", "OUTER", "WATERPROOF", "RAINPROOF", "ALLOWS_NATURAL_ATTACKS" ]
- },
{
"id": "javelin_bag",
"type": "ARMOR",
diff --git a/data/mods/More_Survival_Tools/construction.json b/data/mods/More_Survival_Tools/construction.json
index a2f029ff33312..c243b868da618 100644
--- a/data/mods/More_Survival_Tools/construction.json
+++ b/data/mods/More_Survival_Tools/construction.json
@@ -1,42 +1,4 @@
[
- {
- "type": "construction",
- "skill": "survival",
- "description": "Build Pine Lean-To",
- "category": "CONSTRUCT",
- "difficulty": 2,
- "time": 90,
- "qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
- "components": [ [ [ "stick", 6 ], [ "2x4", 3 ] ] ],
- "pre_terrain": "t_tree_pine",
- "post_terrain": "t_leanto"
- },
- {
- "type": "construction",
- "skill": "survival",
- "description": "Build Tarp Lean-To",
- "category": "CONSTRUCT",
- "difficulty": 1,
- "time": 50,
- "qualities": [ { "id": "HAMMER", "level": 1 } ],
- "components": [ [ [ "pointy_stick", 4 ] ], [ [ "string_36", 1 ], [ "string_6", 4 ] ], [ [ "tarp", 1 ] ] ],
- "pre_note": "Can be deconstructed without tools.",
- "pre_flags": [ "DIGGABLE", "FLAT" ],
- "post_terrain": "t_tarptent"
- },
- {
- "type": "construction",
- "skill": "survival",
- "description": "Build Tarp Rain-Catcher",
- "category": "CONSTRUCT",
- "difficulty": 2,
- "time": 45,
- "qualities": [ { "id": "HAMMER", "level": 1 } ],
- "components": [ [ [ "pointy_stick", 3 ] ], [ [ "string_36", 1 ], [ "string_6", 3 ] ], [ [ "tarp", 1 ] ] ],
- "pre_note": "Can be deconstructed without tools.",
- "pre_flags": [ "DIGGABLE", "FLAT" ],
- "post_terrain": "t_raincatcher"
- },
{
"type": "construction",
"skill": "survival",
diff --git a/data/mods/More_Survival_Tools/item_groups.json b/data/mods/More_Survival_Tools/item_groups.json
index cf9971e410d50..6c860869a802b 100644
--- a/data/mods/More_Survival_Tools/item_groups.json
+++ b/data/mods/More_Survival_Tools/item_groups.json
@@ -1,9 +1,4 @@
[
- {
- "id": "mischw",
- "type": "item_group",
- "items": [ [ "tarp", 15 ] ]
- },
{
"id": "medieval",
"type": "item_group",
@@ -12,35 +7,12 @@
{
"id": "camping",
"type": "item_group",
- "items": [
- [ "flint_steel", 10 ],
- [ "tinderbox", 5 ],
- [ "bottle_metal", 5 ],
- [ "tarp", 10 ],
- [ "cloak_wool", 5 ],
- [ "chem_hexamine", 5 ],
- [ "esbit_stove", 10 ],
- [ "bottle_folding", 10 ],
- [ "mess_tin", 10 ],
- [ "canteen_wood", 5 ],
- [ "whistle_multitool", 5 ]
- ]
+ "items": [ [ "tinderbox", 5 ], [ "cloak_wool", 5 ], [ "canteen_wood", 5 ], [ "whistle_multitool", 5 ] ]
},
{
"id": "allsporting",
"type": "item_group",
- "items": [
- [ "flint_steel", 10 ],
- [ "tinderbox", 5 ],
- [ "bottle_metal", 5 ],
- [ "tarp", 10 ],
- [ "chem_hexamine", 5 ],
- [ "esbit_stove", 10 ],
- [ "bottle_folding", 5 ],
- [ "mess_tin", 10 ],
- [ "canteen_wood", 5 ],
- [ "whistle_multitool", 5 ]
- ]
+ "items": [ [ "tinderbox", 5 ], [ "canteen_wood", 5 ], [ "whistle_multitool", 5 ] ]
},
{
"id": "trash",
@@ -50,39 +22,17 @@
{
"id": "traveler",
"type": "item_group",
- "items": [ [ "flint_steel", 1 ], [ "hobo_stove", 1 ], [ "tinder", 1 ], [ "tinderbox", 1 ], [ "bottle_metal", 1 ] ]
+ "items": [ [ "hobo_stove", 1 ], [ "tinder", 1 ], [ "tinderbox", 1 ] ]
},
{
"id": "shelter",
"type": "item_group",
- "items": [
- [ "flint_steel", 3 ],
- [ "hobo_stove", 3 ],
- [ "tinder", 3 ],
- [ "tinderbox", 2 ],
- [ "bottle_metal", 2 ],
- [ "tarp", 15 ],
- [ "chem_hexamine", 4 ],
- [ "esbit_stove", 8 ],
- [ "bottle_folding", 6 ],
- [ "mess_tin", 8 ]
- ]
+ "items": [ [ "hobo_stove", 3 ], [ "tinder", 3 ], [ "tinderbox", 2 ] ]
},
{
"id": "tools_survival",
"type": "item_group",
- "items": [
- [ "flint_steel", 3 ],
- [ "hobo_stove", 3 ],
- [ "tinder", 3 ],
- [ "tinderbox", 2 ],
- [ "bottle_metal", 2 ],
- [ "chem_hexamine", 3 ],
- [ "esbit_stove", 6 ],
- [ "mess_tin", 8 ],
- [ "canteen_wood", 2 ],
- [ "whistle_multitool", 1 ]
- ]
+ "items": [ [ "hobo_stove", 3 ], [ "tinder", 3 ], [ "tinderbox", 2 ], [ "canteen_wood", 2 ], [ "whistle_multitool", 1 ] ]
},
{
"id": "subway",
@@ -97,26 +47,11 @@
{
"id": "museum_primitive",
"type": "item_group",
- "items": [ [ "spear_stone", 50 ], [ "atlatl", 50 ], [ "javelin", 30 ], [ "hand_axe", 50 ], [ "throwing_stick", 50 ] ]
+ "items": [ [ "atlatl", 50 ], [ "javelin", 30 ], [ "throwing_stick", 50 ] ]
},
{
"id": "survivorzed_extra",
"type": "item_group",
"items": [ [ "hat_hooded", 1 ] ]
- },
- {
- "id": "mil_surplus",
- "type": "item_group",
- "items": [ [ "chem_hexamine", 5 ], [ "esbit_stove", 10 ], [ "mess_tin", 10 ] ]
- },
- {
- "id": "mil_accessories",
- "type": "item_group",
- "items": [ [ "chem_hexamine", 3 ], [ "esbit_stove", 6 ], [ "mess_tin", 4 ] ]
- },
- {
- "id": "military",
- "type": "item_group",
- "items": [ [ "chem_hexamine", 5 ], [ "esbit_stove", 8 ], [ "mess_tin", 4 ] ]
}
]
diff --git a/data/mods/More_Survival_Tools/items.json b/data/mods/More_Survival_Tools/items.json
index 18495a6787260..665d2ea5e2f49 100644
--- a/data/mods/More_Survival_Tools/items.json
+++ b/data/mods/More_Survival_Tools/items.json
@@ -1,23 +1,4 @@
[
- {
- "id": "flint_steel",
- "type": "TOOL",
- "name": "flint and steel",
- "name_plural": "sets of flint and steel",
- "description": "This is a carefully-selected piece of flint and a carbon steel fire starter. Use it to spark a flame.",
- "weight": 400,
- "volume": 1,
- "price": 300,
- "to_hit": -1,
- "material": [ "stone", "steel" ],
- "symbol": ",",
- "color": "dark_gray",
- "initial_charges": 2000,
- "max_charges": 2000,
- "charges_per_use": 1,
- "use_action": { "type": "firestarter", "moves": 1000, "moves_slow": 5000 },
- "flags": [ "FIRESTARTER" ]
- },
{
"id": "tinderbox",
"type": "TOOL",
@@ -68,25 +49,6 @@
],
"flags": [ "FIRESTARTER" ]
},
- {
- "id": "bottle_metal",
- "type": "CONTAINER",
- "category": "other",
- "name": "steel bottle",
- "description": "A stainless steel water bottle, holds 750ml of liquid.",
- "weight": 200,
- "volume": 3,
- "price": 0,
- "to_hit": 1,
- "bashing": 4,
- "material": "steel",
- "symbol": ")",
- "color": "light_cyan",
- "contains": 3,
- "seals": true,
- "watertight": true,
- "qualities": [ [ "CONTAIN", 1 ], [ "BOIL", 2 ] ]
- },
{
"id": "resin_cord",
"type": "COMESTIBLE",
@@ -104,23 +66,6 @@
"stack_size": 9,
"use_action": "MISC_REPAIR"
},
- {
- "id": "hand_axe",
- "type": "TOOL",
- "name": "hand axe",
- "name_plural": "hand axes",
- "description": "This is a broad piece of sharpened stone, with enough left untouched to hold safely. The Swiss Army knife of the lower paleolithic.",
- "weight": 453,
- "volume": 2,
- "price": 0,
- "to_hit": -1,
- "bashing": 5,
- "cutting": 3,
- "material": "stone",
- "symbol": ";",
- "color": "light_gray",
- "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 6 ], [ "SAW_W", 1 ], [ "AXE", 1 ], [ "HAMMER", 1 ] ]
- },
{
"id": "atlatl",
"type": "GUN",
@@ -221,24 +166,6 @@
"thrown_damage": [ { "damage_type": "bash", "amount": 5 }, { "damage_type": "stab", "amount": 14 } ],
"flags": [ "FRAGILE_MELEE", "JAVELIN" ]
},
- {
- "id": "spear_stone",
- "type": "GENERIC",
- "name": "stone spear",
- "description": "A stout wooden pole with a sharp stone spearhead.",
- "weight": 1098,
- "volume": 5,
- "price": 1300,
- "to_hit": 1,
- "bashing": 5,
- "cutting": 14,
- "material": [ "wood", "stone" ],
- "symbol": "/",
- "color": "light_gray",
- "techniques": [ "WBLOCK_1" ],
- "qualities": [ [ "COOK", 1 ] ],
- "flags": [ "SPEAR", "REACH_ATTACK", "SHEATH_SPEAR" ]
- },
{
"id": "milk_curdling",
"type": "TOOL",
@@ -336,61 +263,6 @@
"contains": 10,
"qualities": [ [ "COOK", 1 ] ]
},
- {
- "id": "esbit_stove",
- "type": "TOOL",
- "name": "hexamine stove",
- "description": "Known as an Esbit stove, this is a lightweight, folding stove designed to use small hexamine tablets for cooking.",
- "weight": 180,
- "volume": 3,
- "price": 2000,
- "to_hit": -1,
- "bashing": 2,
- "material": "aluminum",
- "symbol": ";",
- "color": "light_gray",
- "ammo": "esbit",
- "sub": "hotplate",
- "initial_charges": 50,
- "max_charges": 50,
- "charges_per_use": 1,
- "use_action": [ "HOTPLATE", "HEAT_FOOD" ]
- },
- {
- "id": "bottle_folding",
- "type": "CONTAINER",
- "category": "other",
- "name": "foldable plastic bottle",
- "description": "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid.",
- "weight": 13,
- "volume": 0,
- "price": 0,
- "to_hit": 1,
- "rigid": false,
- "material": "plastic",
- "symbol": ")",
- "color": "light_cyan",
- "contains": 2,
- "seals": true,
- "watertight": true
- },
- {
- "id": "mess_tin",
- "type": "GENERIC",
- "category": "tools",
- "name": "mess tin",
- "description": "A compact military-style pan and tray, designed for heating food over a fire or portable stove. It is shallower than a proper pot or pan, and lacks the integrated heating elements modern mess kits have.",
- "weight": 450,
- "volume": 3,
- "price": 2000,
- "to_hit": 2,
- "bashing": 10,
- "material": "steel",
- "symbol": ")",
- "color": "light_gray",
- "qualities": [ [ "COOK", 2 ], [ "BOIL", 1 ], [ "CONTAIN", 1 ] ],
- "use_action": "HEAT_FOOD"
- },
{
"id": "pot_makeshift",
"type": "GENERIC",
@@ -446,21 +318,6 @@
"armor_data": { "covers": [ "TORSO" ], "coverage": 5, "encumbrance": 5, "material_thickness": 2 },
"flags": [ "WAIST" ]
},
- {
- "id": "makeshift_axe",
- "type": "TOOL",
- "name": "makeshift axe",
- "description": "This is a sharpened chunk of steel affixed to a stick. It works passably well as an axe but really can't compare to a proper axe.",
- "weight": 3254,
- "volume": 14,
- "price": 0,
- "bashing": 11,
- "cutting": 8,
- "material": [ "wood", "steel" ],
- "symbol": "/",
- "color": "light_gray",
- "qualities": [ [ "AXE", 2 ] ]
- },
{
"id": "makeshift_shovel",
"type": "TOOL",
diff --git a/data/mods/More_Survival_Tools/recipes.json b/data/mods/More_Survival_Tools/recipes.json
index 3d9438ad6e728..9484c050fc22c 100644
--- a/data/mods/More_Survival_Tools/recipes.json
+++ b/data/mods/More_Survival_Tools/recipes.json
@@ -28,33 +28,6 @@
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "can_drink_unsealed", 1 ], [ "can_food_unsealed", 1 ], [ "scrap", 2 ] ] ]
},
- {
- "type": "recipe",
- "result": "torch",
- "id_suffix": "pine",
- "category": "CC_WEAPON",
- "subcategory": "CSC_WEAPON_BASHING",
- "difficulty": 0,
- "time": 3000,
- "autolearn": true,
- "batch_time_factors": [ 50, 5 ],
- "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ],
- "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ],
- "components": [ [ [ "stick", 1 ], [ "2x4", 1 ], [ "splinter", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ], [ [ "pine_bough", 2 ] ] ]
- },
- {
- "type": "recipe",
- "result": "bottle_metal",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_TOOLS",
- "skill_used": "fabrication",
- "difficulty": 2,
- "time": 90000,
- "autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
- "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
- "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 2 ], [ "scrap", 6 ] ] ]
- },
{
"type": "recipe",
"result": "cured_hide",
@@ -114,19 +87,6 @@
]
]
},
- {
- "type": "recipe",
- "result": "hand_axe",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_TOOLS",
- "skill_used": "survival",
- "skills_required": [ "fabrication", 1 ],
- "difficulty": 3,
- "time": 54000,
- "autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 1 } ],
- "components": [ [ [ "rock", 1 ], [ "ceramic_shard", 1 ], [ "sharp_rock", 1 ] ] ]
- },
{
"type": "recipe",
"result": "atlatl",
@@ -140,32 +100,6 @@
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [ [ [ "stick", 1 ], [ "broom", 1 ], [ "mop", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ] ] ]
},
- {
- "type": "recipe",
- "result": "spear_stone",
- "category": "CC_WEAPON",
- "subcategory": "CSC_WEAPON_PIERCING",
- "skill_used": "fabrication",
- "skills_required": [ "survival", 1 ],
- "difficulty": 2,
- "time": 2400,
- "autolearn": true,
- "qualities": [ { "id": "CUT", "level": 1 }, { "id": "HAMMER", "level": 1 } ],
- "components": [
- [ [ "stick_long", 1 ], [ "pool_cue", 1 ] ],
- [ [ "rag", 1 ], [ "felt_patch", 1 ], [ "leather", 1 ], [ "fur", 1 ] ],
- [
- [ "plant_fibre", 20 ],
- [ "sinew", 20 ],
- [ "thread", 20 ],
- [ "yarn", 20 ],
- [ "duct_tape", 20 ],
- [ "resin_cord", 1 ],
- [ "cordage_short", 1, "LIST" ]
- ],
- [ [ "rock", 1 ], [ "ceramic_shard", 1 ], [ "sharp_rock", 1 ] ]
- ]
- },
{
"type": "recipe",
"result": "javelin_stone",
@@ -304,19 +238,6 @@
"tools": [ [ [ "press", -1 ], [ "material_sand", -1 ], [ "clay_lump", -1 ] ], [ [ "surface_heat", 10, "LIST" ] ] ],
"components": [ [ [ "lead", 60 ], [ "gold_small", 60 ] ] ]
},
- {
- "type": "recipe",
- "result": "mess_tin",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_TOOLS",
- "skill_used": "fabrication",
- "difficulty": 2,
- "time": 80000,
- "autolearn": true,
- "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ],
- "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ],
- "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ]
- },
{
"type": "recipe",
"result": "pot_makeshift",
@@ -379,24 +300,6 @@
[ [ "cordage_short", 2, "LIST" ], [ "sinew", 40 ], [ "thread", 40 ], [ "plant_fibre", 40 ], [ "yarn", 40 ] ]
]
},
- {
- "type": "recipe",
- "result": "makeshift_axe",
- "category": "CC_OTHER",
- "subcategory": "CSC_OTHER_TOOLS",
- "skill_used": "survival",
- "skills_required": [ "fabrication", 1 ],
- "difficulty": 3,
- "time": 60000,
- "autolearn": true,
- "book_learn": [ [ "mag_survival", 1 ], [ "atomic_survival", 1 ], [ "textbook_carpentry", 2 ] ],
- "qualities": [ { "id": "HAMMER", "level": 1 } ],
- "components": [
- [ [ "stick", 1 ], [ "2x4", 1 ] ],
- [ [ "steel_chunk", 1 ], [ "steel_lump", 1 ] ],
- [ [ "cordage_short", 2, "LIST" ], [ "sinew", 40 ], [ "thread", 40 ], [ "plant_fibre", 40 ], [ "yarn", 40 ] ]
- ]
- },
{
"type": "recipe",
"result": "tanned_hide",
diff --git a/data/mods/More_Survival_Tools/terrain.json b/data/mods/More_Survival_Tools/terrain.json
deleted file mode 100644
index 0dc1d59b18b63..0000000000000
--- a/data/mods/More_Survival_Tools/terrain.json
+++ /dev/null
@@ -1,74 +0,0 @@
-[
- {
- "id": "t_leanto",
- "type": "terrain",
- "name": "pine lean-to",
- "symbol": ";",
- "color": [ "brown" ],
- "move_cost": 2,
- "bash": {
- "str_min": 40,
- "str_max": 90,
- "ter_set": "t_dirt",
- "sound": "crunch!",
- "sound_fail": "whack!",
- "items": [
- { "item": "stick", "count": [ 2, 7 ] },
- { "item": "splinter", "count": [ 8, 20 ] },
- { "item": "pine_bough", "count": [ 0, 2 ] }
- ]
- },
- "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE" ]
- },
- {
- "id": "t_tarptent",
- "type": "terrain",
- "name": "tarp lean-to",
- "symbol": ";",
- "color": [ "light_blue" ],
- "move_cost": 2,
- "bash": {
- "str_min": 6,
- "str_max": 12,
- "ter_set": "t_dirt",
- "sound": "crash!",
- "sound_fail": "whack!",
- "items": [
- { "item": "stick", "count": [ 1, 2 ] },
- { "item": "splinter", "count": [ 1, 4 ] },
- { "item": "plastic_chunk", "count": [ 4, 8 ] }
- ]
- },
- "deconstruct": {
- "ter_set": "t_dirt",
- "items": [ { "item": "pointy_stick", "count": 4 }, { "item": "string_6", "count": 4 }, { "item": "tarp", "count": 1 } ]
- },
- "flags": [ "TRANSPARENT", "FLAMMABLE", "THIN_OBSTACLE", "INDOORS", "MOUNTABLE", "EASY_DECONSTRUCT" ]
- },
- {
- "id": "t_raincatcher",
- "type": "terrain",
- "name": "tarp raincatcher",
- "symbol": ".",
- "color": [ "brown" ],
- "move_cost": 2,
- "trap": "tr_raincatcher",
- "bash": {
- "str_min": 6,
- "str_max": 12,
- "ter_set": "t_dirt",
- "sound": "crash!",
- "sound_fail": "whack!",
- "items": [
- { "item": "stick", "count": [ 1, 1 ] },
- { "item": "splinter", "count": [ 1, 2 ] },
- { "item": "plastic_chunk", "count": [ 4, 8 ] }
- ]
- },
- "deconstruct": {
- "ter_set": "t_dirt",
- "items": [ { "item": "pointy_stick", "count": 3 }, { "item": "string_6", "count": 3 }, { "item": "tarp", "count": 1 } ]
- },
- "flags": [ "TRANSPARENT", "FLAMMABLE", "THIN_OBSTACLE", "EASY_DECONSTRUCT" ]
- }
-]
diff --git a/data/mods/More_Survival_Tools/traps.json b/data/mods/More_Survival_Tools/traps.json
index 06765b4411456..677656f74480c 100644
--- a/data/mods/More_Survival_Tools/traps.json
+++ b/data/mods/More_Survival_Tools/traps.json
@@ -1,18 +1,4 @@
[
- {
- "type": "trap",
- "id": "tr_raincatcher",
- "name": "raincatcher",
- "color": "blue",
- "symbol": "V",
- "visibility": -1,
- "avoidance": 0,
- "difficulty": 99,
- "action": "none",
- "drops": [ "tarp" ],
- "benign": true,
- "funnel_radius": 342
- },
{
"type": "trap",
"id": "tr_light_snare",
diff --git a/data/mods/Salvaged_Robots/items.json b/data/mods/Salvaged_Robots/items.json
index 056591f22a8c4..3694e7b56e08e 100644
--- a/data/mods/Salvaged_Robots/items.json
+++ b/data/mods/Salvaged_Robots/items.json
@@ -192,7 +192,13 @@
},
{ "type": "place_monster", "monster_id": "mon_craftbuddy", "moves": 100 }
],
- "magazines": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell" ] ] ]
+ "magazines": [
+ [
+ "battery",
+ [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ]
+ ]
+ ],
+ "magazine_well": 2
},
{
"type": "TOOL",
diff --git a/data/mods/Salvaged_Robots/robot_additions/professions.json b/data/mods/Salvaged_Robots/robot_additions/professions.json
index fb278c5a21946..f6e8978d144a1 100644
--- a/data/mods/Salvaged_Robots/robot_additions/professions.json
+++ b/data/mods/Salvaged_Robots/robot_additions/professions.json
@@ -19,9 +19,9 @@
"broken_skitterbot",
"bot_manhack",
"electrohack",
- "cell_phone",
"laptop"
- ]
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
},
"male": [ "boxer_shorts" ],
"female": [ "sports_bra", "boxer_shorts" ]
diff --git a/data/mods/alt_map_key/overmap_terrain.json b/data/mods/alt_map_key/overmap_terrain.json
index 67d8143468fe5..20847c54e0c97 100644
--- a/data/mods/alt_map_key/overmap_terrain.json
+++ b/data/mods/alt_map_key/overmap_terrain.json
@@ -702,14 +702,6 @@
"sym": "c",
"color": "light_green"
},
- {
- "type": "overmap_terrain",
- "id": "dirtlot",
- "copy-from": "dirtlot",
- "name": "dirt lot",
- "sym": "O",
- "color": "brown"
- },
{
"type": "overmap_terrain",
"id": "sugar_house",
diff --git a/data/mods/classic_zombies/exclusions.json b/data/mods/classic_zombies/exclusions.json
new file mode 100644
index 0000000000000..79266474b911c
--- /dev/null
+++ b/data/mods/classic_zombies/exclusions.json
@@ -0,0 +1,41 @@
+[
+ {
+ "type": "region_overlay",
+ "id": "classic_overmap",
+ "regions": [ "all" ],
+ "overmap_feature_flag_settings": { "whitelist": [ "CLASSIC" ] }
+ },
+ {
+ "type": "MONSTER_WHITELIST",
+ "mode": "EXCLUSIVE",
+ "categories": [ "CLASSIC", "WILDLIFE" ]
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "DISABLE_ROBOT_RESPONSE",
+ "info": "Disables robot spawning from alerts and from being wanted.",
+ "stype": "bool",
+ "value": true
+ },
+ {
+ "type": "region_overlay",
+ "id": "classic_extras",
+ "regions": [ "all" ],
+ "map_extras": {
+ "forest": { "chance": 20, "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0, "mx_spider": 0 } },
+ "forest_thick": {
+ "chance": 20,
+ "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0, "mx_shia": 0, "mx_spider": 0, "mx_jabberwock": 0 }
+ },
+ "forest_water": { "chance": 20, "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0, "mx_spider": 0 } },
+ "field": { "chance": 90, "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0 } },
+ "road": { "chance": 75, "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0 } },
+ "build": {
+ "chance": 90,
+ "extras": { "mx_house_spider": 0, "mx_house_wasp": 0, "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0 }
+ },
+ "marloss": { "chance": 0, "extras": { "mx_marloss_pilgrimage": 0 } },
+ "subway": { "chance": 75, "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_anomaly": 0 } }
+ }
+ }
+]
diff --git a/data/mods/classic_zombies/modinfo.json b/data/mods/classic_zombies/modinfo.json
new file mode 100644
index 0000000000000..e964d03d0f9d3
--- /dev/null
+++ b/data/mods/classic_zombies/modinfo.json
@@ -0,0 +1,12 @@
+[
+ {
+ "type": "MOD_INFO",
+ "ident": "classic_zombies",
+ "name": "Classic zombies",
+ "authors": [ "Hirmuolio" ],
+ "maintainers": [ "" ],
+ "description": "Only spawn classic zombies and natural wildlife. This disables certain buildings and map extras.",
+ "category": "monster_exclude",
+ "dependencies": [ "dda" ]
+ }
+]
diff --git a/data/mods/BrightNights/effects.json b/data/mods/fast_healing/effects.json
similarity index 100%
rename from data/mods/BrightNights/effects.json
rename to data/mods/fast_healing/effects.json
diff --git a/data/mods/BrightNights/items/med.json b/data/mods/fast_healing/meds.json
similarity index 100%
rename from data/mods/BrightNights/items/med.json
rename to data/mods/fast_healing/meds.json
diff --git a/data/mods/fast_healing/modinfo.json b/data/mods/fast_healing/modinfo.json
new file mode 100644
index 0000000000000..e32a137c9a40a
--- /dev/null
+++ b/data/mods/fast_healing/modinfo.json
@@ -0,0 +1,12 @@
+[
+ {
+ "type": "MOD_INFO",
+ "ident": "fast_healing",
+ "name": "Fast Healing",
+ "authors": [ "anothersimulacrum" ],
+ "maintainers": [ ],
+ "description": "Increases healing speed and the effectiveness of healing items.",
+ "category": "misc_additions",
+ "dependencies": [ "dda" ]
+ }
+]
diff --git a/data/mods/fast_healing/recipes.json b/data/mods/fast_healing/recipes.json
new file mode 100644
index 0000000000000..b3f9b11856cfe
--- /dev/null
+++ b/data/mods/fast_healing/recipes.json
@@ -0,0 +1,24 @@
+[
+ {
+ "type": "recipe",
+ "category": "CC_OTHER",
+ "subcategory": "CSC_OTHER_MEDICAL",
+ "skill_used": "firstaid",
+ "result": "bandages",
+ "difficulty": 0,
+ "time": 500,
+ "autolearn": true,
+ "components": [
+ [ [ "rag", 3 ], [ "medical_gauze", 1 ] ],
+ [ [ "duct_tape", 20 ], [ "medical_tape", 5 ] ],
+ [
+ [ "disinfectant", 1 ],
+ [ "thyme_oil", 1 ],
+ [ "chem_ethanol", 250 ],
+ [ "denat_alcohol", 250 ],
+ [ "hard_liquor", 28, "LIST" ]
+ ]
+ ],
+ "flags": [ "BLIND_HARD" ]
+ }
+]
diff --git a/data/mods/more_classes_scenarios/cs_classes.json b/data/mods/more_classes_scenarios/cs_classes.json
index 254e6f90066cb..0efb4e91df78c 100644
--- a/data/mods/more_classes_scenarios/cs_classes.json
+++ b/data/mods/more_classes_scenarios/cs_classes.json
@@ -133,27 +133,29 @@
{ "level": 1, "name": "firstaid" }
],
"items": {
- "both": [
- "knit_scarf",
- "undershirt",
- "dress_shirt",
- "jacket_light",
- "gloves_light",
- "pants",
- "fanny",
- "socks",
- "sneakers",
- "roadmap",
- "restaurantmap",
- "shavingkit",
- "mess_kit",
- "aluminum_foil",
- "cell_phone",
- "can_chowder",
- "apple_cider",
- "fruit_leather",
- "suitcase_m"
- ],
+ "both": {
+ "items": [
+ "knit_scarf",
+ "undershirt",
+ "dress_shirt",
+ "jacket_light",
+ "gloves_light",
+ "pants",
+ "fanny",
+ "socks",
+ "sneakers",
+ "roadmap",
+ "restaurantmap",
+ "shavingkit",
+ "mess_kit",
+ "aluminum_foil",
+ "can_chowder",
+ "apple_cider",
+ "fruit_leather",
+ "suitcase_m"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "boxer_shorts" ],
"female": [ "bra", "panties" ]
}
@@ -291,24 +293,26 @@
"points": 1,
"skills": [ { "level": 1, "name": "speech" } ],
"items": {
- "both": [
- "dress_shirt",
- "jacket_light",
- "pants",
- "socks",
- "dress_shoes",
- "skinny_tie",
- "tieclip",
- "fancy_sunglasses",
- "knit_scarf",
- "wristwatch",
- "mbag",
- "water_mineral",
- "cell_phone",
- "money_bundle",
- "adderall",
- "manual_business"
- ],
+ "both": {
+ "items": [
+ "dress_shirt",
+ "jacket_light",
+ "pants",
+ "socks",
+ "dress_shoes",
+ "skinny_tie",
+ "tieclip",
+ "fancy_sunglasses",
+ "knit_scarf",
+ "wristwatch",
+ "mbag",
+ "water_mineral",
+ "money_bundle",
+ "adderall",
+ "manual_business"
+ ],
+ "entries": [ { "group": "charged_cell_phone" } ]
+ },
"male": [ "briefs" ],
"female": [ "panties" ]
}
diff --git a/data/mods/replacements.json b/data/mods/replacements.json
index 1e1527692850f..31ea64601ee54 100644
--- a/data/mods/replacements.json
+++ b/data/mods/replacements.json
@@ -42,5 +42,9 @@
],
[
"Experimental-Z-Level"
+ ],
+ [
+ "brightnights",
+ "aftershock"
]
]
diff --git a/data/mods/speedydex/modinfo.json b/data/mods/speedydex/modinfo.json
new file mode 100644
index 0000000000000..91b4de6910065
--- /dev/null
+++ b/data/mods/speedydex/modinfo.json
@@ -0,0 +1,26 @@
+[
+ {
+ "type": "MOD_INFO",
+ "ident": "speedydex",
+ "name": "SpeedyDex",
+ "authors": [ "KorGgenT" ],
+ "maintainers": [ "KorGgenT" ],
+ "description": "Higher dex increases your speed.",
+ "category": "rebalance",
+ "dependencies": [ "dda" ]
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "SPEEDYDEX_MIN_DEX",
+ "info": "The minimum dex required for speedydex mod to add speed",
+ "stype": "int",
+ "value": 12
+ },
+ {
+ "type": "EXTERNAL_OPTION",
+ "name": "SPEEDYDEX_DEX_SPEED",
+ "info": "The amount of moves gained per dex above SPEEDYDEX_MIN_DEX",
+ "stype": "int",
+ "value": 2
+ }
+]
diff --git a/data/names/ru.json b/data/names/ru.json
index 7ca2e4c2bb97a..092003d209e54 100644
--- a/data/names/ru.json
+++ b/data/names/ru.json
@@ -1,4 +1,1688 @@
[
+{"usage": "nick", "name": "10-4"},
+{"usage": "nick", "name": "Брошенка"},
+{"usage": "nick", "name": "Терпила"},
+{"usage": "nick", "name": "Кубики"},
+{"usage": "nick", "name": "Козырь"},
+{"usage": "nick", "name": "Кислота"},
+{"usage": "nick", "name": "Адажио"},
+{"usage": "nick", "name": "Хрен переспоришь"},
+{"usage": "nick", "name": "Адмирал"},
+{"usage": "nick", "name": "Эон"},
+{"usage": "nick", "name": "Аэро"},
+{"usage": "nick", "name": "ППЦ"},
+{"usage": "nick", "name": "После"},
+{"usage": "nick", "name": "Агат"},
+{"usage": "nick", "name": "Агент"},
+{"usage": "nick", "name": "Злюка"},
+{"usage": "nick", "name": "Изжога"},
+{"usage": "nick", "name": "Ура"},
+{"usage": "nick", "name": "Привет"},
+{"usage": "nick", "name": "Руки-в-боки"},
+{"usage": "nick", "name": "Альбатрос"},
+{"usage": "nick", "name": "Алиби"},
+{"usage": "nick", "name": "Звезда"},
+{"usage": "nick", "name": "Альфа"},
+{"usage": "nick", "name": "Абы как"},
+{"usage": "nick", "name": "Амброзия"},
+{"usage": "nick", "name": "Аминь"},
+{"usage": "nick", "name": "Америка"},
+{"usage": "nick", "name": "Аметист"},
+{"usage": "nick", "name": "Патрон"},
+{"usage": "nick", "name": "Люто-бешено"},
+{"usage": "nick", "name": "Заткнись"},
+{"usage": "nick", "name": "Якорь"},
+{"usage": "nick", "name": "Ангел"},
+{"usage": "nick", "name": "Анима"},
+{"usage": "nick", "name": "Животина"},
+{"usage": "nick", "name": "Девчонка"},
+{"usage": "nick", "name": "Мурашка"},
+{"usage": "nick", "name": "Дырень"},
+{"usage": "nick", "name": "Верхотура"},
+{"usage": "nick", "name": "Апокалипсис"},
+{"usage": "nick", "name": "Апогей"},
+{"usage": "nick", "name": "Яблоко"},
+{"usage": "nick", "name": "Яблочник"},
+{"usage": "nick", "name": "Яблочное Зёрнышко"},
+{"usage": "nick", "name": "Аква"},
+{"usage": "nick", "name": "Аркада"},
+{"usage": "nick", "name": "Архон"},
+{"usage": "nick", "name": "Арканзас"},
+{"usage": "nick", "name": "Аркан"},
+{"usage": "nick", "name": "Бычара"},
+{"usage": "nick", "name": "Армагеддон"},
+{"usage": "nick", "name": "Астро"},
+{"usage": "nick", "name": "Атлант"},
+{"usage": "nick", "name": "Атом"},
+{"usage": "nick", "name": "Аура"},
+{"usage": "nick", "name": "Пощёчина"},
+{"usage": "nick", "name": "Аврора"},
+{"usage": "nick", "name": "Оззи"},
+{"usage": "nick", "name": "Австралия"},
+{"usage": "nick", "name": "Самоволка"},
+{"usage": "nick", "name": "Топор"},
+{"usage": "nick", "name": "Эй"},
+{"usage": "nick", "name": "Детка"},
+{"usage": "nick", "name": "Малыш"},
+{"usage": "nick", "name": "Бекон"},
+{"usage": "nick", "name": "Задира"},
+{"usage": "nick", "name": "Барсук"},
+{"usage": "nick", "name": "Плешь"},
+{"usage": "nick", "name": "Круши-ломай"},
+{"usage": "nick", "name": "Бэмби"},
+{"usage": "nick", "name": "Банан"},
+{"usage": "nick", "name": "Охренеть"},
+{"usage": "nick", "name": "Бандюга"},
+{"usage": "nick", "name": "Я со всеми"},
+{"usage": "nick", "name": "Бабах"},
+{"usage": "nick", "name": "Банхаммер"},
+{"usage": "nick", "name": "Вписка"},
+{"usage": "nick", "name": "Банши"},
+{"usage": "nick", "name": "Банзай"},
+{"usage": "nick", "name": "Барбитурат"},
+{"usage": "nick", "name": "Варвар"},
+{"usage": "nick", "name": "Побрейся"},
+{"usage": "nick", "name": "Бард"},
+{"usage": "nick", "name": "Барон"},
+{"usage": "nick", "name": "Сделай бочку"},
+{"usage": "nick", "name": "Стыдоба"},
+{"usage": "nick", "name": "Мне похер"},
+{"usage": "nick", "name": "Жопошник"},
+{"usage": "nick", "name": "Лучик"},
+{"usage": "nick", "name": "Весельчак"},
+{"usage": "nick", "name": "Медведь"},
+{"usage": "nick", "name": "Зверюга"},
+{"usage": "nick", "name": "Лапочка"},
+{"usage": "nick", "name": "Бибоп"},
+{"usage": "nick", "name": "Бедлам"},
+{"usage": "nick", "name": "Пчёлка"},
+{"usage": "nick", "name": "Придира"},
+{"usage": "nick", "name": "Бип"},
+{"usage": "nick", "name": "Би-бип"},
+{"usage": "nick", "name": "Ни о чём"},
+{"usage": "nick", "name": "Жиртрест"},
+{"usage": "nick", "name": "Берсерк"},
+{"usage": "nick", "name": "Лучше всех"},
+{"usage": "nick", "name": "Бета"},
+{"usage": "nick", "name": "Больше всех"},
+{"usage": "nick", "name": "Большие пушки"},
+{"usage": "nick", "name": "Важная шишка"},
+{"usage": "nick", "name": "Биггс"},
+{"usage": "nick", "name": "Трепло"},
+{"usage": "nick", "name": "По-крупному"},
+{"usage": "nick", "name": "Бихари"},
+{"usage": "nick", "name": "Миллиард"},
+{"usage": "nick", "name": "Бинг"},
+{"usage": "nick", "name": "Бинго"},
+{"usage": "nick", "name": "Био"},
+{"usage": "nick", "name": "Цыпа"},
+{"usage": "nick", "name": "Пташка"},
+{"usage": "nick", "name": "Косяк"},
+{"usage": "nick", "name": "Повторюха"},
+{"usage": "nick", "name": "Битмап"},
+{"usage": "nick", "name": "Чернота"},
+{"usage": "nick", "name": "Блэкджек"},
+{"usage": "nick", "name": "Блейд"},
+{"usage": "nick", "name": "Позорище"},
+{"usage": "nick", "name": "Просто пушка"},
+{"usage": "nick", "name": "Укурок"},
+{"usage": "nick", "name": "Внезапность"},
+{"usage": "nick", "name": "Показуха"},
+{"usage": "nick", "name": "Блинк"},
+{"usage": "nick", "name": "Волына"},
+{"usage": "nick", "name": "Прыщ"},
+{"usage": "nick", "name": "Блиц"},
+{"usage": "nick", "name": "Пурга"},
+{"usage": "nick", "name": "Забаню"},
+{"usage": "nick", "name": "Балда"},
+{"usage": "nick", "name": "Блонди"},
+{"usage": "nick", "name": "Прелесть"},
+{"usage": "nick", "name": "Вдул"},
+{"usage": "nick", "name": "Блю"},
+{"usage": "nick", "name": "Жополиз"},
+{"usage": "nick", "name": "Залей глаза"},
+{"usage": "nick", "name": "Скромняга"},
+{"usage": "nick", "name": "Посан"},
+{"usage": "nick", "name": "Кабан"},
+{"usage": "nick", "name": "Тело"},
+{"usage": "nick", "name": "Под орех"},
+{"usage": "nick", "name": "Окурок"},
+{"usage": "nick", "name": "Брехло"},
+{"usage": "nick", "name": "Болт"},
+{"usage": "nick", "name": "Режу правду"},
+{"usage": "nick", "name": "Рыбак"},
+{"usage": "nick", "name": "Бонанза"},
+{"usage": "nick", "name": "Бонд"},
+{"usage": "nick", "name": "Стояк"},
+{"usage": "nick", "name": "Крыша поехала"},
+{"usage": "nick", "name": "Бонсай"},
+{"usage": "nick", "name": "Бонус"},
+{"usage": "nick", "name": "Половинка"},
+{"usage": "nick", "name": "Радость"},
+{"usage": "nick", "name": "Ставка"},
+{"usage": "nick", "name": "Ёпт"},
+{"usage": "nick", "name": "Нищебро"},
+{"usage": "nick", "name": "Халява"},
+{"usage": "nick", "name": "Нубло"},
+{"usage": "nick", "name": "Фуфло"},
+{"usage": "nick", "name": "Жлоб"},
+{"usage": "nick", "name": "Босс"},
+{"usage": "nick", "name": "Баузер"},
+{"usage": "nick", "name": "Пацан"},
+{"usage": "nick", "name": "Без мозгов"},
+{"usage": "nick", "name": "Мозг"},
+{"usage": "nick", "name": "Мозговой штурм"},
+{"usage": "nick", "name": "Крысюк"},
+{"usage": "nick", "name": "Отвага"},
+{"usage": "nick", "name": "Браво"},
+{"usage": "nick", "name": "Бразилия"},
+{"usage": "nick", "name": "Из Бразилии"},
+{"usage": "nick", "name": "Бабло"},
+{"usage": "nick", "name": "Разрыв"},
+{"usage": "nick", "name": "Раз-два"},
+{"usage": "nick", "name": "Головокружение"},
+{"usage": "nick", "name": "Кирпич"},
+{"usage": "nick", "name": "Дисбат"},
+{"usage": "nick", "name": "Бронко"},
+{"usage": "nick", "name": "Коп"},
+{"usage": "nick", "name": "Бугага"},
+{"usage": "nick", "name": "Мачо"},
+{"usage": "nick", "name": "Брамми"},
+{"usage": "nick", "name": "Братишка"},
+{"usage": "nick", "name": "Себе на уме"},
+{"usage": "nick", "name": "Бабблс"},
+{"usage": "nick", "name": "Дружище"},
+{"usage": "nick", "name": "Лавэ"},
+{"usage": "nick", "name": "Бакай"},
+{"usage": "nick", "name": "Жук"},
+{"usage": "nick", "name": "Багбир"},
+{"usage": "nick", "name": "Багз"},
+{"usage": "nick", "name": "Бицепс"},
+{"usage": "nick", "name": "Бык"},
+{"usage": "nick", "name": "Пуля"},
+{"usage": "nick", "name": "В яблочко"},
+{"usage": "nick", "name": "Неваляшка"},
+{"usage": "nick", "name": "Балбес"},
+{"usage": "nick", "name": "Зайка"},
+{"usage": "nick", "name": "Булки"},
+{"usage": "nick", "name": "Нихера"},
+{"usage": "nick", "name": "Балабол"},
+{"usage": "nick", "name": "На подскоке"},
+{"usage": "nick", "name": "У меня дела"},
+{"usage": "nick", "name": "Брюзга"},
+{"usage": "nick", "name": "Мужлан"},
+{"usage": "nick", "name": "Мясник"},
+{"usage": "nick", "name": "Как по маслу"},
+{"usage": "nick", "name": "Истеричка"},
+{"usage": "nick", "name": "Милашка"},
+{"usage": "nick", "name": "Круто"},
+{"usage": "nick", "name": "Капуста"},
+{"usage": "nick", "name": "Какофония"},
+{"usage": "nick", "name": "Овощ"},
+{"usage": "nick", "name": "Цезарь"},
+{"usage": "nick", "name": "На кофеине"},
+{"usage": "nick", "name": "Кейдж"},
+{"usage": "nick", "name": "Мухлёж"},
+{"usage": "nick", "name": "Кахун"},
+{"usage": "nick", "name": "Беда"},
+{"usage": "nick", "name": "Матан"},
+{"usage": "nick", "name": "Калипсо"},
+{"usage": "nick", "name": "Мордашка"},
+{"usage": "nick", "name": "Камуфляж"},
+{"usage": "nick", "name": "Так точно"},
+{"usage": "nick", "name": "Канада"},
+{"usage": "nick", "name": "Из Канады"},
+{"usage": "nick", "name": "Дрищ"},
+{"usage": "nick", "name": "Канданго"},
+{"usage": "nick", "name": "И так сойдёт"},
+{"usage": "nick", "name": "Канада"},
+{"usage": "nick", "name": "Не гони"},
+{"usage": "nick", "name": "Воротила"},
+{"usage": "nick", "name": "Капихаба"},
+{"usage": "nick", "name": "Кэппи"},
+{"usage": "nick", "name": "Кэп"},
+{"usage": "nick", "name": "Карамелька"},
+{"usage": "nick", "name": "Каркамано"},
+{"usage": "nick", "name": "Кариока"},
+{"usage": "nick", "name": "Моркоу"},
+{"usage": "nick", "name": "Кэрри"},
+{"usage": "nick", "name": "Касабланка"},
+{"usage": "nick", "name": "Казино"},
+{"usage": "nick", "name": "Фейк"},
+{"usage": "nick", "name": "Гондурас"},
+{"usage": "nick", "name": "Загвоздка"},
+{"usage": "nick", "name": "Кореш"},
+{"usage": "nick", "name": "Многоножка"},
+{"usage": "nick", "name": "Церера"},
+{"usage": "nick", "name": "Чемпион"},
+{"usage": "nick", "name": "Кент"},
+{"usage": "nick", "name": "Гватемала"},
+{"usage": "nick", "name": "Чаппи"},
+{"usage": "nick", "name": "На колёсах"},
+{"usage": "nick", "name": "Очаровашка"},
+{"usage": "nick", "name": "Хрен заткнёшь"},
+{"usage": "nick", "name": "Флудер"},
+{"usage": "nick", "name": "Шах-и-мат"},
+{"usage": "nick", "name": "Щёчки"},
+{"usage": "nick", "name": "Сноб"},
+{"usage": "nick", "name": "Спасибки"},
+{"usage": "nick", "name": "Падонак"},
+{"usage": "nick", "name": "Шеф"},
+{"usage": "nick", "name": "Черри"},
+{"usage": "nick", "name": "Шахматист"},
+{"usage": "nick", "name": "Хи"},
+{"usage": "nick", "name": "Чел"},
+{"usage": "nick", "name": "Мексика"},
+{"usage": "nick", "name": "Спокойно"},
+{"usage": "nick", "name": "Китай"},
+{"usage": "nick", "name": "Китаёза"},
+{"usage": "nick", "name": "Чирик-чирик"},
+{"usage": "nick", "name": "Потрындим"},
+{"usage": "nick", "name": "Чоко"},
+{"usage": "nick", "name": "Шоколадка"},
+{"usage": "nick", "name": "Не вышло"},
+{"usage": "nick", "name": "Чух-чух"},
+{"usage": "nick", "name": "Отбивная"},
+{"usage": "nick", "name": "Хром"},
+{"usage": "nick", "name": "Хроно"},
+{"usage": "nick", "name": "Хи-хи"},
+{"usage": "nick", "name": "Бро"},
+{"usage": "nick", "name": "Лох"},
+{"usage": "nick", "name": "Чао"},
+{"usage": "nick", "name": "Сидр"},
+{"usage": "nick", "name": "Синко"},
+{"usage": "nick", "name": "Кино"},
+{"usage": "nick", "name": "Веснушка"},
+{"usage": "nick", "name": "Шифр"},
+{"usage": "nick", "name": "Клэнк"},
+{"usage": "nick", "name": "Гонишь"},
+{"usage": "nick", "name": "Коготь"},
+{"usage": "nick", "name": "Хлебушек"},
+{"usage": "nick", "name": "Клеймора"},
+{"usage": "nick", "name": "Церковник"},
+{"usage": "nick", "name": "Клик"},
+{"usage": "nick", "name": "Под кайфом"},
+{"usage": "nick", "name": "Закон-и-порядок"},
+{"usage": "nick", "name": "Профессор"},
+{"usage": "nick", "name": "Коусти"},
+{"usage": "nick", "name": "Кобра"},
+{"usage": "nick", "name": "Сыч"},
+{"usage": "nick", "name": "Кокни"},
+{"usage": "nick", "name": "Таракан"},
+{"usage": "nick", "name": "Коко"},
+{"usage": "nick", "name": "Кофеёк"},
+{"usage": "nick", "name": "Планктонина"},
+{"usage": "nick", "name": "Коуи"},
+{"usage": "nick", "name": "Толстосум"},
+{"usage": "nick", "name": "Полковник"},
+{"usage": "nick", "name": "Коматоз"},
+{"usage": "nick", "name": "Комбо"},
+{"usage": "nick", "name": "Очень смешно"},
+{"usage": "nick", "name": "Комета"},
+{"usage": "nick", "name": "Душа компании"},
+{"usage": "nick", "name": "Кон"},
+{"usage": "nick", "name": "Фейл"},
+{"usage": "nick", "name": "Ракушка"},
+{"usage": "nick", "name": "Поплачься"},
+{"usage": "nick", "name": "Состав"},
+{"usage": "nick", "name": "Контрабанда"},
+{"usage": "nick", "name": "Печенька"},
+{"usage": "nick", "name": "Халтура"},
+{"usage": "nick", "name": "Медяк"},
+{"usage": "nick", "name": "Да-да"},
+{"usage": "nick", "name": "Штопор"},
+{"usage": "nick", "name": "Дурашка"},
+{"usage": "nick", "name": "Космо"},
+{"usage": "nick", "name": "До зарезу"},
+{"usage": "nick", "name": "Табло"},
+{"usage": "nick", "name": "Не скажу"},
+{"usage": "nick", "name": "Кавабанга"},
+{"usage": "nick", "name": "Койот"},
+{"usage": "nick", "name": "Краб"},
+{"usage": "nick", "name": "Супер-пупер"},
+{"usage": "nick", "name": "Крэш"},
+{"usage": "nick", "name": "Кратер"},
+{"usage": "nick", "name": "Я хочу"},
+{"usage": "nick", "name": "Деньги решают"},
+{"usage": "nick", "name": "Крещендо"},
+{"usage": "nick", "name": "Печалька"},
+{"usage": "nick", "name": "Пурпур"},
+{"usage": "nick", "name": "Как по маслу"},
+{"usage": "nick", "name": "Перекрёст"},
+{"usage": "nick", "name": "Ква"},
+{"usage": "nick", "name": "Лапоть"},
+{"usage": "nick", "name": "Жулик"},
+{"usage": "nick", "name": "Ворон"},
+{"usage": "nick", "name": "Ни гроша"},
+{"usage": "nick", "name": "Крейсер"},
+{"usage": "nick", "name": "Мудила"},
+{"usage": "nick", "name": "Вот блин"},
+{"usage": "nick", "name": "В стельку"},
+{"usage": "nick", "name": "Стерва"},
+{"usage": "nick", "name": "Криптид"},
+{"usage": "nick", "name": "Куатро"},
+{"usage": "nick", "name": "Ку-ку"},
+{"usage": "nick", "name": "Деревня"},
+{"usage": "nick", "name": "Амур"},
+{"usage": "nick", "name": "Таблетка"},
+{"usage": "nick", "name": "Кудряшка"},
+{"usage": "nick", "name": "Проклятье"},
+{"usage": "nick", "name": "Милочка"},
+{"usage": "nick", "name": "Циан"},
+{"usage": "nick", "name": "Цианид"},
+{"usage": "nick", "name": "Кибер"},
+{"usage": "nick", "name": "Циклон"},
+{"usage": "nick", "name": "Циклоп"},
+{"usage": "nick", "name": "Знаток"},
+{"usage": "nick", "name": "Не все дома"},
+{"usage": "nick", "name": "Кинжал"},
+{"usage": "nick", "name": "Даллас"},
+{"usage": "nick", "name": "Сцуко"},
+{"usage": "nick", "name": "Угроза"},
+{"usage": "nick", "name": "Тьма"},
+{"usage": "nick", "name": "Дорогуша"},
+{"usage": "nick", "name": "Дарт"},
+{"usage": "nick", "name": "Дата"},
+{"usage": "nick", "name": "Снайпер"},
+{"usage": "nick", "name": "Зая"},
+{"usage": "nick", "name": "Обманка"},
+{"usage": "nick", "name": "Ди"},
+{"usage": "nick", "name": "Проныра"},
+{"usage": "nick", "name": "Дельта"},
+{"usage": "nick", "name": "Деми"},
+{"usage": "nick", "name": "Демон"},
+{"usage": "nick", "name": "Безнадёга"},
+{"usage": "nick", "name": "Боже"},
+{"usage": "nick", "name": "Дьявол"},
+{"usage": "nick", "name": "Дью"},
+{"usage": "nick", "name": "Диабло"},
+{"usage": "nick", "name": "Алмаз"},
+{"usage": "nick", "name": "Даймондбэк"},
+{"usage": "nick", "name": "Это моё"},
+{"usage": "nick", "name": "Кубик"},
+{"usage": "nick", "name": "Дизель"},
+{"usage": "nick", "name": "Дижон"},
+{"usage": "nick", "name": "Дилемма"},
+{"usage": "nick", "name": "Туман"},
+{"usage": "nick", "name": "Грош"},
+{"usage": "nick", "name": "Ямочки"},
+{"usage": "nick", "name": "Дино"},
+{"usage": "nick", "name": "Отчаяние"},
+{"usage": "nick", "name": "Реквием"},
+{"usage": "nick", "name": "Диско"},
+{"usage": "nick", "name": "То же"},
+{"usage": "nick", "name": "Совсем того"},
+{"usage": "nick", "name": "Джинн"},
+{"usage": "nick", "name": "Мёртвое тело"},
+{"usage": "nick", "name": "Док"},
+{"usage": "nick", "name": "Додик"},
+{"usage": "nick", "name": "Псина"},
+{"usage": "nick", "name": "Депрессия"},
+{"usage": "nick", "name": "Куколка"},
+{"usage": "nick", "name": "Ишак"},
+{"usage": "nick", "name": "Косячок"},
+{"usage": "nick", "name": "Штуковина"},
+{"usage": "nick", "name": "Рок"},
+{"usage": "nick", "name": "Судный день"},
+{"usage": "nick", "name": "Дурь"},
+{"usage": "nick", "name": "Торчок"},
+{"usage": "nick", "name": "Двойник"},
+{"usage": "nick", "name": "Ничоси"},
+{"usage": "nick", "name": "Дабл"},
+{"usage": "nick", "name": "Богач"},
+{"usage": "nick", "name": "Отпад"},
+{"usage": "nick", "name": "Драко"},
+{"usage": "nick", "name": "Дракон"},
+{"usage": "nick", "name": "Страх"},
+{"usage": "nick", "name": "Дредноут"},
+{"usage": "nick", "name": "Дрифт"},
+{"usage": "nick", "name": "Дрифтер"},
+{"usage": "nick", "name": "Дроид"},
+{"usage": "nick", "name": "Общак"},
+{"usage": "nick", "name": "Друид"},
+{"usage": "nick", "name": "Сладость"},
+{"usage": "nick", "name": "Нежность"},
+{"usage": "nick", "name": "Ни бум-бум"},
+{"usage": "nick", "name": "Тупица"},
+{"usage": "nick", "name": "Дамбо"},
+{"usage": "nick", "name": "Пышка"},
+{"usage": "nick", "name": "Дандер"},
+{"usage": "nick", "name": "Всё тлен"},
+{"usage": "nick", "name": "Голландец"},
+{"usage": "nick", "name": "Динамо"},
+{"usage": "nick", "name": "Диз"},
+{"usage": "nick", "name": "Восток"},
+{"usage": "nick", "name": "Успокойся"},
+{"usage": "nick", "name": "Эйбон"},
+{"usage": "nick", "name": "Эхо"},
+{"usage": "nick", "name": "Затмение"},
+{"usage": "nick", "name": "Экстази"},
+{"usage": "nick", "name": "Угорь"},
+{"usage": "nick", "name": "Умник"},
+{"usage": "nick", "name": "Эго"},
+{"usage": "nick", "name": "Восьмёрка"},
+{"usage": "nick", "name": "Эйтс"},
+{"usage": "nick", "name": "Эйнштейн"},
+{"usage": "nick", "name": "Или-или"},
+{"usage": "nick", "name": "Кончина"},
+{"usage": "nick", "name": "Эль Диабло"},
+{"usage": "nick", "name": "Старпёр"},
+{"usage": "nick", "name": "Клёво"},
+{"usage": "nick", "name": "Элемент"},
+{"usage": "nick", "name": "Элита"},
+{"usage": "nick", "name": "Изумруд"},
+{"usage": "nick", "name": "На бис"},
+{"usage": "nick", "name": "Конец света"},
+{"usage": "nick", "name": "Эндер"},
+{"usage": "nick", "name": "Вышибала"},
+{"usage": "nick", "name": "Энигма"},
+{"usage": "nick", "name": "Зависть"},
+{"usage": "nick", "name": "Эпсилон"},
+{"usage": "nick", "name": "День-и-ночь"},
+{"usage": "nick", "name": "Эрида"},
+{"usage": "nick", "name": "Эсквайр"},
+{"usage": "nick", "name": "Эта"},
+{"usage": "nick", "name": "Эфир"},
+{"usage": "nick", "name": "Этимология"},
+{"usage": "nick", "name": "Эврика"},
+{"usage": "nick", "name": "Евротрэш"},
+{"usage": "nick", "name": "Изгой"},
+{"usage": "nick", "name": "На выход"},
+{"usage": "nick", "name": "Экзо"},
+{"usage": "nick", "name": "Академик"},
+{"usage": "nick", "name": "Мне-с-собой"},
+{"usage": "nick", "name": "Глаза"},
+{"usage": "nick", "name": "Красота"},
+{"usage": "nick", "name": "Лицо"},
+{"usage": "nick", "name": "Вера"},
+{"usage": "nick", "name": "Сокол"},
+{"usage": "nick", "name": "Падший"},
+{"usage": "nick", "name": "Фанданго"},
+{"usage": "nick", "name": "Фантастика"},
+{"usage": "nick", "name": "Лайк"},
+{"usage": "nick", "name": "Ужас"},
+{"usage": "nick", "name": "Крошка"},
+{"usage": "nick", "name": "Фехтовальщик"},
+{"usage": "nick", "name": "Хорёк"},
+{"usage": "nick", "name": "Феска"},
+{"usage": "nick", "name": "Скрипач"},
+{"usage": "nick", "name": "Бляха-муха"},
+{"usage": "nick", "name": "Фидо"},
+{"usage": "nick", "name": "Нарик"},
+{"usage": "nick", "name": "Лохотрон"},
+{"usage": "nick", "name": "Финал"},
+{"usage": "nick", "name": "Два пальца"},
+{"usage": "nick", "name": "Пламя"},
+{"usage": "nick", "name": "Головёшка"},
+{"usage": "nick", "name": "Пироманьяк"},
+{"usage": "nick", "name": "Петарда"},
+{"usage": "nick", "name": "Фаервол"},
+{"usage": "nick", "name": "Раз"},
+{"usage": "nick", "name": "Рыбка"},
+{"usage": "nick", "name": "Кулак"},
+{"usage": "nick", "name": "Мордобой"},
+{"usage": "nick", "name": "Дай пять"},
+{"usage": "nick", "name": "Фикс"},
+{"usage": "nick", "name": "Шипучка"},
+{"usage": "nick", "name": "Флак"},
+{"usage": "nick", "name": "Фламинго"},
+{"usage": "nick", "name": "Флэш"},
+{"usage": "nick", "name": "Флатландец"},
+{"usage": "nick", "name": "Не жилец"},
+{"usage": "nick", "name": "Блоха"},
+{"usage": "nick", "name": "Фильмец"},
+{"usage": "nick", "name": "Флиппер"},
+{"usage": "nick", "name": "Потопали"},
+{"usage": "nick", "name": "Флорида"},
+{"usage": "nick", "name": "Запой"},
+{"usage": "nick", "name": "Кидала"},
+{"usage": "nick", "name": "Флейта"},
+{"usage": "nick", "name": "Муха"},
+{"usage": "nick", "name": "Летучка"},
+{"usage": "nick", "name": "Липучка"},
+{"usage": "nick", "name": "Фокус"},
+{"usage": "nick", "name": "Рапира"},
+{"usage": "nick", "name": "Селюк"},
+{"usage": "nick", "name": "Дубина"},
+{"usage": "nick", "name": "Олень"},
+{"usage": "nick", "name": "Свобода"},
+{"usage": "nick", "name": "Удача"},
+{"usage": "nick", "name": "Четвёрка"},
+{"usage": "nick", "name": "Лиса"},
+{"usage": "nick", "name": "Скандал"},
+{"usage": "nick", "name": "Франция"},
+{"usage": "nick", "name": "Фрик"},
+{"usage": "nick", "name": "Стоять-бояться"},
+{"usage": "nick", "name": "По-французски"},
+{"usage": "nick", "name": "Напряг"},
+{"usage": "nick", "name": "Пятница"},
+{"usage": "nick", "name": "Лягушка"},
+{"usage": "nick", "name": "Шило-в-жопе"},
+{"usage": "nick", "name": "Фром"},
+{"usage": "nick", "name": "Фронт"},
+{"usage": "nick", "name": "Фрост"},
+{"usage": "nick", "name": "Фри"},
+{"usage": "nick", "name": "Всё, пиздец"},
+{"usage": "nick", "name": "Ириска"},
+{"usage": "nick", "name": "Огонь"},
+{"usage": "nick", "name": "Фурия"},
+{"usage": "nick", "name": "Будущее"},
+{"usage": "nick", "name": "Пушистик"},
+{"usage": "nick", "name": "Атас"},
+{"usage": "nick", "name": "Галактика"},
+{"usage": "nick", "name": "Игрок"},
+{"usage": "nick", "name": "Гамма"},
+{"usage": "nick", "name": "Гаргулья"},
+{"usage": "nick", "name": "Гранат"},
+{"usage": "nick", "name": "Пустышка"},
+{"usage": "nick", "name": "Сальник"},
+{"usage": "nick", "name": "Гатлинг"},
+{"usage": "nick", "name": "Гэйтор"},
+{"usage": "nick", "name": "Гаучо"},
+{"usage": "nick", "name": "Шестерня"},
+{"usage": "nick", "name": "Шмотки"},
+{"usage": "nick", "name": "Геккон"},
+{"usage": "nick", "name": "Чудак"},
+{"usage": "nick", "name": "Самоцвет"},
+{"usage": "nick", "name": "Близнец"},
+{"usage": "nick", "name": "Аккурат"},
+{"usage": "nick", "name": "Гео"},
+{"usage": "nick", "name": "Джорди"},
+{"usage": "nick", "name": "Бацилла"},
+{"usage": "nick", "name": "Немец"},
+{"usage": "nick", "name": "Германия"},
+{"usage": "nick", "name": "Призрак"},
+{"usage": "nick", "name": "Гига"},
+{"usage": "nick", "name": "Ололо"},
+{"usage": "nick", "name": "Рыжик"},
+{"usage": "nick", "name": "Гизмо"},
+{"usage": "nick", "name": "Гладиус"},
+{"usage": "nick", "name": "Вспышка"},
+{"usage": "nick", "name": "Глюк"},
+{"usage": "nick", "name": "Аж светится"},
+{"usage": "nick", "name": "Обжора"},
+{"usage": "nick", "name": "Выкуси"},
+{"usage": "nick", "name": "Козлина"},
+{"usage": "nick", "name": "Гоблин"},
+{"usage": "nick", "name": "Боженька"},
+{"usage": "nick", "name": "Годзилла"},
+{"usage": "nick", "name": "Золото"},
+{"usage": "nick", "name": "Высший класс"},
+{"usage": "nick", "name": "Голем"},
+{"usage": "nick", "name": "Гольф"},
+{"usage": "nick", "name": "Ей-богу"},
+{"usage": "nick", "name": "Гонг"},
+{"usage": "nick", "name": "Чайник"},
+{"usage": "nick", "name": "В порядке"},
+{"usage": "nick", "name": "Маня"},
+{"usage": "nick", "name": "Двачер"},
+{"usage": "nick", "name": "Гусь"},
+{"usage": "nick", "name": "Мурашки"},
+{"usage": "nick", "name": "Кровь-кишки"},
+{"usage": "nick", "name": "Горгона"},
+{"usage": "nick", "name": "Паутинка"},
+{"usage": "nick", "name": "Авторитет"},
+{"usage": "nick", "name": "Гранде"},
+{"usage": "nick", "name": "Серость"},
+{"usage": "nick", "name": "Грязь"},
+{"usage": "nick", "name": "Фу"},
+{"usage": "nick", "name": "Греция"},
+{"usage": "nick", "name": "Жадина"},
+{"usage": "nick", "name": "Грек"},
+{"usage": "nick", "name": "Зелень"},
+{"usage": "nick", "name": "Салага"},
+{"usage": "nick", "name": "Гремлин"},
+{"usage": "nick", "name": "Тоска"},
+{"usage": "nick", "name": "Уныло"},
+{"usage": "nick", "name": "Лыба"},
+{"usage": "nick", "name": "Ворчун"},
+{"usage": "nick", "name": "Хочу и бухчу"},
+{"usage": "nick", "name": "Грифон"},
+{"usage": "nick", "name": "Гуахиро"},
+{"usage": "nick", "name": "Гуава"},
+{"usage": "nick", "name": "Хитрец"},
+{"usage": "nick", "name": "Леденец"},
+{"usage": "nick", "name": "Выскочка"},
+{"usage": "nick", "name": "Гуру"},
+{"usage": "nick", "name": "Кишка"},
+{"usage": "nick", "name": "Толчок"},
+{"usage": "nick", "name": "Цыган"},
+{"usage": "nick", "name": "Гиро"},
+{"usage": "nick", "name": "Патлы"},
+{"usage": "nick", "name": "Тишь да гладь"},
+{"usage": "nick", "name": "Жиробас"},
+{"usage": "nick", "name": "Молот"},
+{"usage": "nick", "name": "Дам-по-морде"},
+{"usage": "nick", "name": "Ганнибал"},
+{"usage": "nick", "name": "Счастье"},
+{"usage": "nick", "name": "Жжошь"},
+{"usage": "nick", "name": "Каска"},
+{"usage": "nick", "name": "Заяц"},
+{"usage": "nick", "name": "Куриные мозги"},
+{"usage": "nick", "name": "Гарпия"},
+{"usage": "nick", "name": "Тесак"},
+{"usage": "nick", "name": "Гавана"},
+{"usage": "nick", "name": "10 из 10"},
+{"usage": "nick", "name": "Нищенка"},
+{"usage": "nick", "name": "Хаос"},
+{"usage": "nick", "name": "Ястреб"},
+{"usage": "nick", "name": "Зоркий глаз"},
+{"usage": "nick", "name": "Дымок"},
+{"usage": "nick", "name": "Сломя голову"},
+{"usage": "nick", "name": "Бессердечная сука"},
+{"usage": "nick", "name": "Пекло"},
+{"usage": "nick", "name": "Пшёл вон"},
+{"usage": "nick", "name": "Хэви"},
+{"usage": "nick", "name": "Умеет пить"},
+{"usage": "nick", "name": "Наследник"},
+{"usage": "nick", "name": "Чертовски"},
+{"usage": "nick", "name": "Чертовка"},
+{"usage": "nick", "name": "Дьяволёнок"},
+{"usage": "nick", "name": "Из ада"},
+{"usage": "nick", "name": "Болиголов"},
+{"usage": "nick", "name": "Дурной глаз"},
+{"usage": "nick", "name": "В расцвете сил"},
+{"usage": "nick", "name": "Гикори"},
+{"usage": "nick", "name": "Хайд"},
+{"usage": "nick", "name": "Полдень"},
+{"usage": "nick", "name": "Каланча"},
+{"usage": "nick", "name": "Весёлый шутник"},
+{"usage": "nick", "name": "Хамло"},
+{"usage": "nick", "name": "Подскажу"},
+{"usage": "nick", "name": "Ништяк"},
+{"usage": "nick", "name": "Бегемот"},
+{"usage": "nick", "name": "Хипстер"},
+{"usage": "nick", "name": "Хит"},
+{"usage": "nick", "name": "Бутер"},
+{"usage": "nick", "name": "Бомж"},
+{"usage": "nick", "name": "Бардак"},
+{"usage": "nick", "name": "Ты бредишь"},
+{"usage": "nick", "name": "Ересь"},
+{"usage": "nick", "name": "Гол"},
+{"usage": "nick", "name": "Ласточка"},
+{"usage": "nick", "name": "Крюк"},
+{"usage": "nick", "name": "Хулиган"},
+{"usage": "nick", "name": "Верзила"},
+{"usage": "nick", "name": "Остряк"},
+{"usage": "nick", "name": "Посиделки"},
+{"usage": "nick", "name": "Сиська"},
+{"usage": "nick", "name": "Навеселе"},
+{"usage": "nick", "name": "Попрыгун"},
+{"usage": "nick", "name": "Братан"},
+{"usage": "nick", "name": "Все ко мне"},
+{"usage": "nick", "name": "Горячо"},
+{"usage": "nick", "name": "Хот дог"},
+{"usage": "nick", "name": "Горячая штучка"},
+{"usage": "nick", "name": "Отель"},
+{"usage": "nick", "name": "Поджига"},
+{"usage": "nick", "name": "Секси"},
+{"usage": "nick", "name": "Хвастун"},
+{"usage": "nick", "name": "Гуддини"},
+{"usage": "nick", "name": "Гончая"},
+{"usage": "nick", "name": "Я подожду"},
+{"usage": "nick", "name": "Вой"},
+{"usage": "nick", "name": "Высокомерие"},
+{"usage": "nick", "name": "Халк"},
+{"usage": "nick", "name": "Дичь"},
+{"usage": "nick", "name": "Высший сорт"},
+{"usage": "nick", "name": "Сотка"},
+{"usage": "nick", "name": "Голод"},
+{"usage": "nick", "name": "Жрать охота"},
+{"usage": "nick", "name": "Гидра"},
+{"usage": "nick", "name": "Хайп"},
+{"usage": "nick", "name": "Гипер"},
+{"usage": "nick", "name": "Гипердрайв"},
+{"usage": "nick", "name": "Гипно"},
+{"usage": "nick", "name": "Козлёнок"},
+{"usage": "nick", "name": "Лёд"},
+{"usage": "nick", "name": "Ледокол"},
+{"usage": "nick", "name": "Тьфу"},
+{"usage": "nick", "name": "Икона"},
+{"usage": "nick", "name": "Идол"},
+{"usage": "nick", "name": "Берлога"},
+{"usage": "nick", "name": "Зажигание"},
+{"usage": "nick", "name": "Видение"},
+{"usage": "nick", "name": "Бес"},
+{"usage": "nick", "name": "Понаех"},
+{"usage": "nick", "name": "Импульс"},
+{"usage": "nick", "name": "Инкогнито"},
+{"usage": "nick", "name": "Невероятно"},
+{"usage": "nick", "name": "Индия"},
+{"usage": "nick", "name": "Инди"},
+{"usage": "nick", "name": "Индиго"},
+{"usage": "nick", "name": "Индонезия"},
+{"usage": "nick", "name": "Индианаполис"},
+{"usage": "nick", "name": "Инферно"},
+{"usage": "nick", "name": "Татуха"},
+{"usage": "nick", "name": "Инспектор"},
+{"usage": "nick", "name": "Сейчас же"},
+{"usage": "nick", "name": "Интро"},
+{"usage": "nick", "name": "Йота"},
+{"usage": "nick", "name": "Ирландец"},
+{"usage": "nick", "name": "Железо"},
+{"usage": "nick", "name": "Железная воля"},
+{"usage": "nick", "name": "Коляска"},
+{"usage": "nick", "name": "Ирвинг"},
+{"usage": "nick", "name": "Остров"},
+{"usage": "nick", "name": "Итальяшка"},
+{"usage": "nick", "name": "Италия"},
+{"usage": "nick", "name": "Аж зудит"},
+{"usage": "nick", "name": "Блеск"},
+{"usage": "nick", "name": "Мелочь"},
+{"usage": "nick", "name": "Кремень"},
+{"usage": "nick", "name": "Шакал"},
+{"usage": "nick", "name": "Дублин"},
+{"usage": "nick", "name": "Джейд"},
+{"usage": "nick", "name": "Окленд"},
+{"usage": "nick", "name": "Драндулет"},
+{"usage": "nick", "name": "Джем"},
+{"usage": "nick", "name": "Плимут"},
+{"usage": "nick", "name": "Сапог"},
+{"usage": "nick", "name": "Харочо"},
+{"usage": "nick", "name": "Пасть порву"},
+{"usage": "nick", "name": "Челюсти"},
+{"usage": "nick", "name": "Джаз"},
+{"usage": "nick", "name": "Джедай"},
+{"usage": "nick", "name": "Желе"},
+{"usage": "nick", "name": "Тебе печёт"},
+{"usage": "nick", "name": "Шут"},
+{"usage": "nick", "name": "Барахло"},
+{"usage": "nick", "name": "Жемчужина"},
+{"usage": "nick", "name": "Пляска"},
+{"usage": "nick", "name": "Пила"},
+{"usage": "nick", "name": "Борцуха"},
+{"usage": "nick", "name": "Джокер"},
+{"usage": "nick", "name": "Оптимист"},
+{"usage": "nick", "name": "Жердь"},
+{"usage": "nick", "name": "Джорни"},
+{"usage": "nick", "name": "Господь"},
+{"usage": "nick", "name": "Судия"},
+{"usage": "nick", "name": "Джаггернаут"},
+{"usage": "nick", "name": "Моё почтение"},
+{"usage": "nick", "name": "Самый сок"},
+{"usage": "nick", "name": "Оберег"},
+{"usage": "nick", "name": "Джамбо"},
+{"usage": "nick", "name": "Прыг-скок"},
+{"usage": "nick", "name": "Прыгун"},
+{"usage": "nick", "name": "Юпитер"},
+{"usage": "nick", "name": "Правосудие"},
+{"usage": "nick", "name": "Кайзер"},
+{"usage": "nick", "name": "Каппа"},
+{"usage": "nick", "name": "Капут"},
+{"usage": "nick", "name": "Бултых"},
+{"usage": "nick", "name": "Кевлар"},
+{"usage": "nick", "name": "Пивко"},
+{"usage": "nick", "name": "Медным тазом"},
+{"usage": "nick", "name": "Дверь запили"},
+{"usage": "nick", "name": "Ребёнок"},
+{"usage": "nick", "name": "Киллер"},
+{"usage": "nick", "name": "Кайфолом"},
+{"usage": "nick", "name": "Килограмм"},
+{"usage": "nick", "name": "Зимородок"},
+{"usage": "nick", "name": "Вор в законе"},
+{"usage": "nick", "name": "Такие дела"},
+{"usage": "nick", "name": "Чмок-чмок"},
+{"usage": "nick", "name": "Киви"},
+{"usage": "nick", "name": "Рыцарь"},
+{"usage": "nick", "name": "В отрубе"},
+{"usage": "nick", "name": "Денежка"},
+{"usage": "nick", "name": "Костяшки"},
+{"usage": "nick", "name": "Капитан Очевидность"},
+{"usage": "nick", "name": "Кракен"},
+{"usage": "nick", "name": "Фриц"},
+{"usage": "nick", "name": "Камрад"},
+{"usage": "nick", "name": "Дружок"},
+{"usage": "nick", "name": "Лямбда"},
+{"usage": "nick", "name": "Фонарь"},
+{"usage": "nick", "name": "Сухопутная крыса"},
+{"usage": "nick", "name": "Ляпис"},
+{"usage": "nick", "name": "Торопыга"},
+{"usage": "nick", "name": "Лазер"},
+{"usage": "nick", "name": "Лава"},
+{"usage": "nick", "name": "Свинец"},
+{"usage": "nick", "name": "Пиявка"},
+{"usage": "nick", "name": "Левак"},
+{"usage": "nick", "name": "Лимон"},
+{"usage": "nick", "name": "Лео"},
+{"usage": "nick", "name": "Левиафан"},
+{"usage": "nick", "name": "Моё спасение"},
+{"usage": "nick", "name": "Свет"},
+{"usage": "nick", "name": "Молния"},
+{"usage": "nick", "name": "Мне хватит"},
+{"usage": "nick", "name": "Лайтер"},
+{"usage": "nick", "name": "Лима"},
+{"usage": "nick", "name": "Лайм"},
+{"usage": "nick", "name": "Морячок"},
+{"usage": "nick", "name": "Слабак"},
+{"usage": "nick", "name": "Акцент"},
+{"usage": "nick", "name": "Линк"},
+{"usage": "nick", "name": "Подшофе"},
+{"usage": "nick", "name": "Ящер"},
+{"usage": "nick", "name": "Закрыто"},
+{"usage": "nick", "name": "Хикки"},
+{"usage": "nick", "name": "Столбняк"},
+{"usage": "nick", "name": "Локо"},
+{"usage": "nick", "name": "Лойнер"},
+{"usage": "nick", "name": "Одиночка"},
+{"usage": "nick", "name": "Мочалка"},
+{"usage": "nick", "name": "Лазейка"},
+{"usage": "nick", "name": "Лузер"},
+{"usage": "nick", "name": "Любовник"},
+{"usage": "nick", "name": "Счастливчик"},
+{"usage": "nick", "name": "Шишка"},
+{"usage": "nick", "name": "Соблазн"},
+{"usage": "nick", "name": "Пьяница"},
+{"usage": "nick", "name": "Похоть"},
+{"usage": "nick", "name": "Семиструнка"},
+{"usage": "nick", "name": "Люкс"},
+{"usage": "nick", "name": "Киса"},
+{"usage": "nick", "name": "Лирика"},
+{"usage": "nick", "name": "Мак"},
+{"usage": "nick", "name": "Машина"},
+{"usage": "nick", "name": "Эй, красотка"},
+{"usage": "nick", "name": "Макем"},
+{"usage": "nick", "name": "Бешеный пёс"},
+{"usage": "nick", "name": "Сорванец"},
+{"usage": "nick", "name": "Мадраси"},
+{"usage": "nick", "name": "Водоворот"},
+{"usage": "nick", "name": "Маджента"},
+{"usage": "nick", "name": "Слизняк"},
+{"usage": "nick", "name": "Магия"},
+{"usage": "nick", "name": "Магнум"},
+{"usage": "nick", "name": "Дай сигу"},
+{"usage": "nick", "name": "Дева"},
+{"usage": "nick", "name": "Материк"},
+{"usage": "nick", "name": "Мажор"},
+{"usage": "nick", "name": "Пургу несёшь"},
+{"usage": "nick", "name": "Малибу"},
+{"usage": "nick", "name": "Великан"},
+{"usage": "nick", "name": "Маньяк"},
+{"usage": "nick", "name": "Шары"},
+{"usage": "nick", "name": "Марс"},
+{"usage": "nick", "name": "Маска"},
+{"usage": "nick", "name": "Вожу-как-мудак"},
+{"usage": "nick", "name": "Мастер"},
+{"usage": "nick", "name": "Майя"},
+{"usage": "nick", "name": "Помогите"},
+{"usage": "nick", "name": "Беспредел"},
+{"usage": "nick", "name": "Медовуха"},
+{"usage": "nick", "name": "Медаль"},
+{"usage": "nick", "name": "Медичи"},
+{"usage": "nick", "name": "Мега"},
+{"usage": "nick", "name": "Расслабон"},
+{"usage": "nick", "name": "С катушек"},
+{"usage": "nick", "name": "Битард"},
+{"usage": "nick", "name": "Мяу"},
+{"usage": "nick", "name": "Наёмник"},
+{"usage": "nick", "name": "Барыга"},
+{"usage": "nick", "name": "Меркурий"},
+{"usage": "nick", "name": "Мерлин"},
+{"usage": "nick", "name": "Мета"},
+{"usage": "nick", "name": "Металл"},
+{"usage": "nick", "name": "Мичиган"},
+{"usage": "nick", "name": "Микро"},
+{"usage": "nick", "name": "Мидас"},
+{"usage": "nick", "name": "Карлан"},
+{"usage": "nick", "name": "Милка"},
+{"usage": "nick", "name": "Так-же-как-все"},
+{"usage": "nick", "name": "Миллион"},
+{"usage": "nick", "name": "Нюня"},
+{"usage": "nick", "name": "Вне правил"},
+{"usage": "nick", "name": "Мини"},
+{"usage": "nick", "name": "Миньон"},
+{"usage": "nick", "name": "Минор"},
+{"usage": "nick", "name": "Мята"},
+{"usage": "nick", "name": "Мираж"},
+{"usage": "nick", "name": "Микс"},
+{"usage": "nick", "name": "Мнемоник"},
+{"usage": "nick", "name": "Пухлик"},
+{"usage": "nick", "name": "Моджо"},
+{"usage": "nick", "name": "Момо"},
+{"usage": "nick", "name": "Монарх"},
+{"usage": "nick", "name": "Понедельник"},
+{"usage": "nick", "name": "Без меры"},
+{"usage": "nick", "name": "Деньги"},
+{"usage": "nick", "name": "Австрияк"},
+{"usage": "nick", "name": "Погоняло"},
+{"usage": "nick", "name": "Монах"},
+{"usage": "nick", "name": "Макака"},
+{"usage": "nick", "name": "Чудище"},
+{"usage": "nick", "name": "Му"},
+{"usage": "nick", "name": "Нахаляву"},
+{"usage": "nick", "name": "Луна"},
+{"usage": "nick", "name": "Мунрейкер"},
+{"usage": "nick", "name": "Лунатик"},
+{"usage": "nick", "name": "Лось"},
+{"usage": "nick", "name": "Морфей"},
+{"usage": "nick", "name": "Мотор"},
+{"usage": "nick", "name": "Язык-без-костей"},
+{"usage": "nick", "name": "Мышка"},
+{"usage": "nick", "name": "Мю"},
+{"usage": "nick", "name": "Грязнуля"},
+{"usage": "nick", "name": "Мне хреново"},
+{"usage": "nick", "name": "Кексик"},
+{"usage": "nick", "name": "Вторая попытка"},
+{"usage": "nick", "name": "Маппет"},
+{"usage": "nick", "name": "Шорох"},
+{"usage": "nick", "name": "Мусаси"},
+{"usage": "nick", "name": "Музло"},
+{"usage": "nick", "name": "Хлам"},
+{"usage": "nick", "name": "Метис"},
+{"usage": "nick", "name": "Тайна"},
+{"usage": "nick", "name": "Миф"},
+{"usage": "nick", "name": "Голышом"},
+{"usage": "nick", "name": "Угар"},
+{"usage": "nick", "name": "Нара"},
+{"usage": "nick", "name": "Нарко"},
+{"usage": "nick", "name": "Какая гадость"},
+{"usage": "nick", "name": "Навигатор"},
+{"usage": "nick", "name": "Флот"},
+{"usage": "nick", "name": "Не-а"},
+{"usage": "nick", "name": "Небула"},
+{"usage": "nick", "name": "Некро"},
+{"usage": "nick", "name": "Иголка"},
+{"usage": "nick", "name": "Немезида"},
+{"usage": "nick", "name": "Нео"},
+{"usage": "nick", "name": "Нептун"},
+{"usage": "nick", "name": "Нерон"},
+{"usage": "nick", "name": "Новичок"},
+{"usage": "nick", "name": "Ньюфи"},
+{"usage": "nick", "name": "Ньют"},
+{"usage": "nick", "name": "Это тупо"},
+{"usage": "nick", "name": "Пятак"},
+{"usage": "nick", "name": "Ночь"},
+{"usage": "nick", "name": "Сова"},
+{"usage": "nick", "name": "Ничего"},
+{"usage": "nick", "name": "Ноль"},
+{"usage": "nick", "name": "Девятка"},
+{"usage": "nick", "name": "Чмошник"},
+{"usage": "nick", "name": "Ниндзя"},
+{"usage": "nick", "name": "Нитро"},
+{"usage": "nick", "name": "Нуар"},
+{"usage": "nick", "name": "Кочевник"},
+{"usage": "nick", "name": "Северянин"},
+{"usage": "nick", "name": "Север"},
+{"usage": "nick", "name": "Норд-вест"},
+{"usage": "nick", "name": "Нова"},
+{"usage": "nick", "name": "Ноябрь"},
+{"usage": "nick", "name": "Нокс"},
+{"usage": "nick", "name": "Ню"},
+{"usage": "nick", "name": "Нуво"},
+{"usage": "nick", "name": "Бомба"},
+{"usage": "nick", "name": "Пустота"},
+{"usage": "nick", "name": "Онемение"},
+{"usage": "nick", "name": "Число"},
+{"usage": "nick", "name": "Болван"},
+{"usage": "nick", "name": "Слоупок"},
+{"usage": "nick", "name": "Псих"},
+{"usage": "nick", "name": "Оазис"},
+{"usage": "nick", "name": "Гобой"},
+{"usage": "nick", "name": "Океан"},
+{"usage": "nick", "name": "Оччо"},
+{"usage": "nick", "name": "Октан"},
+{"usage": "nick", "name": "Шанс"},
+{"usage": "nick", "name": "Огр"},
+{"usage": "nick", "name": "Океюшки"},
+{"usage": "nick", "name": "Омега"},
+{"usage": "nick", "name": "Знамение"},
+{"usage": "nick", "name": "Омикрон"},
+{"usage": "nick", "name": "Омни"},
+{"usage": "nick", "name": "Один"},
+{"usage": "nick", "name": "Оникс"},
+{"usage": "nick", "name": "У-упс"},
+{"usage": "nick", "name": "Забей"},
+{"usage": "nick", "name": "Опал"},
+{"usage": "nick", "name": "Чпок"},
+{"usage": "nick", "name": "Опус"},
+{"usage": "nick", "name": "Оракул"},
+{"usage": "nick", "name": "Апельсин"},
+{"usage": "nick", "name": "Осси"},
+{"usage": "nick", "name": "Уиджа"},
+{"usage": "nick", "name": "Бандит"},
+{"usage": "nick", "name": "Мне пора"},
+{"usage": "nick", "name": "Хорош уже"},
+{"usage": "nick", "name": "Переклинило"},
+{"usage": "nick", "name": "Отмена"},
+{"usage": "nick", "name": "Заточка"},
+{"usage": "nick", "name": "Оксфорд"},
+{"usage": "nick", "name": "Боль"},
+{"usage": "nick", "name": "Няшка"},
+{"usage": "nick", "name": "Старина"},
+{"usage": "nick", "name": "Паладин"},
+{"usage": "nick", "name": "Палео"},
+{"usage": "nick", "name": "Панацея"},
+{"usage": "nick", "name": "Стиляга"},
+{"usage": "nick", "name": "Панчо"},
+{"usage": "nick", "name": "Паника"},
+{"usage": "nick", "name": "Панцер"},
+{"usage": "nick", "name": "Совершенство"},
+{"usage": "nick", "name": "Между строк"},
+{"usage": "nick", "name": "Сушняк"},
+{"usage": "nick", "name": "Париж"},
+{"usage": "nick", "name": "Прилипала"},
+{"usage": "nick", "name": "Попугай"},
+{"usage": "nick", "name": "Макаронник"},
+{"usage": "nick", "name": "Пафос"},
+{"usage": "nick", "name": "Патриот"},
+{"usage": "nick", "name": "Пешка"},
+{"usage": "nick", "name": "Мир"},
+{"usage": "nick", "name": "Покой"},
+{"usage": "nick", "name": "Персик"},
+{"usage": "nick", "name": "Павлин"},
+{"usage": "nick", "name": "Тихоня"},
+{"usage": "nick", "name": "Братва"},
+{"usage": "nick", "name": "Коротышка"},
+{"usage": "nick", "name": "Пеликан"},
+{"usage": "nick", "name": "Пенни"},
+{"usage": "nick", "name": "Перфекционист"},
+{"usage": "nick", "name": "Хризолит"},
+{"usage": "nick", "name": "Громила"},
+{"usage": "nick", "name": "Петрикор"},
+{"usage": "nick", "name": "Фараон"},
+{"usage": "nick", "name": "Просто улёт"},
+{"usage": "nick", "name": "Фи"},
+{"usage": "nick", "name": "Ссыкло"},
+{"usage": "nick", "name": "Пи"},
+{"usage": "nick", "name": "Огурцом"},
+{"usage": "nick", "name": "Пиклз"},
+{"usage": "nick", "name": "Пико"},
+{"usage": "nick", "name": "Бродяга"},
+{"usage": "nick", "name": "Пайни"},
+{"usage": "nick", "name": "Пинки"},
+{"usage": "nick", "name": "Филиппины"},
+{"usage": "nick", "name": "Пинап"},
+{"usage": "nick", "name": "Пиранья"},
+{"usage": "nick", "name": "Пистолет"},
+{"usage": "nick", "name": "Пикс"},
+{"usage": "nick", "name": "Пицца"},
+{"usage": "nick", "name": "Шикос"},
+{"usage": "nick", "name": "Чума"},
+{"usage": "nick", "name": "Лампово"},
+{"usage": "nick", "name": "Платина"},
+{"usage": "nick", "name": "Ня"},
+{"usage": "nick", "name": "Плутон"},
+{"usage": "nick", "name": "По"},
+{"usage": "nick", "name": "Поэт"},
+{"usage": "nick", "name": "Пого"},
+{"usage": "nick", "name": "Ботан"},
+{"usage": "nick", "name": "Яд"},
+{"usage": "nick", "name": "Поленто"},
+{"usage": "nick", "name": "Пом"},
+{"usage": "nick", "name": "Пони"},
+{"usage": "nick", "name": "Стесняша"},
+{"usage": "nick", "name": "Пупсик"},
+{"usage": "nick", "name": "Поп"},
+{"usage": "nick", "name": "Дедуля"},
+{"usage": "nick", "name": "Недотёпа"},
+{"usage": "nick", "name": "Покайтеся"},
+{"usage": "nick", "name": "Позер"},
+{"usage": "nick", "name": "Угощайся"},
+{"usage": "nick", "name": "Пыщ-пыщ"},
+{"usage": "nick", "name": "Бледная немощь"},
+{"usage": "nick", "name": "Мощь"},
+{"usage": "nick", "name": "Моя прелесть"},
+{"usage": "nick", "name": "Престо"},
+{"usage": "nick", "name": "Крендель"},
+{"usage": "nick", "name": "Начальник"},
+{"usage": "nick", "name": "Колючка"},
+{"usage": "nick", "name": "Гордость"},
+{"usage": "nick", "name": "Примо"},
+{"usage": "nick", "name": "Принт"},
+{"usage": "nick", "name": "Призма"},
+{"usage": "nick", "name": "Приз"},
+{"usage": "nick", "name": "Профи"},
+{"usage": "nick", "name": "Вот свезло"},
+{"usage": "nick", "name": "Пророк"},
+{"usage": "nick", "name": "Респект"},
+{"usage": "nick", "name": "Прото"},
+{"usage": "nick", "name": "Пси"},
+{"usage": "nick", "name": "То есть"},
+{"usage": "nick", "name": "Психопат"},
+{"usage": "nick", "name": "Пирожок"},
+{"usage": "nick", "name": "Выдыхай"},
+{"usage": "nick", "name": "Пума"},
+{"usage": "nick", "name": "Пробойник"},
+{"usage": "nick", "name": "Сирень"},
+{"usage": "nick", "name": "Мур-мур"},
+{"usage": "nick", "name": "Есть чо"},
+{"usage": "nick", "name": "Кошечка"},
+{"usage": "nick", "name": "Питон"},
+{"usage": "nick", "name": "Знахарь"},
+{"usage": "nick", "name": "Квад"},
+{"usage": "nick", "name": "Недотрога"},
+{"usage": "nick", "name": "Встряска"},
+{"usage": "nick", "name": "Зашибись"},
+{"usage": "nick", "name": "Четвертак"},
+{"usage": "nick", "name": "Квазар"},
+{"usage": "nick", "name": "Квебек"},
+{"usage": "nick", "name": "Ртуть"},
+{"usage": "nick", "name": "Полтос"},
+{"usage": "nick", "name": "Тихо"},
+{"usage": "nick", "name": "Куинт"},
+{"usage": "nick", "name": "С прибабахом"},
+{"usage": "nick", "name": "Задачка"},
+{"usage": "nick", "name": "Кво"},
+{"usage": "nick", "name": "Цитатник"},
+{"usage": "nick", "name": "В кавычках"},
+{"usage": "nick", "name": "Отвал башки"},
+{"usage": "nick", "name": "Радар"},
+{"usage": "nick", "name": "Ярость"},
+{"usage": "nick", "name": "Регги"},
+{"usage": "nick", "name": "Всего понемногу"},
+{"usage": "nick", "name": "Трудоголик"},
+{"usage": "nick", "name": "Рэмбо"},
+{"usage": "nick", "name": "Развалина"},
+{"usage": "nick", "name": "Рейнджер"},
+{"usage": "nick", "name": "Второе пришествие"},
+{"usage": "nick", "name": "Шпана"},
+{"usage": "nick", "name": "Крыса"},
+{"usage": "nick", "name": "Трещотка"},
+{"usage": "nick", "name": "Рейв"},
+{"usage": "nick", "name": "Ворон"},
+{"usage": "nick", "name": "Выпилю"},
+{"usage": "nick", "name": "Бритва"},
+{"usage": "nick", "name": "Потрошитель"},
+{"usage": "nick", "name": "Бунтарь"},
+{"usage": "nick", "name": "Рэд"},
+{"usage": "nick", "name": "Деревенщина"},
+{"usage": "nick", "name": "По-новой"},
+{"usage": "nick", "name": "Вонючка"},
+{"usage": "nick", "name": "Хрен докажешь"},
+{"usage": "nick", "name": "Горец"},
+{"usage": "nick", "name": "Ремикс"},
+{"usage": "nick", "name": "Ретро"},
+{"usage": "nick", "name": "Преподобие"},
+{"usage": "nick", "name": "Откровение"},
+{"usage": "nick", "name": "Рекс"},
+{"usage": "nick", "name": "Рез"},
+{"usage": "nick", "name": "Носорог"},
+{"usage": "nick", "name": "Ро"},
+{"usage": "nick", "name": "Роди"},
+{"usage": "nick", "name": "Рикошет"},
+{"usage": "nick", "name": "Загадка"},
+{"usage": "nick", "name": "Наездник"},
+{"usage": "nick", "name": "Костыль"},
+{"usage": "nick", "name": "Риггер"},
+{"usage": "nick", "name": "Сматываемся"},
+{"usage": "nick", "name": "Риц"},
+{"usage": "nick", "name": "Бычок"},
+{"usage": "nick", "name": "Ты не пройдешь"},
+{"usage": "nick", "name": "Отвёртка"},
+{"usage": "nick", "name": "Сбитый лось"},
+{"usage": "nick", "name": "Скиталец"},
+{"usage": "nick", "name": "Робин"},
+{"usage": "nick", "name": "Робо"},
+{"usage": "nick", "name": "Скала"},
+{"usage": "nick", "name": "Ракета"},
+{"usage": "nick", "name": "Рокки"},
+{"usage": "nick", "name": "Ясно-понятно"},
+{"usage": "nick", "name": "Плут"},
+{"usage": "nick", "name": "Перепих"},
+{"usage": "nick", "name": "Ронин"},
+{"usage": "nick", "name": "Разводила"},
+{"usage": "nick", "name": "Рози"},
+{"usage": "nick", "name": "Румянец"},
+{"usage": "nick", "name": "Странник"},
+{"usage": "nick", "name": "Зевака"},
+{"usage": "nick", "name": "Рубин"},
+{"usage": "nick", "name": "Сопляк"},
+{"usage": "nick", "name": "Русский"},
+{"usage": "nick", "name": "Не заржавеет"},
+{"usage": "nick", "name": "Тебе бомбит"},
+{"usage": "nick", "name": "Расти"},
+{"usage": "nick", "name": "Клинок"},
+{"usage": "nick", "name": "Шпага"},
+{"usage": "nick", "name": "Мудрец"},
+{"usage": "nick", "name": "Святоша"},
+{"usage": "nick", "name": "Саламандра"},
+{"usage": "nick", "name": "Солт"},
+{"usage": "nick", "name": "Самурай"},
+{"usage": "nick", "name": "Санчез"},
+{"usage": "nick", "name": "Песок"},
+{"usage": "nick", "name": "Каро"},
+{"usage": "nick", "name": "Сэндвич"},
+{"usage": "nick", "name": "Врёт как дышит"},
+{"usage": "nick", "name": "Сапфир"},
+{"usage": "nick", "name": "Снежный человек"},
+{"usage": "nick", "name": "Суббота"},
+{"usage": "nick", "name": "Сатурн"},
+{"usage": "nick", "name": "Дикарь"},
+{"usage": "nick", "name": "Савант"},
+{"usage": "nick", "name": "Саксофон"},
+{"usage": "nick", "name": "Негодяй"},
+{"usage": "nick", "name": "Шрам"},
+{"usage": "nick", "name": "Разиня"},
+{"usage": "nick", "name": "Щепотка"},
+{"usage": "nick", "name": "Потомок"},
+{"usage": "nick", "name": "Припекло"},
+{"usage": "nick", "name": "Скорпион"},
+{"usage": "nick", "name": "Скаузер"},
+{"usage": "nick", "name": "Скаут"},
+{"usage": "nick", "name": "Не вовремя"},
+{"usage": "nick", "name": "Это царапина"},
+{"usage": "nick", "name": "На мели"},
+{"usage": "nick", "name": "Визгун"},
+{"usage": "nick", "name": "Сплетня"},
+{"usage": "nick", "name": "Коса"},
+{"usage": "nick", "name": "Секундочку"},
+{"usage": "nick", "name": "Два"},
+{"usage": "nick", "name": "Сепия"},
+{"usage": "nick", "name": "Механик"},
+{"usage": "nick", "name": "Семёрка"},
+{"usage": "nick", "name": "Три семёрки"},
+{"usage": "nick", "name": "Мрак"},
+{"usage": "nick", "name": "Тень"},
+{"usage": "nick", "name": "Причешись"},
+{"usage": "nick", "name": "Озноб"},
+{"usage": "nick", "name": "Трясучка"},
+{"usage": "nick", "name": "Акула"},
+{"usage": "nick", "name": "То, что надо"},
+{"usage": "nick", "name": "Расклад"},
+{"usage": "nick", "name": "Шейх"},
+{"usage": "nick", "name": "Розыгрыщ"},
+{"usage": "nick", "name": "Шериф"},
+{"usage": "nick", "name": "Шерлок"},
+{"usage": "nick", "name": "Туда-сюда"},
+{"usage": "nick", "name": "Нигга"},
+{"usage": "nick", "name": "Кайф"},
+{"usage": "nick", "name": "Перо"},
+{"usage": "nick", "name": "Дрожь"},
+{"usage": "nick", "name": "Шок"},
+{"usage": "nick", "name": "Кыш"},
+{"usage": "nick", "name": "Недомерок"},
+{"usage": "nick", "name": "Шоумэн"},
+{"usage": "nick", "name": "Ща будет"},
+{"usage": "nick", "name": "В клочки"},
+{"usage": "nick", "name": "Козявка"},
+{"usage": "nick", "name": "Мозгоправ"},
+{"usage": "nick", "name": "Уловка"},
+{"usage": "nick", "name": "Сицилиец"},
+{"usage": "nick", "name": "Сицилия"},
+{"usage": "nick", "name": "Тошнота"},
+{"usage": "nick", "name": "Шизик"},
+{"usage": "nick", "name": "Подстава"},
+{"usage": "nick", "name": "Сьерра"},
+{"usage": "nick", "name": "Сиеста"},
+{"usage": "nick", "name": "Сигма"},
+{"usage": "nick", "name": "Шёлк"},
+{"usage": "nick", "name": "Конь"},
+{"usage": "nick", "name": "Серебро"},
+{"usage": "nick", "name": "Холостяк"},
+{"usage": "nick", "name": "Бубнёж"},
+{"usage": "nick", "name": "Сирена"},
+{"usage": "nick", "name": "Шестёрка"},
+{"usage": "nick", "name": "Шесть банок"},
+{"usage": "nick", "name": "Похер"},
+{"usage": "nick", "name": "Шестнадцать"},
+{"usage": "nick", "name": "Быстра"},
+{"usage": "nick", "name": "Скелли"},
+{"usage": "nick", "name": "Скетч"},
+{"usage": "nick", "name": "Самокрутка"},
+{"usage": "nick", "name": "Скип"},
+{"usage": "nick", "name": "Шкипер"},
+{"usage": "nick", "name": "Небо"},
+{"usage": "nick", "name": "Кое-как"},
+{"usage": "nick", "name": "Фарс"},
+{"usage": "nick", "name": "Слэш"},
+{"usage": "nick", "name": "Палач"},
+{"usage": "nick", "name": "Грубиян"},
+{"usage": "nick", "name": "Сон"},
+{"usage": "nick", "name": "Соня"},
+{"usage": "nick", "name": "Манёвр"},
+{"usage": "nick", "name": "В форме"},
+{"usage": "nick", "name": "Скользкий тип"},
+{"usage": "nick", "name": "Осколок"},
+{"usage": "nick", "name": "Лень"},
+{"usage": "nick", "name": "Тормоз"},
+{"usage": "nick", "name": "Умница"},
+{"usage": "nick", "name": "С головой"},
+{"usage": "nick", "name": "Смэш"},
+{"usage": "nick", "name": "Смогги"},
+{"usage": "nick", "name": "Дым"},
+{"usage": "nick", "name": "Куряга"},
+{"usage": "nick", "name": "Без проблем"},
+{"usage": "nick", "name": "Клякса"},
+{"usage": "nick", "name": "Проёб"},
+{"usage": "nick", "name": "Змея"},
+{"usage": "nick", "name": "Пирсинг"},
+{"usage": "nick", "name": "Надо же"},
+{"usage": "nick", "name": "Тайком"},
+{"usage": "nick", "name": "Чихоня"},
+{"usage": "nick", "name": "Гламур"},
+{"usage": "nick", "name": "Сволочь"},
+{"usage": "nick", "name": "Снежок"},
+{"usage": "nick", "name": "Снеговик"},
+{"usage": "nick", "name": "Обнимашки"},
+{"usage": "nick", "name": "Стакан"},
+{"usage": "nick", "name": "Добрая душа"},
+{"usage": "nick", "name": "Сол"},
+{"usage": "nick", "name": "На все сто"},
+{"usage": "nick", "name": "Соло"},
+{"usage": "nick", "name": "Соник"},
+{"usage": "nick", "name": "Шнырь"},
+{"usage": "nick", "name": "Лажа"},
+{"usage": "nick", "name": "Душа"},
+{"usage": "nick", "name": "Юг"},
+{"usage": "nick", "name": "Космос"},
+{"usage": "nick", "name": "Ушлёпок"},
+{"usage": "nick", "name": "Искра"},
+{"usage": "nick", "name": "Живчик"},
+{"usage": "nick", "name": "Воробей"},
+{"usage": "nick", "name": "Отродье"},
+{"usage": "nick", "name": "Дурик"},
+{"usage": "nick", "name": "Фантом"},
+{"usage": "nick", "name": "Гонщик"},
+{"usage": "nick", "name": "Острослов"},
+{"usage": "nick", "name": "Сфинкс"},
+{"usage": "nick", "name": "Спайс"},
+{"usage": "nick", "name": "Остренько"},
+{"usage": "nick", "name": "Паук"},
+{"usage": "nick", "name": "Щёголь"},
+{"usage": "nick", "name": "Наряд"},
+{"usage": "nick", "name": "Дух"},
+{"usage": "nick", "name": "Заноза"},
+{"usage": "nick", "name": "Два ножа"},
+{"usage": "nick", "name": "Спок"},
+{"usage": "nick", "name": "Жмот"},
+{"usage": "nick", "name": "Спорт"},
+{"usage": "nick", "name": "Должок"},
+{"usage": "nick", "name": "Дятел"},
+{"usage": "nick", "name": "Картофан"},
+{"usage": "nick", "name": "По щщам"},
+{"usage": "nick", "name": "Туса"},
+{"usage": "nick", "name": "Амиго"},
+{"usage": "nick", "name": "Хрустик"},
+{"usage": "nick", "name": "Закорючка"},
+{"usage": "nick", "name": "Сквирт"},
+{"usage": "nick", "name": "Стаккато"},
+{"usage": "nick", "name": "Меня шатает"},
+{"usage": "nick", "name": "Сталкер"},
+{"usage": "nick", "name": "Светило"},
+{"usage": "nick", "name": "Зыркало"},
+{"usage": "nick", "name": "Срочно"},
+{"usage": "nick", "name": "Счёт"},
+{"usage": "nick", "name": "Из стали"},
+{"usage": "nick", "name": "Жало"},
+{"usage": "nick", "name": "Отстой"},
+{"usage": "nick", "name": "Чухан"},
+{"usage": "nick", "name": "Шов"},
+{"usage": "nick", "name": "Стопудово"},
+{"usage": "nick", "name": "Шторм"},
+{"usage": "nick", "name": "История"},
+{"usage": "nick", "name": "Отшельник"},
+{"usage": "nick", "name": "Два метра"},
+{"usage": "nick", "name": "Ударник"},
+{"usage": "nick", "name": "Лентяй"},
+{"usage": "nick", "name": "Влом"},
+{"usage": "nick", "name": "Везунчик"},
+{"usage": "nick", "name": "Топ"},
+{"usage": "nick", "name": "Дайте две"},
+{"usage": "nick", "name": "Фасолька"},
+{"usage": "nick", "name": "Орешек"},
+{"usage": "nick", "name": "Конфетка"},
+{"usage": "nick", "name": "Султан"},
+{"usage": "nick", "name": "Воскресенье"},
+{"usage": "nick", "name": "Позитив"},
+{"usage": "nick", "name": "Супер"},
+{"usage": "nick", "name": "Суперзвезда"},
+{"usage": "nick", "name": "Отвечаю"},
+{"usage": "nick", "name": "Волна"},
+{"usage": "nick", "name": "Кукловод"},
+{"usage": "nick", "name": "Главарь"},
+{"usage": "nick", "name": "Подлива"},
+{"usage": "nick", "name": "Сигай вниз"},
+{"usage": "nick", "name": "Лебединая песня"},
+{"usage": "nick", "name": "Збс"},
+{"usage": "nick", "name": "Суонси"},
+{"usage": "nick", "name": "Кавай"},
+{"usage": "nick", "name": "Сладкоежка"},
+{"usage": "nick", "name": "Сгинь"},
+{"usage": "nick", "name": "Ходок"},
+{"usage": "nick", "name": "Сало"},
+{"usage": "nick", "name": "Ключ"},
+{"usage": "nick", "name": "Вжух"},
+{"usage": "nick", "name": "Отключка"},
+{"usage": "nick", "name": "Синхрон"},
+{"usage": "nick", "name": "Синдром"},
+{"usage": "nick", "name": "Табу"},
+{"usage": "nick", "name": "Тянучка"},
+{"usage": "nick", "name": "Загар"},
+{"usage": "nick", "name": "Танго"},
+{"usage": "nick", "name": "Танк"},
+{"usage": "nick", "name": "Тапатио"},
+{"usage": "nick", "name": "Пенёк"},
+{"usage": "nick", "name": "Тасмания"},
+{"usage": "nick", "name": "Дурнина"},
+{"usage": "nick", "name": "Наколка"},
+{"usage": "nick", "name": "Тау"},
+{"usage": "nick", "name": "Технарь"},
+{"usage": "nick", "name": "Мишка"},
+{"usage": "nick", "name": "Ябеда"},
+{"usage": "nick", "name": "Зомбоящик"},
+{"usage": "nick", "name": "С характером"},
+{"usage": "nick", "name": "Десятка"},
+{"usage": "nick", "name": "Косарь"},
+{"usage": "nick", "name": "Терроне"},
+{"usage": "nick", "name": "Шотландец"},
+{"usage": "nick", "name": "Техас"},
+{"usage": "nick", "name": "Тире"},
+{"usage": "nick", "name": "Тета"},
+{"usage": "nick", "name": "Три"},
+{"usage": "nick", "name": "Жажда"},
+{"usage": "nick", "name": "Трубы горят"},
+{"usage": "nick", "name": "Тринадцать"},
+{"usage": "nick", "name": "Шип"},
+{"usage": "nick", "name": "Трэш"},
+{"usage": "nick", "name": "Тройка"},
+{"usage": "nick", "name": "Гром"},
+{"usage": "nick", "name": "В шоке"},
+{"usage": "nick", "name": "Четверг"},
+{"usage": "nick", "name": "Тик-так"},
+{"usage": "nick", "name": "Тико"},
+{"usage": "nick", "name": "Чуть-чуть"},
+{"usage": "nick", "name": "Раскраска"},
+{"usage": "nick", "name": "Тигр"},
+{"usage": "nick", "name": "Полено"},
+{"usage": "nick", "name": "Малёк"},
+{"usage": "nick", "name": "Титан"},
+{"usage": "nick", "name": "Жаба"},
+{"usage": "nick", "name": "Поганка"},
+{"usage": "nick", "name": "Льстец"},
+{"usage": "nick", "name": "Жги их"},
+{"usage": "nick", "name": "Помидорка"},
+{"usage": "nick", "name": "Всё завтра"},
+{"usage": "nick", "name": "Молоток"},
+{"usage": "nick", "name": "Кадр"},
+{"usage": "nick", "name": "Топаз"},
+{"usage": "nick", "name": "Вверх ногами"},
+{"usage": "nick", "name": "Факел"},
+{"usage": "nick", "name": "Торпедо"},
+{"usage": "nick", "name": "Тото"},
+{"usage": "nick", "name": "Вышка"},
+{"usage": "nick", "name": "Трагедия"},
+{"usage": "nick", "name": "Паровоз"},
+{"usage": "nick", "name": "Транс"},
+{"usage": "nick", "name": "Сокровище"},
+{"usage": "nick", "name": "Всё"},
+{"usage": "nick", "name": "Прикол"},
+{"usage": "nick", "name": "Профит"},
+{"usage": "nick", "name": "Нюанс"},
+{"usage": "nick", "name": "Тринити"},
+{"usage": "nick", "name": "Рибейро"},
+{"usage": "nick", "name": "За троих"},
+{"usage": "nick", "name": "Трикс"},
+{"usage": "nick", "name": "Тролль"},
+{"usage": "nick", "name": "Йоба"},
+{"usage": "nick", "name": "Истина"},
+{"usage": "nick", "name": "Тэкахо"},
+{"usage": "nick", "name": "Вторник"},
+{"usage": "nick", "name": "Мелодия"},
+{"usage": "nick", "name": "Турбо"},
+{"usage": "nick", "name": "Индюшка"},
+{"usage": "nick", "name": "Черепаха"},
+{"usage": "nick", "name": "Бивень"},
+{"usage": "nick", "name": "Туту"},
+{"usage": "nick", "name": "Хам"},
+{"usage": "nick", "name": "Прутик"},
+{"usage": "nick", "name": "Худышка"},
+{"usage": "nick", "name": "Вдвое"},
+{"usage": "nick", "name": "Тик"},
+{"usage": "nick", "name": "Двойка"},
+{"usage": "nick", "name": "Тайк"},
+{"usage": "nick", "name": "Тайфун"},
+{"usage": "nick", "name": "Тиран"},
+{"usage": "nick", "name": "Убер"},
+{"usage": "nick", "name": "Убик"},
+{"usage": "nick", "name": "Ой-ой"},
+{"usage": "nick", "name": "Раб"},
+{"usage": "nick", "name": "Ультима"},
+{"usage": "nick", "name": "Ультра"},
+{"usage": "nick", "name": "Амбер"},
+{"usage": "nick", "name": "Умбра"},
+{"usage": "nick", "name": "В оба"},
+{"usage": "nick", "name": "Дохрена"},
+{"usage": "nick", "name": "Тряпка"},
+{"usage": "nick", "name": "Вне закона"},
+{"usage": "nick", "name": "Не надо"},
+{"usage": "nick", "name": "Нет прощения"},
+{"usage": "nick", "name": "Униформа"},
+{"usage": "nick", "name": "Юнит"},
+{"usage": "nick", "name": "Уно"},
+{"usage": "nick", "name": "Без преград"},
+{"usage": "nick", "name": "Ипсилон"},
+{"usage": "nick", "name": "Разочарование"},
+{"usage": "nick", "name": "Уран"},
+{"usage": "nick", "name": "Надо"},
+{"usage": "nick", "name": "Юта"},
+{"usage": "nick", "name": "Валентин"},
+{"usage": "nick", "name": "Исчезни"},
+{"usage": "nick", "name": "Вампир"},
+{"usage": "nick", "name": "Пар"},
+{"usage": "nick", "name": "Вектор"},
+{"usage": "nick", "name": "Веган"},
+{"usage": "nick", "name": "Вегас"},
+{"usage": "nick", "name": "Месть"},
+{"usage": "nick", "name": "Венеция"},
+{"usage": "nick", "name": "Отрава"},
+{"usage": "nick", "name": "Двадцатка"},
+{"usage": "nick", "name": "Венера"},
+{"usage": "nick", "name": "Вертиго"},
+{"usage": "nick", "name": "Либидо"},
+{"usage": "nick", "name": "Вето"},
+{"usage": "nick", "name": "Векс"},
+{"usage": "nick", "name": "Победа"},
+{"usage": "nick", "name": "Объектив"},
+{"usage": "nick", "name": "Викинг"},
+{"usage": "nick", "name": "Уксус"},
+{"usage": "nick", "name": "ВИП"},
+{"usage": "nick", "name": "Гадюка"},
+{"usage": "nick", "name": "Вольт"},
+{"usage": "nick", "name": "Волонтёр"},
+{"usage": "nick", "name": "Вуду"},
+{"usage": "nick", "name": "Голос"},
+{"usage": "nick", "name": "Стервятник"},
+{"usage": "nick", "name": "Не айс"},
+{"usage": "nick", "name": "Вафля"},
+{"usage": "nick", "name": "Подъём"},
+{"usage": "nick", "name": "Уокер"},
+{"usage": "nick", "name": "Ветошь"},
+{"usage": "nick", "name": "Малолетка"},
+{"usage": "nick", "name": "Разврат"},
+{"usage": "nick", "name": "Война"},
+{"usage": "nick", "name": "Смотритель"},
+{"usage": "nick", "name": "Командир"},
+{"usage": "nick", "name": "Штык"},
+{"usage": "nick", "name": "Свинья"},
+{"usage": "nick", "name": "Суслик"},
+{"usage": "nick", "name": "Большой куш"},
+{"usage": "nick", "name": "Среда"},
+{"usage": "nick", "name": "Чудила"},
+{"usage": "nick", "name": "Уэсси"},
+{"usage": "nick", "name": "Запад"},
+{"usage": "nick", "name": "Уэсти"},
+{"usage": "nick", "name": "Трущоба"},
+{"usage": "nick", "name": "Хрипун"},
+{"usage": "nick", "name": "Фантазия"},
+{"usage": "nick", "name": "Вихрь"},
+{"usage": "nick", "name": "Вискарь"},
+{"usage": "nick", "name": "Шёпот"},
+{"usage": "nick", "name": "Уайт"},
+{"usage": "nick", "name": "Гений"},
+{"usage": "nick", "name": "Свистун"},
+{"usage": "nick", "name": "Ого-го"},
+{"usage": "nick", "name": "Ну почему"},
+{"usage": "nick", "name": "Хрень"},
+{"usage": "nick", "name": "Фон"},
+{"usage": "nick", "name": "Безумие"},
+{"usage": "nick", "name": "Манул"},
+{"usage": "nick", "name": "Плакса"},
+{"usage": "nick", "name": "Пустозвон"},
+{"usage": "nick", "name": "Авось"},
+{"usage": "nick", "name": "Перчик"},
+{"usage": "nick", "name": "Разгром"},
+{"usage": "nick", "name": "Жучок"},
+{"usage": "nick", "name": "Провод"},
+{"usage": "nick", "name": "Хитрая жопа"},
+{"usage": "nick", "name": "Волшебник"},
+{"usage": "nick", "name": "Волк"},
+{"usage": "nick", "name": "Росомаха"},
+{"usage": "nick", "name": "Чудо"},
+{"usage": "nick", "name": "Задрот"},
+{"usage": "nick", "name": "Уонка"},
+{"usage": "nick", "name": "Оно само"},
+{"usage": "nick", "name": "Гав-гав"},
+{"usage": "nick", "name": "Уоллибэк"},
+{"usage": "nick", "name": "Гангста"},
+{"usage": "nick", "name": "Честно"},
+{"usage": "nick", "name": "Червяк"},
+{"usage": "nick", "name": "Вау"},
+{"usage": "nick", "name": "Привидение"},
+{"usage": "nick", "name": "Гнев"},
+{"usage": "nick", "name": "Кара"},
+{"usage": "nick", "name": "Авария"},
+{"usage": "nick", "name": "Мародёр"},
+{"usage": "nick", "name": "Гнида"},
+{"usage": "nick", "name": "Ксено"},
+{"usage": "nick", "name": "Кси"},
+{"usage": "nick", "name": "Рентген"},
+{"usage": "nick", "name": "Бла-бла-бла"},
+{"usage": "nick", "name": "Ура"},
+{"usage": "nick", "name": "Туз"},
+{"usage": "nick", "name": "Янк"},
+{"usage": "nick", "name": "Янки"},
+{"usage": "nick", "name": "Ярди"},
+{"usage": "nick", "name": "Ят"},
+{"usage": "nick", "name": "Йеллоу"},
+{"usage": "nick", "name": "Трус"},
+{"usage": "nick", "name": "Уилмингтон"},
+{"usage": "nick", "name": "Йети"},
+{"usage": "nick", "name": "Пенсильвания"},
+{"usage": "nick", "name": "Бревно"},
+{"usage": "nick", "name": "Юпер"},
+{"usage": "nick", "name": "Молодь"},
+{"usage": "nick", "name": "Йо-йо"},
+{"usage": "nick", "name": "Буэ-э"},
+{"usage": "nick", "name": "Ням-ням"},
+{"usage": "nick", "name": "Разряд"},
+{"usage": "nick", "name": "Зебра"},
+{"usage": "nick", "name": "Зед"},
+{"usage": "nick", "name": "Дух времени"},
+{"usage": "nick", "name": "Дзен"},
+{"usage": "nick", "name": "Зенит"},
+{"usage": "nick", "name": "Зеро"},
+{"usage": "nick", "name": "Дзета"},
+{"usage": "nick", "name": "Шевелись"},
+{"usage": "nick", "name": "Зигги"},
+{"usage": "nick", "name": "Зигзаг"},
+{"usage": "nick", "name": "Пшик"},
+{"usage": "nick", "name": "Клочок"},
+{"usage": "nick", "name": "Зиппи"},
+{"usage": "nick", "name": "Зодиак"},
+{"usage": "nick", "name": "Зона"},
+{"usage": "nick", "name": "Панама"},
+{"usage": "nick", "name": "Зоуни"},
+{"usage": "nick", "name": "Бух"},
+{"usage": "nick", "name": "Зум"},
{"usage": "backer", "gender": "male", "name": "Аджай Чандра"},
{"usage": "backer", "gender": "male", "name": "Александр Викс"},
{"usage": "backer", "gender": "male", "name": "Александр Дмитриев"},
diff --git a/data/raw/keybindings.json b/data/raw/keybindings.json
index 0451f1a6671e7..f474b148ee985 100644
--- a/data/raw/keybindings.json
+++ b/data/raw/keybindings.json
@@ -1842,6 +1842,12 @@
"category": "DEFAULTMODE",
"id": "debug_scent"
},
+ {
+ "type": "keybinding",
+ "name": "View Temperature Map",
+ "category": "DEFAULTMODE",
+ "id": "debug_temp"
+ },
{
"type": "keybinding",
"name": "Switch Sidebar Style",
@@ -2054,6 +2060,12 @@
"category": "DEFAULTMODE",
"id": "open_movement"
},
+ {
+ "type": "keybinding",
+ "id": "cast_spell",
+ "name": "Spellcasting",
+ "category": "DEFAULTMODE"
+ },
{
"type": "keybinding",
"id": "COMPARE",
diff --git a/doc/BASECAMP.md b/doc/BASECAMP.md
new file mode 100644
index 0000000000000..a22834779a5f8
--- /dev/null
+++ b/doc/BASECAMP.md
@@ -0,0 +1,123 @@
+# Adding alternate basecamp upgrade paths
+
+This doesn't work yet.
+
+A basecamp upgrade path is a series of basecamp upgrade missions that upgrade the camp. Upgrade missions are generally performed sequentially, but there is an option to have them branch. Branched missions optionally can have further missions that require missions from other branches.
+
+Bascamp upgrade paths are defined by several related files:
+* The recipe JSONs that define what the material, tool, and skill requirements to perform an upgrade mission and the blueprint mapgen, blueprint requirements, blueprint provides, and blueprint resources associated with each upgrade mission.
+* The mapgen_update JSONs that define how the map will change when the upgrade mission is complete. These may include shared instances of nested mapgen, such a standard room or tent.
+* The recipe_group JSONs that define what recipes can be crafted after completing the upgrade mission.
+
+## recipe JSONs
+The recipe JSONs are standard recipe JSONs, with the addition of a few fields.
+
+New field | Description
+-- | --
+`"construction_blueprint"` | string, the `"update_mapgen_id"` of the mapgen_update JSON that will be peformed when the upgrade mission is complete.
+`"construction_name"` | string, a short description/name of the upgrade mission that is displayed in the base camp mission selector. The recipe's `"description"` field has the extended description that explains why a player might want to have an NPC perform this upgrade mission.
+`"blueprint_provides"` | array of objects, with each object having an `"id"` string and an optional `"amount"` integer. These are the camp features that are available when the upgrade mission is complete. Every upgrade mission provides its recipe `"result"` with an amount of 1 automatically and that string does not need to be listed in `"blueprint_provides"`.
+`"blueprint_requires"` | array of objects, with each object having an `"id"` string and an optional `"amount"` integer. These are the camp features that are required before the upgrade mission can be attempted.
+`"blueprint_resources"` | array of `"itype_id"`s. Items with those ids will be added to the camp inventory after the upgrade mission is completed and can be used for crafting or additional upgrade missions.
+
+### blueprint requires and provides
+blueprint requires and blueprint provides are abstract concepts or flags that an upgrade mission requires to start, or that are provided by a previous upgrade mission to satisfy the blueprint requirements of a current upgrade mission. Each one has an `"id"` and an `"amount"`. Multiple requires or provides with the same `"id"` sum their `"amount"` if they're on the same basecamp expansion.
+
+These are arbitrary strings and can be used to control the branching of the upgrade paths. However, some strings have meaning within the basecamp code:
+
+provides `"id"` | meaning
+-- | --
+`"bed"` | every 2 `"amount"`' of `"bed"` allows another expansion in the camp, to a maximum of 8, not include the camp center.
+`"gathering"` | after this upgrade mission is complete, the Gather Materials, Distribute Food, and Reset Sort Points basecamp missions will be available.
+`"firewood"` | after this upgrade mission is complete, the Gather Firewood basecamp mission will be available.
+`"sorting"` | after this upgrade mission is complete, the Menial Labor basecamp mission will be available.
+`"logging"` | after this upgrade mission is complete, the Cut Logs and Clear a Forest basecamp missions will be available.
+`"relaying"` | after this upgrade mission is complete, the Setup Hide Site and Relay Hide Site basecamp missions will be available.
+`"foraging"` | after this upgrade mission is complete, the Forage for Plants basecamp mission will be available.
+`"trapping"` | after this upgrade mission is complete, the Trap Small Game basecamp mission will be available.
+`"hunting"` | after this upgrade mission is complete, the Hunt Large Animals basecamp mission will be available.
+`"walls"` | after this upgrade mission is complete, the Construct Map Fortifications basecamp mission will be available.
+`"recruiting"` | after this upgrade mission is complete, the Recruit Companions basecamp mission will be available.
+`"scouting"` | after this upgrade mission is complete, the Scout Mission basecamp mission will be available.
+`"patrolling"` | after this upgrade mission is complete, the Combat Patrol basecamp mission will be available.
+`"dismantling"` | after this upgrade mission is complete, the Chop Shop basecamp mission will be available.
+`"farming"` | after this upgrade mission is complete, the Plow Fields, Plant Fields, Fertilize Fields, and Harvest Fields basecamp missions will be available.
+
+### Sample recipe JSON
+```JSON
+ {
+ "type": "recipe",
+ "result": "faction_base_camp_8",
+ "description": "We need to expand our base to include basic dining facilities.",
+ "category": "CC_BUILDING",
+ "subcategory": "CSC_BUILDING_BASES",
+ "skill_used": "fabrication",
+ "difficulty": 5,
+ "autolearn": false,
+ "never_learn": true,
+ "comment": "2hrs*4wall + .5 hr*2tables + .5hr*4benches+ 1hrs pits = 12 hrs (12hrs on/off) 1 days total",
+ "time": "1440 m",
+ "construction_blueprint": "faction_base_field_camp_8",
+ "blueprint_name": "basic central kitchen",
+ "blueprint_resources": [ "fake_stove" ],
+ "blueprint_provides": [ { "id": "trapping", "amount": 1 }, { "id": "hunting", "amount": 1 }, { "id": "walls", "amount": 1 }, { "id": "recruiting", "amount": 1 }
+ ],
+ "blueprint_requires": [ { "id": "faction_base_camp_6", "amount": 1 } ],
+ "qualities": [ [ { "id": "DIG", "level": 1 } ], [ { "id": "SAW_M", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ],
+ "components": [ [ [ "2x4", 28 ] ], [ [ "log", 16 ] ], [ [ "nail", 56 ] ], [ [ "stick", 24 ] ], [ [ "metal_tank", 1 ] ], [ [ "pipe", 1 ] ]
+ ]
+ },
+```
+
+The `"faction_base_camp_8"` upgrade mission can be performed after `"faction_base_camp_6"` and enables the trapping, hunting, fortification, and recruiting basecamp missions. It adds a camp stove to the camp's inventory to represent the iron stove.
+
+## mapgen_update JSON
+
+These are standard mapgen_update JSON; see doc/MAPGEN.md for more details. Each one should change a localized portion of the camp map and should, as much as possible, be independent of any other pieces of mapgen_update for the basecamp upgrade path. Obviously, some bits are going to expand other bits, in which case their `"blueprint_requires"` should include the `"blueprint_provides"` of the previous upgrade missions.
+
+### Sample mapgen_update JSON
+
+```json
+ {
+ "type": "mapgen",
+ "update_mapgen_id": "faction_base_field_camp_7",
+ "method": "json",
+ "object": { "place_nested": [ { "chunks": [ "basecamp_large_tent_east" ], "x": 2, "y": 10 } ] }
+ },
+ {
+ "type": "mapgen",
+ "method": "json",
+ "nested_mapgen_id": "basecamp_large_tent_east",
+ "object": {
+ "mapgensize": [ 5, 5 ],
+ "rows": [
+ "WWWWW",
+ "Wbb$W",
+ "Wr;;D",
+ "Wbb$W",
+ "WWWWW"
+ ],
+ "palettes": [ "acidia_camp_palette" ]
+ }
+ },
+```
+
+This mapgen_update places a large tent in the west central portion of the camp. The `"place_nested"` references a standard map used in the primitive field camp.
+
+## Sample basecamp upgrade path
+
+The primitive field camp has the following upgrade path:
+1. `"faction_base_camp_0"` - the initial camp survey and the bulletin board.
+2. `"faction_base_camp_1"` - setting up the northeast tent
+3. `"faction_base_camp_2"` - digging the fire pit and constructing a bed
+4. `"faction_base_camp_3"` - adding the bookshelves to store stuff
+5. `"faction_base_camp_4"` - adding the second bed to the tent
+6. any of:
+`"faction_base_camp_5"`, `"faction_base_camp_7"`, `"faction_base_camp_9"`, `"faction_base_camp_15"`, `"faction_base_camp_18"` - add additional tents with beds in any order.
+or `"faction_base_camp_6"` - build the central kitchen. `"faction_base_camp_8"`, `"faction_base_camp_10"`, `"faction_base_camp_11"`, `"faction_base_camp_16"` must be built in that sequence afterwards, though interleaved with the other optional upgrade missions after `"faction_base_camp_4"`.
+or `"faction_base_camp_12"` - the central camp well.
+or `"faction_base_camp_13"` - building the camp's outer wall, which can be followed by `"faction_base_camp_14"` to complete the wall.
+or `"faction_base_camp_19"` - building the camp's radio tower, which can be followed by `"faction_base_camp_20"` to build the radio tower console and make it operational.
+7. `"faction_base_camp_17"` - adding better doors to camp wall and the central building must be built after `"faction_base_camp_14"` and `"faction_base_camp_16"`.
+
+After setting up the first tent, the player has a lot of options: they can build additional tents to enable expansions, they can build the well for water, they can build as much or as little of the central kitchen as they desire, or add the wall to give the camp defenses, or the radio tower to improve the range of their two-way radios.
diff --git a/doc/GAME_BALANCE.md b/doc/GAME_BALANCE.md
index 811b3e536dd34..0ad35ba6d37af 100644
--- a/doc/GAME_BALANCE.md
+++ b/doc/GAME_BALANCE.md
@@ -234,6 +234,7 @@ Ammo ID | Description | Energy, J | Dmg | Base Brl |
.30-06 Springfield | 165gr soft point bullet | 3894 | 62 | 24in | damage increased by 4 |
.30-06 M2 | 165.7gr AP bullet | 3676 | 60 | 24in | damage reduced by 10 |
.30-06 M14A1 | Incendiary ammunition | 3894 | 62 | 24in | damage reduced by 10 |
+.45-70 Govt. | 300gr soft point bullet | 3867 | 66 | 24in | damage increased by 4 |
.300 Winchester Magnum | 220gr JHP bullet | 5299 | 73 | 24in | damage increased by 5 |
.700 NX | 1000gr JSP bullet | 12100 | 110 | 28in | |
.50 BMG Ball | 750gr FMJ-BT bullet | 17083 | 131 | 45in | |
diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md
index e0fd35fffc81d..a55b0947e592c 100644
--- a/doc/JSON_FLAGS.md
+++ b/doc/JSON_FLAGS.md
@@ -247,7 +247,11 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite
- ```RAD_PROOF``` This piece of clothing completely protects you from radiation.
- ```RAD_RESIST``` This piece of clothing partially protects you from radiation.
- ```RAINPROOF``` Prevents the covered body-part(s) from getting wet in the rain.
+- ```REQUIRES_BALANCE``` Gear that requires a certain balance to be steady with. If the player is hit while wearing, they have a chance to be downed.
- ```RESTRICT_HANDS``` Prevents the player from wielding a weapon two-handed, forcing one-handed use if the weapon permits it.
+- ```ROLLER_ONE``` A less stable and slower version of ROLLER_QUAD, still allows the player to move faster than walking speed.
+- ```ROLLER_QUAD```The medium choice between ROLLER_INLINE and ROLLER_ONE, while it is more stable, and moves faster, it also has a harsher non-flat terrain penalty then ROLLER_ONE.
+- ```ROLLER_INLINE``` Faster, but less stable overall, the penalty for non-flat terrain is even harsher.
- ```SKINTIGHT``` Undergarment layer.
- ```SLOWS_MOVEMENT``` This piece of clothing multiplies move cost by 1.1.
- ```SLOWS_THIRST``` This piece of clothing multiplies the rate at which the player grows thirsty by 0.70.
@@ -273,6 +277,7 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite
- ```BIONIC_SLEEP_FRIENDLY``` This bionic won't prompt the user to turn it off if they try to sleep while it's active.
- ```BIONIC_TOGGLED``` This bionic only has a function when activated, else it causes it's effect every turn.
- ```BIONIC_WEAPON``` This bionic is a weapon bionic and activating it will create (or destroy) bionic's fake_item in user's hands. Prevents all other activation effects.
+- ```BIONIC_SHOCKPROOF``` This bionic can't be incapacitated by electrical attacks.
## Books
@@ -446,6 +451,7 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite
- ```INEDIBLE``` Inedible by default, enabled to eat when in conjunction with (mutation threshold) flags: BIRD, CATTLE.
- ```FERTILIZER``` Works as fertilizer for farming, of if this consumed with the PLANTBLECH function penalties will be reversed for plants.
- ```FREEZERBURN``` First thaw is MUSHY, second is rotten
+- ```FUNGAL_VECTOR``` Will give a fungal infection when consumed.
- ```HIDDEN_HALLU``` ... Food causes hallucinations, visible only with a certain survival skill level.
- ```HIDDEN_POISON``` ... Food is poisonous, visible only with a certain survival skill level.
- ```MELTS``` Provides half fun unless frozen. Edible when frozen.
@@ -463,7 +469,6 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite
- ```USE_ON_NPC``` Can be used on NPCs (not necessarily by them).
- ```ZOOM``` Zoom items can increase your overmap sight range.
-
## Furniture and Terrain
List of known flags, used in both `terrain.json` and `furniture.json`.
@@ -511,6 +516,8 @@ List of known flags, used in both `terrain.json` and `furniture.json`.
- ```FLAMMABLE``` Can be lit on fire.
- ```FLAT_SURF``` Furniture or terrain with a flat hard surface (e.g. table, but not chair; tree stump, etc.).
- ```FLAT``` Player can build and move furniture on.
+- ```FORAGE_HALLU``` This item can be found with the `HIDDEN_HALLU` flag when found through foraging.
+- ```FORAGE_POISION``` This item can be found with the `HIDDEN_POISON` flag when found through foraging.
- ```GOES_DOWN``` Can use > to go down a level.
- ```GOES_UP``` Can use < to go up a level.
- ```GROWTH_SEED``` This plant is in its seed stage of growth.
@@ -633,8 +640,10 @@ List of known flags, used in both `terrain.json` and `furniture.json`.
- ```RAIN_PROTECT``` ... Protects from sunlight and from rain, when wielded.
- ```REDUCED_BASHING``` ... Gunmod flag; reduces the item's bashing damage by 50%.
- ```REDUCED_WEIGHT``` ... Gunmod flag; reduces the item's base weight by 25%.
+- ```REQUIRES_TINDER``` ... Requires tinder to be present on the tile this item tries to start a fire on.
- ```SLEEP_AID``` ... This item helps in sleeping.
- ```SLOW_WIELD``` ... Has an additional time penalty upon wielding. For melee weapons and guns this is offset by the relevant skill. Stacks with "NEEDS_UNFOLD".
+- ```TINDER``` ... This item can be used as tinder for lighting a fire with a REQUIRES_TINDER flagged firestarter.
- ```TRADER_AVOID``` ... NPCs will not start with this item. Use this for active items (e.g. flashlight (on)), dangerous items (e.g. active bomb), fake item or unusual items (e.g. unique quest item).
- ```UNBREAKABLE_MELEE``` ... Does never get damaged when used as melee weapon.
- ```UNRECOVERABLE``` Cannot be recovered from a disassembly.
@@ -686,11 +695,16 @@ List of known flags, used in both `terrain.json` and `furniture.json`.
## MAP SPECIALS
- ```mx_anomaly``` ... Natural anomaly (crater + artifact).
+- ```mx_bandits_block``` ... Road block made by bandits from tree logs.
+- ```mx_burned_ground``` ... Fire has ravaged this place.
+- ```mx_point_burned_ground``` ... Fire has ravaged this place. (partial application)
- ```mx_clay_deposit``` ... A small surface clay deposit.
- ```mx_clearcut``` ... All trees become stumps.
- ```mx_collegekids``` ... Corpses and items.
- ```mx_crater``` ... Crater with rubble (and radioactivity).
- ```mx_drugdeal``` ... Corpses and some drugs.
+- ```mx_dead_vegetation``` ... Kills all plants. (aftermath of acid rain etc.)
+- ```mx_point_dead_vegetation``` ... Kills all plants. (aftermath of acid rain etc.) (partial application)
- ```mx_fumarole``` ... A lava rift.
- ```mx_grove``` ... All trees and shrubs become a single species of tree.
- ```mx_helicopter``` ... Metal wreckage and some items.
@@ -702,6 +716,7 @@ List of known flags, used in both `terrain.json` and `furniture.json`.
- ```mx_portal_in``` ... Another portal to neither space.
- ```mx_portal``` ... Portal to neither space.
- ```mx_roadblock``` ... Roadblock furniture with turrets and some cars.
+- ```mx_roadworks``` ... Partialy closed damaged road with chance of work equipment and utility vehicles.
- ```mx_science``` ... Corpses and some scientist items.
- ```mx_shia``` ... A *chance* of Shia, if Crazy Catalcysm is enabled.
- ```mx_shrubbery``` ... All trees and shrubs become a single species of shrub.
@@ -887,6 +902,7 @@ Multiple death functions can be used. Not all combinations make sense.
- ```POISON``` Poisonous to eat.
- ```PUSH_MON``` Can push creatures out of its way.
- ```QUEEN``` When it dies, local populations start to die off too.
+- ```REGENERATES_1``` Monster regenerates slowly over time.
- ```REGENERATES_10``` Monster regenerates quickly over time.
- ```REGENERATES_50``` Monster regenerates very quickly over time.
- ```REGENERATES_IN_DARK``` Monster regenerates very quickly in poorly lit tiles.
@@ -1038,8 +1054,6 @@ These branches are also the valid entries for the categories of `dreams` in `dre
### Overmap connections
-#### Flags
-
- ```ORTHOGONAL``` The connection generally prefers straight lines, avoids turning wherever possible.
### Overmap specials
diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md
index 4f9b0f6497032..f644824f4fcdb 100644
--- a/doc/JSON_INFO.md
+++ b/doc/JSON_INFO.md
@@ -543,7 +543,8 @@ Mods can modify this via `add:traits` and `remove:traits`.
[ "textbook_gaswarfare", 8, "" ] // If the name is empty, the recipe is hidden, it will not be shown in the description of the book.
],
"difficulty": 3, // Difficulty of success check
-"time": 5000, // Time to perform recipe (where 1000 ~= 10 turns ~= 1 minute game time)
+"time": "5 m", // Preferred time to perform recipe, can specify in minutes, hours etc.
+"time": 5000, // Legacy time to perform recipe (where 1000 ~= 10 turns ~= 1 minute game time).
"reversible": false, // Can be disassembled.
"autolearn": true, // Automatically learned upon gaining required skills
"autolearn" : [ // Automatically learned upon gaining listed skills
@@ -587,6 +588,17 @@ Mods can modify this via `add:traits` and `remove:traits`.
]
```
+### Constructions
+```C++
+"description": "Spike Pit", // Description string displayed in the construction menu
+"category": "DIG", // Construction category
+"required_skills": [ [ "survival", 1 ] ], // Skill levels required to undertake construction
+"time": "30 m", // Time required to complete construction. Integers will be read as minutes or a time string can be used.
+"components": [ [ [ "spear_wood", 4 ], [ "pointy_stick", 4 ] ] ], // Items used in construction
+"pre_terrain": "t_pit", // Required terrain to build on
+"post_terrain": "t_pit_spiked" // Terrain type after construction is complete
+```
+
## Skills
```C++
@@ -803,6 +815,7 @@ See also VEHICLE_JSON.md
"weight" : 350, // Weight of the item in grams. For stackable items (ammo, comestibles) this is the weight per charge.
"volume" : 1, // Volume, measured in 1/4 liters. For stackable items (ammo, comestibles) this is the volume of stack_size charges. Volume in ml and L can be used - "50ml" or "2L"
"integral_volume" : 0, // Volume added to base item when item is integrated into another (eg. a gunmod integrated to a gun)
+"integral_weight" : 0, // Weight added to base item when item is integrated into another (eg. a gunmod integrated to a gun)
"rigid": false, // For non-rigid items volume (and for worn items encumbrance) increases proportional to contents
"insulation": 1, // (Optional, default = 1) If container or vehicle part, how much insulation should it provide to the contents
"price" : 100, // Used when bartering with NPCs. For stackable items (ammo, comestibles) this is the price for stack_size charges.
@@ -938,7 +951,7 @@ Books can be defined like this:
// additional some book specific entries:
"max_level" : 5, // Maximum skill level this book will train to
"intelligence" : 11, // Intelligence required to read this book without penalty
-"time" : 35, // Time (in minutes) a single read session takes
+"time" : "35 m", // Time a single read session takes. An integer will be read in minutes or a time string can be used.
"fun" : -2, // Morale bonus/penalty for reading
"skill" : "computer", // Skill raised
"chapters" : 4, // Number of chapters (for fun only books), each reading "consumes" a chapter. Books with no chapters left are less fun (because the content is already known to the character).
@@ -1101,7 +1114,7 @@ Gun mods can be defined like this:
"location": "stock", // Mandatory. Where is this gunmod is installed?
"mod_targets": [ "crossbow" ], // Mandatory. What kind of weapons can this gunmod be used with?
"acceptable_ammo": [ "9mm" ], // Optional filter restricting mod to guns with those base (before modifiers) ammo types
-"install_time": 100, // Optional number of moves installation takes. Installation is instantaneous if unspecified
+"install_time": "30 s", // Optional time installation takes. Installation is instantaneous if unspecified. An integer will be read as moves or a time string can be used.
"ammo_modifier": "57", // Optional field which if specified modifies parent gun to use this ammo type
"burst_modifier": 3, // Optional field increasing or decreasing base gun burst size
"damage_modifier": -1, // Optional field increasing or decreasing base gun damage
@@ -1716,13 +1729,9 @@ Strength required to move the furniture around. Negative values indicate an unmo
(Optional) Can craft here. Must specify a speed multiplier, allowed mass, and allowed volume. Mass/volume over these limits incur a speed penalty. Must be paired with a `"workbench"` `examine_action` to function.
-#### `plant_transform`
-
-(Optional) What the furniture turns into when it is planted on or grows.
-
-#### `plant_base``
+#### `plant_data`
-(Optional) What the plant furniture turns into when it is eaten by something that eats crops - this should be what it is planted in. Requires `PLANT` flag to function.
+(Optional) This is a plant. Must specify a plant transform, and a base depending on context. You can also add a harvest or growth multiplier if it has the `GROWTH_HARVEST` flag.
### Terrain
@@ -1930,6 +1939,33 @@ The terrain / furniture that will be set after the original has been deconstruct
(Optional) An item group (inline) or an id of an item group, see doc/ITEM_SPAWN.md. The default subtype is "collection". Upon deconstruction the object, items from that group will be spawned.
+### `plant_data`
+
+```JSON
+{
+ "transform": "f_planter_harvest",
+ "base": "f_planter",
+ "growth_multiplier": 1.2,
+ "harvest_multiplier": 0.8
+}
+```
+
+#### `transform`
+
+What the `PLANT` furniture turn into when it grows a stage, or what a `PLANTABLE` furniture turns into when it is planted on.
+
+#### `base`
+
+What the 'base' furniture of the `PLANT` furniture is - what it would be if there was not a plant growing there. Used when monsters 'eat' the plant to preserve what furniture it is.
+
+#### `growth_multiplier`
+
+A flat multiplier on the growth speed on the plant. For numbers greater than one, it will take longer to grow, and for numbers less than one it will take less time to grow.
+
+#### `harvest_multiplier`
+
+A flat multiplier on the harvest count of the plant. For numbers greater than one, the plant will give more produce from harvest, for numbers less than one it will give less produce from harvest.
+
# Scenarios
Scenarios are specified as JSON object with `type` member set to `scenario`.
diff --git a/doc/MAGIC.md b/doc/MAGIC.md
new file mode 100644
index 0000000000000..f69e005550afe
--- /dev/null
+++ b/doc/MAGIC.md
@@ -0,0 +1,107 @@
+# How to add magic to a mod
+
+### Spells
+
+In `data/mods/Magiclysm` there is a template spell, copied here for your perusal:
+
+```C++
+{
+ // This spell exists in json as a template for contributors to see the possible values of the spell
+ "id": "example_template", // id of the spell, used internally. not translated
+ "type": "SPELL",
+ "name": "Template Spell", // name of the spell that shows in game
+ "description": "This is a template to show off all the available values",
+ "valid_targets": [ "hostile", "ground", "self", "ally" ], // if a valid target is not included, you cannot cast the spell on that target.
+ "effect": "shallow_pit", // effects are coded in C++. A list will be provided below of possible effects that have been coded.
+ "effect_str": "template" // special. see below
+ "effected_body_parts": [ "HEAD", "TORSO", "MOUTH", "EYES", "ARM_L", "ARM_R", "HAND_R", "HAND_L", "LEG_L", "FOOT_L", "FOOT_R" ], // body parts affected by effects
+ "spell_class": "NONE" //
+ "base_casting_time": 100, // this is the casting time (in moves)
+ "base_energy_cost": 10, // the amount of energy (of the requisite type) to cast the spell
+ "energy_source": "MANA", // the type of energy used to cast the spell. types are: MANA, BIONIC, HP, STAMINA, NONE (none will not use mana)
+ "difficulty": 12, // the difficulty to learn/cast the spell
+ "max_level": 10, // maximum level you can achieve in the spell
+ "min_damage": 0, // minimum damage (or "starting" damage)
+ "max_damage": 100, // maximum damage the spell can achieve
+ "damage_increment": 2.5, // to get damage (and any of the other below stats) multiply this by spell's level and add to minimum damage
+ "min_aoe": 0, // area of effect (currently not implemented)
+ "max_aoe": 5,
+ "aoe_increment": 0.1,
+ "min_range": 1, // range of the spell
+ "max_range": 10,
+ "range_increment": 2,
+ "min_dot": 0, // damage over time (currently not implemented)
+ "max_dot": 2,
+ "dot_increment": 0.1,
+ "min_duration": 0, // duration of spell effect (if the spell has a special effect)
+ "max_duration": 1000,
+ "duration_increment": 4,
+ "min_pierce": 0, // how much of the spell pierces armor (currently not implemented)
+ "max_pierce": 1,
+ "pierce_increment": 0.1
+ }
+```
+Most of the default values for the above are either 0 or "NONE", so you may leave out most of the values if they do not pertain to your spell.
+
+When deciding values for some of these, it is important to note that some of the formulae are not linear.
+For example, this is the formula for spell failure chance:
+
+```( ( ( ( spell_level - spell_difficulty ) * 2 + intelligence + spellcraft_skill ) - 30 ) / 30 ) ^ 2```
+
+Meaning a spell with difficulty 0 cast by a player with 8 intelligence, 0 spellcraft, and level 0 in the spell will have a 53% spell failure chance.
+On the other hand, a player with 12 intelligence, 6 spellcraft, and level 6 in the same spell will have a 0% spell failure chance.
+
+However, experience gain is a little more complicated to calculate. The formula for how much experience you need to get to a level is below:
+
+```e ^ ( ( level + 62.5 ) * 0.146661 ) ) - 6200```
+
+#### Currently Implemented Effects and special rules
+
+* "pain_split" - makes all of your limbs' damage even out.
+
+* "move_earth" - "digs" at the target location. some terrain is not diggable this way.
+
+* "target_attack" - deals damage to a target (ignores walls). If "effect_str" is included, it will add that effect (defined elsewhere in json) to the targets if able, to the body parts defined in effected_body_parts.
+Any aoe will manifest as a circular area centered on the target, and will only deal damage to valid_targets. (aoe does not ignore walls)
+
+* "projectile_attack" - similar to target_attack, except the projectile you shoot will stop short at impassable terrain. If "effect_str" is included, it will add that effect (defined elsewhere in json) to the targets if able, to the body parts defined in effected_body_parts.
+
+* "cone_attack" - fires a cone toward the target up to your range. The arc of the cone in degrees is aoe. Stops at walls. If "effect_str" is included, it will add that effect (defined elsewhere in json) to the targets if able, to the body parts defined in effected_body_parts.
+
+* "line_attack" - fires a line with width aoe toward the target, being blocked by walls on the way. If "effect_str" is included, it will add that effect (defined elsewhere in json) to the targets if able, to the body parts defined in effected_body_parts.
+
+* "spawn_item" - spawns an item that will disappear at the end of its duration. Default duration is 0.
+
+* "teleport_random" - teleports the player randomly range spaces with aoe variation
+
+##### For Spells that have an attack type, these are the available damage types:
+* "fire"
+* "acid"
+* "bash"
+* "bio" - internal damage such as poison
+* "cold"
+* "cut"
+* "electric"
+* "stab"
+* "none" - this damage type goes through armor altogether. it is the default.
+
+#### Learning Spells
+
+Currently there is only one way of learning spells that is implemented: learning a spell from an item, through a use_action. An example is shown below:
+```C++
+{
+"id": "DEBUG_spellbook",
+"type": "GENERIC",
+"name": "A Technomancer's Guide to Debugging C:DDA",
+"description": "static std::string description( spell sp ) const;",
+"weight": 1,
+"volume": "1 ml",
+"symbol": "?",
+"color": "magenta",
+"use_action": {
+ "type": "learn_spell",
+ "spells": [ "debug_hp", "debug_stamina", "example_template", "debug_bionic", "pain_split", "fireball" ] // this is a list of spells you can learn from the item
+}
+},
+```
+You can study this spellbook for a rate of ~1 experience per turn depending on intelligence, spellcraft, and focus.
diff --git a/doc/MARTIALART_JSON.md b/doc/MARTIALART_JSON.md
index e4ea108287f45..69397b53d3600 100644
--- a/doc/MARTIALART_JSON.md
+++ b/doc/MARTIALART_JSON.md
@@ -8,6 +8,8 @@
// use underscores if necessary.
"name" : "Debug Mastery", // In-game name displayed
"description": "A secret martial art used only by developers and cheaters.", // In-game description
+"initiate": [ "You stand ready.", "%s stands ready." ], // Message shown when player or NPC chooses this art
+"autolearn": [ [ "unarmed", "2" ] ], // A list of skill requirements that if met, automatically teach the player the martial art
"arm_block" : 99, // Unarmed skill level at which arm blocking is unlocked
"leg_block" : 99, // Unarmed skill level at which arm blocking is unlocked
"static_buffs" : [ // List of buffs that are automatically applied every turn
@@ -15,11 +17,18 @@
"heat_arm_per" : 1.0
],
"ondodge_buffs" : [] // List of buffs that are automatically applied on successful dodge
+"onattack_buffs" : [] // List of buffs that are automatically applied after any attack, hit or miss
"onhit_buffs" : [] // List of buffs that are automatically applied on successful hit
+"onmove_buffs" : [] // List of buffs that are automatically applied on movement
+"onmiss_buffs" : [] // List of buffs that are automatically applied on a miss
+"oncrit_buffs" : [] // List of buffs that are automatically applied on a crit
+"onkill_buffs" : [] // List of buffs that are automatically applied upon killing an enemy
"techniques" : [ // List of techniques available when this martial art is used
"tec_debug_slow",
"tec_debug_arpen"
]
+"weapons": [ "tonfa" ] // List of weapons usable with this art
+
```
### Techniques
@@ -29,9 +38,23 @@
"name" : "phasing strike", // In-game name displayed
"unarmed_allowed" : true, // Can an unarmed character use this technique
"strict_unarmed" : true, // Does this buff require the character to be actually unarmed or does it allow unarmed weapons
-"melee_allowed" : true, // Can an armed character use this technique
+"melee_allowed" : true, // Means that ANY melee weapon can be used, NOT just the martial art's weapons
"min_melee" : 3, // Minimum skill and its level required to use this technique. Can be any skill.
+"req_buffs": [ "eskrima_hit_buff" ], // This technique requires a named buff to be active
"crit_tec" : true, // Can this technique be used on crit (and only on crit)?
+"knockback_dist": 1, // Distance target is knocked back
+"knockback_spread": 1, // The knockback may not send the target straight back
+"knockback_follow": 1, // Attacker will follow target if they are knocked back
+"stun_dur": 2, // Duration that target is stunned for
+"down_dur": 2, // Duration that target is downed for
+"disarms": true, // This technique can disarm the opponent
+"grab_break": true, // This technique may break a grab against the user
+"aoe": "spin", // This technique has an area-of-effect; doesn't work against solo targets
+"block_counter": true, // This technique may automatically counterattack on a successful block
+"dodge_counter": true, // This technique may automatically counterattack on a successful dodge
+"weighting": 2, // Affects likelihood this technique will be seleted when many are available
+"defensive": true, // Game won't try to select this technique when attacking
+"miss_recovery": true, // Misses while attacking will use fewer moves
"messages" : [ // What is printed when this technique is used by the player and by an npc
"You phase-strike %s",
" phase-strikes %s"
@@ -45,10 +68,13 @@
"id" : "debug_elem_resist", // Unique ID. Must be one continuous word
"name" : "Elemental resistance", // In-game name displayed
"description" : "+Strength bash armor, +Dexterity acid armor, +Intelligence electricity armor, +Perception fire armor.", // In-game description
+"buff_duration": 2, // Duration in turns that this buff lasts
"unarmed_allowed" : true, // Can this buff be applied to an unarmed character
"unarmed_allowed" : false, // Can this buff be applied to an armed character
"strictly_unarmed" : true, // Does this buff require the character to be actually unarmed. If false, allows unarmed weapons (brass knuckles, punch daggers)
"max_stacks" : 8, // Maximum number of stacks on the buff. Buff bonuses are multiplied by current buff intensity
+"bonus_blocks": 1 // Extra blocks per turn
+"bonus_dodges": 1 // Extra dodges per turn
"flat_bonuses" : [ // Flat bonuses
["armor", "bash", "str", 1.0],
["armor", "cut", "dex", 1.0],
@@ -85,3 +111,9 @@ Examples:
* `flat_bonuses : [["armor", "bash", "str", 0.3]], // Incoming bashing damage is decreased by 30% of strength value. Only useful on buffs`
* ``mult_bonuses : [["damage", "cut", "dex", 0.1]], // All cutting damage dealt is multiplied by `(10% of dexterity)*(damage)` ``
* `flat_bonuses : [["movecost", "str", -1.0]], // Move cost is decreased by 100% of strength value`
+
+### Place relevant items in the world and chargen
+
+Starting trait selection of your martial art goes in mutations.json. Place your art in the right category (self-defense, Shaolin animal form, melee style, etc)
+
+Use json/itemgroups/ to place your martial art book and any martial weapons you've made for the art into spawns in various locations in the world. If you don't place your weapons in there, only recipes to craft them will be an option.
diff --git a/doc/MISSIONS_JSON.md b/doc/MISSIONS_JSON.md
index 6cc5194d1cb39..8a96d4215dc7b 100644
--- a/doc/MISSIONS_JSON.md
+++ b/doc/MISSIONS_JSON.md
@@ -70,18 +70,33 @@ the player's current kill count that must be killed to complete the mission.
### dialogue
This is a dictionary of strings. The NPC says these exact strings in response to the player
-inquiring about the mission or reporting its completion.
+inquiring about the mission or reporting its completion. All these strings are required, even if they may not be used in the mission.
+
+string ID | Usage
+--- | ---
+`describe` | The NPC's overall description of the mission
+`offer` | The specifics of the mission given when the player selects that mission for consideration
+`accepted` | The NPC's response if the player accepts the mission
+`rejected` | The NPC's response if the player refuses the mission
+`advice` | If the player asks for advice on how to complete the mission, they hear this
+`inquire` | This is used if the NPC asks the player how the mission is going
+`success` | The NPC's response to a report that the mission was successful
+`success_lie` | The NPC's response if they catch the player lying about a mission's success
+`failure` | The NPC's response if the player reports a failed mission
### start
Optional field. If it is present and a string, it must be name of a function in mission_start::
-that takes a mission * and performs the start code for the mission. A hardcoded function is
-currently necessary to set up any mission other than MGOAL_FIND_ITEM", "MGOAL_KILL_MONSTER_TYPE",
-or "MGOAL_KILL_MONSTER_SPEC".
+that takes a mission * and performs the start code for the mission. This allows missions other
+than the standard mission types to be run. A hardcoded function is currently necessary to set
+up missions with "MGOAL_COMPUTER_TOGGLE".
-Alternately, if present, it can be an object with any of the following optional fields:
+Alternately, if present, it can be an object as described below.
+
+### start / end / fail effects
+If any of these optional fields are present they can be objects with the following fields contained:
#### effects
-This is an effects array, exactly as defined in NPCs.md, and can use any of the values from
+This is an effects array, exactly as defined in [NPCs.md](./NPCs.md), and can use any of the values from
effects. In all cases, the NPC involved is the quest giver.
#### reveal_om_ter
@@ -97,8 +112,8 @@ necessary) a particular overmap terrain and designating it as the mission target
allow control over how it is picked and how some effects (such as revealing the surrounding area)
are applied afterwards. The `om_terrain` is the only required field.
- Identifier | Description
--------------------- | --------------------------------------------------------------------------
+ Identifier | Description
+--- | ---
`om_terrain` | ID of overmap terrain which will be selected as the target. Mandatory.
`om_special` | ID of overmap special containing the overmap terrain.
`om_terrain_replace` | ID of overmap terrain to be found and replaced if `om_terrain` cannot be found.
@@ -156,7 +171,7 @@ value rather than relative.
values. This can change the mission target's overmap terrain type away from `om_terrain`.
#### update_mapgen
-The `update_mapgen`` object or array provides a way to modify existing overmap tiles (including the ones created by "assign_mission_target") to add mission specific monsters, NPCs, computers, or items.
+The `update_mapgen` object or array provides a way to modify existing overmap tiles (including the ones created by "assign_mission_target") to add mission specific monsters, NPCs, computers, or items.
As an array, `update_mapgen` consists of two or more `update_mapgen` objects.
@@ -167,8 +182,55 @@ See doc/MAPGEN.md for more details on JSON mapgen and `update_mapgen`.
An NPC, monster, or computer placed using `update_mapgen` will be the target of a mission if it has the `target` boolean set to `true` in its `place` object in `update_mapgen`.
## Adding new missions to NPC dialogue
-Any NPC that has missions needs to either:
+In order to assign missions to NPCs, the first step is to find that NPC's definition. For unique NPCs this is usually at the top of the npc's JSON file and looks something like this:
+```JSON
+{
+ "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": "lobby_beggars"
+},
+```
+Add a new line that defines the NPC's starting mission, eg:
+```
+"mission_offered": "MISSION_BEGGAR_2_BOX_SMALL"
+```
+
+Any NPC that has missions needs to have a dialogue option that leads to TALK_MISSION_LIST, to get the player
+started on their first mission for the NPC, and either:
+
* Add one of their talk_topic IDs to the list of generic mission reponse IDs in the first
-talk_topic of data/json/npcs/TALK_COMMON_MISSION.json
+talk_topic of data/json/npcs/TALK_COMMON_MISSION.json, or
* Have a similar talk_topic with responses that lead to TALK_MISSION_INQUIRE and
TALK_MISSION_LIST_ASSIGNED.
+
+Either of these options will allow the player to do normal mission management dialogue with the NPC.
+
+This is an example of how a custom mission inquiry might appear. This will only appear in the NPC's dialogue
+options if the player has already been assigned a mission.
+```JSON
+{
+ "type": "talk_topic",
+ "//": "Generic responses for Old Guard Necropolis NPCs that can have missions",
+ "id": [ "TALK_OLD_GUARD_NEC_CPT", "TALK_OLD_GUARD_NEC_COMMO" ],
+ "responses": [
+ {
+ "text": "About the mission...",
+ "topic": "TALK_MISSION_INQUIRE",
+ "condition": { "and": [ "has_assigned_mission", { "u_is_wearing": "badge_marshal" } ] }
+ },
+ {
+ "text": "About one of those missions...",
+ "topic": "TALK_MISSION_LIST_ASSIGNED",
+ "condition": { "and": [ "has_many_assigned_missions", { "u_is_wearing": "badge_marshal" } ] }
+ }
+ ]
+ },
+ ```
diff --git a/doc/NPCs.md b/doc/NPCs.md
index afe884f0ea432..c4abfe14d0782 100644
--- a/doc/NPCs.md
+++ b/doc/NPCs.md
@@ -428,6 +428,8 @@ Effect | Description
`u_lose_trait: trait_string`
`npc_lose_trait: trait_string` | Your character or the NPC will lose the trait.
`u_add_var, npc_add_var`: `var_name, type: type_str`, `context: context_str`, `value: value_str` | Your character or the NPC will store `value_str` as a variable that can be later retrieved by `u_has_var` or `npc_has_var`. `npc_add_var` can be used to store arbitary local variables, and `u_add_var` can be used to store arbitrary "global" variables, and should be used in preference to setting effects.
`u_lose_var`, `npc_lose_var`: `var_name`, `type: type_str`, `context: context_str` | Your character or the NPC will clear any stored variable that has the same `var_name`, `type_str`, and `context_str`.
+`barber_hair` | Opens a menu allowing the player to choose a new hair style.
+`barber_beard` | Opens a menu allowing the player to choose a new beard style.
#### Trade / Items
diff --git a/gfx/MSX++DeadPeopleEdition/14_tiles2_32x32_22365-27564.png b/gfx/MSX++DeadPeopleEdition/14_tiles2_32x32_22365-27564.png
index 356c4ef7ce7a9..537640bfc5d20 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 a2182f9825020..bfa813599812d 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/18_big_things_64x80_35757.png b/gfx/MSX++DeadPeopleEdition/18_big_things_64x80_35757.png
index c156f7c07bfe0..c947b7f8c117b 100644
Binary files a/gfx/MSX++DeadPeopleEdition/18_big_things_64x80_35757.png and b/gfx/MSX++DeadPeopleEdition/18_big_things_64x80_35757.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 36113ab3a3f05..d8397b8e4d081 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/3_tree_64x80_5392-5471.png b/gfx/MSX++DeadPeopleEdition/3_tree_64x80_5392-5471.png
index e5d48915dfa32..38544beea5b0e 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/8_tiles-monster-variants_32x32_11652-16851.png b/gfx/MSX++DeadPeopleEdition/8_tiles-monster-variants_32x32_11652-16851.png
index 03423ac72cdd6..c11bb9b8c512a 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 cd3116f25d79e..b7ba02a3a540c 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 7b18ce1741e56..68cabefd3064a 100644
--- a/gfx/MSX++DeadPeopleEdition/tile_config.json
+++ b/gfx/MSX++DeadPeopleEdition/tile_config.json
@@ -20,7 +20,11 @@
"toolset_extended",
"f_fake_bench_hands",
"f_fake_bench_ground",
- "fake_milling_item"
+ "fake_milling_item",
+ "fake_burrowing",
+ "f_lilypad_season_winter",
+ "f_lotus_season_winter"
+
],
"fg": 0,
"bg": 0,
@@ -52939,10 +52943,6 @@
"fg": 837,
"rotates": false
},
- {
- "id": "hakama_gi",
- "fg": 837
- },
{
"id": "pants_army",
"fg": 838,
@@ -53300,11 +53300,6 @@
"bg": 957,
"rotates": false
},
- {
- "id": "sleeveless_trenchcoat",
- "fg": 891,
- "bg": 957
- },
{
"id": "sleeveless_duster",
"fg": 891,
@@ -53320,11 +53315,6 @@
"fg": 892,
"bg": 957
},
- {
- "id": "sleeveless_trenchcoat_survivor",
- "fg": 893,
- "bg": 957
- },
{
"id": "sleeveless_duster_survivor",
"fg": 893,
@@ -53627,58 +53617,30 @@
"id": "hsurvivor_suit",
"fg": 931
},
- {
- "id": "trenchcoat",
- "fg": 932,
- "rotates": false
- },
{
"id": "duster",
"fg": 932,
"bg": 957,
"rotates": false
},
- {
- "id": "trenchcoat_fur",
- "fg": 933,
- "bg": 957,
- "rotates": false
- },
{
"id": "duster_fur",
"fg": 933,
"bg": 957,
"rotates": false
},
- {
- "id": "trenchcoat_leather",
- "fg": 934,
- "bg": 957,
- "rotates": false
- },
{
"id": "duster_leather",
"fg": 934,
"bg": 957,
"rotates": false
},
- {
- "id": "sleeveless_trenchcoat_leather",
- "fg": 934,
- "bg": 957,
- "rotates": false
- },
{
"id": "sleeveless_duster_leather",
"fg": 934,
"bg": 957,
"rotates": false
},
- {
- "id": "trenchcoat_survivor",
- "fg": 935,
- "bg": 957
- },
{
"id": "duster_survivor",
"fg": 935,
@@ -54937,7 +54899,7 @@
"rotates": false
},
{
- "id": "hammer_sledge",
+ "id": ["hammer_sledge", "fake_drop_hammer"],
"fg": 1757,
"bg": 957,
"rotates": false
@@ -55123,7 +55085,7 @@
"rotates": false
},
{
- "id": "knife_butcher",
+ "id": "knife_meat_cleaver",
"fg": 3586,
"bg": 957,
"rotates": false
@@ -59383,7 +59345,7 @@
"rotates": false
},
{
- "id": "esbit_stove",
+ "id": ["esbit_stove", "fake_stove"],
"fg": 3509,
"bg": 957,
"rotates": false
@@ -61452,7 +61414,7 @@
{
"id": "mon_blob",
"fg": 2350,
- "bg": 967,
+ "bg": 0,
"rotates": false
},
{
@@ -69294,7 +69256,7 @@
"rotates": false
},
{
- "id": "coffee",
+ "id": ["coffee", "coffee_substitute"],
"fg": 1148,
"rotates": false
},
@@ -71736,7 +71698,7 @@
"rotates": false
},
{
- "id": "f_fireplace",
+ "id": ["f_fireplace", "fake_fireplace"],
"fg": 1512,
"rotates": false
},
@@ -72005,7 +71967,7 @@
"rotates": false
},
{
- "id": "f_sandbag_half",
+ "id": ["f_sandbag_half", "f_earthbag_half"],
"fg": 1561,
"rotates": true,
"multitile": true,
@@ -72037,7 +71999,7 @@
]
},
{
- "id": "f_sandbag_wall",
+ "id": ["f_sandbag_wall", "f_earthbag_wall"],
"fg": 1561,
"rotates": true,
"multitile": true,
@@ -83702,7 +83664,7 @@
{
"id": "mon_maggot",
"fg": 2529,
- "bg": 967,
+ "bg": 0,
"rotates": false
},
{
@@ -84066,7 +84028,7 @@
{
"id": "mon_trapdoor_egg",
"fg": 2631,
- "bg": 967,
+ "bg": 0,
"rotates": false
},
{
@@ -84108,11 +84070,6 @@
"bg": 5239,
"rotates": false
},
- {
- "id": "mon_vinebeast_pk",
- "fg": 2651,
- "rotates": false
- },
{
"id": "mon_vinebeast_terminal",
"fg": 2651,
@@ -86200,7 +86157,7 @@
"rotates": false
},
{
- "id": "char_smoker",
+ "id": ["char_smoker", "fake_char_smoker"],
"fg": 3475,
"rotates": false
},
@@ -86832,7 +86789,7 @@
"rotates": false
},
{
- "id": "overlay_wielded_cavalry_sabre_fake",
+ "id": ["overlay_wielded_cavalry_sabre_fake", "overlay_wielded_cavalry_sabre"],
"fg": 3652,
"rotates": false
},
@@ -87072,7 +87029,7 @@
"rotates": false
},
{
- "id": "overlay_wielded_knife_butcher",
+ "id": "overlay_wielded_knife_meat_cleaver",
"fg": 3671,
"rotates": false
},
@@ -93012,7 +92969,7 @@
{
"id": "mon_stemcell_nether",
"fg": 4223,
- "bg": 967,
+ "bg": 0,
"rotates": false
},
{
@@ -95575,6 +95532,20 @@
],
"bg": 967,
"rotates": false
+ },
+ {
+ "id": "mon_furvivor",
+ "fg": [
+ { "weight":111, "sprite":2480},
+ { "weight":111, "sprite":12164},
+ { "weight":111, "sprite":12165},
+ { "weight":111, "sprite":12166},
+ { "weight":111, "sprite":12167},
+ { "weight":111, "sprite":12168},
+ { "weight":111, "sprite":12169}
+ ],
+ "bg": 967,
+ "rotates": false
}
]
@@ -96149,7 +96120,11 @@
"multitile": true,
"additional_tiles": [
{
- "fg": 16996,
+ "fg": [{ "weight":1, "sprite":16996},
+ { "weight":1, "sprite":27716},
+ { "weight":1, "sprite":27717},
+ { "weight":1, "sprite":27718},
+ { "weight":1, "sprite":27719}],
"bg": 985,
"id": "center"
},
@@ -98577,25 +98552,25 @@
"id": "corner",
"fg": [ 17445, 17446, 17447, 17448 ],
"bg": 5131
- },
- {
- "id": "edge",
+ },
+ {
+ "id": "t_connection",
"fg": [ 17449, 17450, 17451, 17452 ],
"bg": 5131
},
{
- "id": "t_connection",
- "fg": 17453,
+ "id": "edge",
+ "fg": [ 17453, 17454 ],
"bg": 5131
},
- {
+ {
"id": "end_piece",
"fg": [ 17455, 17456, 17457, 17458 ],
"bg": 5131
},
{
"id": "unconnected",
- "fg": 17444,
+ "fg": 17459,
"bg": 5131
}
]
@@ -98614,27 +98589,27 @@
},
{
"id": "corner",
- "fg": 17461,
+ "fg": [ 17461, 17462, 17463, 17464 ],
+ "bg": 5131
+ },
+ {
+ "id": "t_connection",
+ "fg": [ 17465, 17466, 17467, 17468 ],
"bg": 5131
},
{
"id": "edge",
- "fg": 17465,
+ "fg": [ 17469, 17470 ],
"bg": 5131
},
{
"id": "end_piece",
- "fg": 17465,
- "bg": 5131
- },
- {
- "id": "t_connection",
- "fg": 17469,
+ "fg": [ 17471, 17472, 17473, 17474 ],
"bg": 5131
},
{
"id": "unconnected",
- "fg": 0,
+ "fg": 17475,
"bg": 5131
}
]
@@ -98653,27 +98628,27 @@
},
{
"id": "corner",
- "fg": 17476,
+ "fg": [ 17477, 17478, 17479, 17480 ],
"bg": 5131
- },
- {
- "id": "edge",
+ },
+ {
+ "id": "t_connection",
"fg": [ 17481, 17482, 17483, 17484 ],
"bg": 5131
},
{
- "id": "t_connection",
- "fg": 17485,
+ "id": "edge",
+ "fg": [ 17485, 17486 ],
"bg": 5131
},
- {
+ {
"id": "end_piece",
"fg": [ 17487, 17488, 17489, 17490 ],
"bg": 5131
},
{
"id": "unconnected",
- "fg": 17476,
+ "fg": 17491,
"bg": 5131
}
]
@@ -102164,7 +102139,7 @@
]
},
{
- "id": "!t_door_metal_c",
+ "id": "t_wall_w",
"fg": 18772,
"bg": 0,
"rotates": false,
@@ -102201,54 +102176,823 @@
"bg": 0
}
]
- }
- ]
- },
- {
- "file": "10_xfiles_32x32_22052-22195.png",
- "tiles": [
- {
- "id": "mon_pink_mist",
- "fg": 22052,
- "rotates": false
- },
- {
- "id": "mon_entomber",
- "fg": 22054,
- "rotates": false
- },
- {
- "id": "mon_bloodbeast",
- "fg": 22053,
- "rotates": false
- },
- {
- "id": "mon_worm_mass",
- "fg": 22061,
- "rotates": false
- },
- {
- "id": "mon_bloodworm",
- "fg": 22062,
- "rotates": false
- },
- {
- "id": "mon_grey_grunt",
- "fg": 22055,
- "rotates": false
- },
- {
- "id": "mon_alien_turret",
- "fg": 22056,
- "rotates": false
- },
+ },
+ {
+ "id": "t_rock_red",
+ "fg": 18788,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18788,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18789, 18790, 18791, 18792],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18793, 18794, 18795, 18796],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18797, 18798],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18799, 18800, 18801, 18802],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18803,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_rock_green",
+ "fg": 18804,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18804,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18805, 18806, 18807, 18808],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18809, 18810, 18811, 18812],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18813, 18814],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18815, 18816, 18817, 18818],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18819,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_rock_blue",
+ "fg": 18820,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18820,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18821, 18822, 18823, 18824],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18825, 18826, 18827, 18828],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18829, 18830],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18831, 18832, 18833, 18834],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18835,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_wall_r",
+ "fg": 18836,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18836,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18837, 18838, 18839, 18840],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18841, 18842, 18843, 18844],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18845, 18846],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18847, 18848, 18849, 18850],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18851,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_wall_b",
+ "fg": 18852,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18852,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18853, 18854, 18855, 18856],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18857, 18858, 18859, 18860],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18861, 18862],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18863, 18864, 18865, 18866],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18867,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_wall_g",
+ "fg": 18868,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18868,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18869, 18870, 18871, 18872],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18873, 18874, 18875, 18876],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18877, 18878],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18879, 18880, 18881, 18882],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18883,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_wall_p",
+ "fg": 18884,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18884,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18885, 18886, 18887, 18888],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18889, 18890, 18891, 18892],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18893, 18894],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18895, 18896, 18897, 18898],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18899,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_wall_y",
+ "fg": 18900,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18900,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18901, 18902, 18903, 18904],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18905, 18906, 18907, 18908],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18909, 18910],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18911, 18912, 18913, 18914],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18915,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_rock_wall",
+ "fg": 18916,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18916,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18917, 18918, 18919, 18920],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18921, 18922, 18923, 18924],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18925, 18926],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18927, 18928, 18929, 18930],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18931,
+ "bg": 0
+ }
+ ]
+ },
+ {
+ "id": "t_rock_wall_half",
+ "fg": 18932,
+ "bg": 985,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18932,
+ "bg": 985
+ },
+ {
+ "id": "corner",
+ "fg": [18933, 18934, 18935, 18936],
+ "bg": 985
+ },
+ {
+ "id": "t_connection",
+ "fg": [18937, 18938, 18939, 18940],
+ "bg": 985
+ },
+ {
+ "id": "edge",
+ "fg": [18941, 18942],
+ "bg": 985
+ },
+ {
+ "id": "end_piece",
+ "fg": [18943, 18944, 18945, 18946],
+ "bg": 985
+ },
+ {
+ "id": "unconnected",
+ "fg": 18947,
+ "bg": 985
+ }
+ ]
+ },
+ {
+ "id": "f_makeshift_bed",
+ "fg": 18948,
+ "bg": 0,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18948,
+ "bg": 0
+ },
+ {
+ "id": "corner",
+ "fg": [18949, 18950, 18951, 18952],
+ "bg": 0
+ },
+ {
+ "id": "t_connection",
+ "fg": [18953, 18954, 18955, 18956],
+ "bg": 0
+ },
+ {
+ "id": "edge",
+ "fg": [18957, 18958],
+ "bg": 0
+ },
+ {
+ "id": "end_piece",
+ "fg": [18959, 18960, 18961, 18962],
+ "bg": 0
+ },
+ {
+ "id": "unconnected",
+ "fg": 18963,
+ "bg": 0
+ }
+ ]
+ },
{
- "id": "mon_loch_ness_monster",
- "fg": 22057,
- "rotates": false
- },
+ "id": "t_sludge",
+ "fg": 18964,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18964,
+ "bg": 972
+ },
+ {
+ "id": "corner",
+ "fg": [18965, 18966, 18967, 18968],
+ "bg": 972
+ },
+ {
+ "id": "t_connection",
+ "fg": [18969, 18970, 18971, 18972],
+ "bg": 972
+ },
+ {
+ "id": "edge",
+ "fg": [18973, 18974],
+ "bg": 972
+ },
+ {
+ "id": "end_piece",
+ "fg": [18975, 18976, 18977, 18978],
+ "bg": 972
+ },
+ {
+ "id": "unconnected",
+ "fg": 18979,
+ "bg": 972
+ }
+ ]
+ },
{
- "id": "mon_jersey_devil",
+ "id": "t_tar",
+ "fg": 18980,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18980,
+ "bg": 972
+ },
+ {
+ "id": "corner",
+ "fg": [18981, 18982, 18983, 18984],
+ "bg": 972
+ },
+ {
+ "id": "t_connection",
+ "fg": [18985, 18986, 18987, 18988],
+ "bg": 972
+ },
+ {
+ "id": "edge",
+ "fg": [18989, 18990],
+ "bg": 972
+ },
+ {
+ "id": "end_piece",
+ "fg": [18991, 18992, 18993, 18994],
+ "bg": 972
+ },
+ {
+ "id": "unconnected",
+ "fg": 18995,
+ "bg": 972
+ }
+ ]
+ }, {
+ "id": "t_rock_smooth",
+ "fg": 18996,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 18996,
+ "bg": 972
+ },
+ {
+ "id": "corner",
+ "fg": [18997, 18998, 18999, 19000],
+ "bg": 972
+ },
+ {
+ "id": "t_connection",
+ "fg": [19001, 19002, 19003, 19004],
+ "bg": 972
+ },
+ {
+ "id": "edge",
+ "fg": [19005, 19006],
+ "bg": 972
+ },
+ {
+ "id": "end_piece",
+ "fg": [19007, 19008, 19009, 19010],
+ "bg": 972
+ },
+ {
+ "id": "unconnected",
+ "fg": 19011,
+ "bg": 972
+ }
+ ]
+ },{
+ "id": "t_conveyor",
+ "fg": 19012,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 19012,
+ "bg": 972
+ },
+ {
+ "id": "corner",
+ "fg": [19013, 19014, 19015, 19016],
+ "bg": 972
+ },
+ {
+ "id": "t_connection",
+ "fg": [19017, 19018, 19019, 19020],
+ "bg": 972
+ },
+ {
+ "id": "edge",
+ "fg": [19021, 19022],
+ "bg": 972
+ },
+ {
+ "id": "end_piece",
+ "fg": [19023, 19024, 19025, 19026],
+ "bg": 972
+ },
+ {
+ "id": "unconnected",
+ "fg": 19027,
+ "bg": 972
+ }
+ ]
+ },{
+ "id": "t_machinery_heavy",
+ "fg": 19028,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 19028,
+ "bg": 972
+ },
+ {
+ "id": "corner",
+ "fg": [19029, 19030, 19031, 19032],
+ "bg": 972
+ },
+ {
+ "id": "t_connection",
+ "fg": [19033, 19034, 19035, 19036],
+ "bg": 972
+ },
+ {
+ "id": "edge",
+ "fg": [19037, 19038],
+ "bg": 972
+ },
+ {
+ "id": "end_piece",
+ "fg": [19039, 19040, 19041, 19042],
+ "bg": 972
+ },
+ {
+ "id": "unconnected",
+ "fg": 19043,
+ "bg": 972
+ }
+ ]
+ },
+ {
+ "id": "t_wall_rammed_earth",
+ "fg": 19044,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 19044,
+ "bg": 972
+ },
+ {
+ "id": "corner",
+ "fg": [19045, 19046, 19047, 19048],
+ "bg": 972
+ },
+ {
+ "id": "t_connection",
+ "fg": [19049, 19050, 19051, 19052],
+ "bg": 972
+ },
+ {
+ "id": "edge",
+ "fg": [19053, 19054],
+ "bg": 972
+ },
+ {
+ "id": "end_piece",
+ "fg": [19055, 19056, 19057, 19058],
+ "bg": 972
+ },
+ {
+ "id": "unconnected",
+ "fg": 19059,
+ "bg": 972
+ }
+ ]
+ },
+ {
+ "id": "t_concrete_railing",
+ "fg": 19060,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 19060,
+ "bg": 5010
+ },
+ {
+ "id": "corner",
+ "fg": [19061, 19062, 19063, 19064],
+ "bg": 5010
+ },
+ {
+ "id": "t_connection",
+ "fg": [19065, 19066, 19067, 19068],
+ "bg": 5010
+ },
+ {
+ "id": "edge",
+ "fg": [19069, 19070],
+ "bg": 5010
+ },
+ {
+ "id": "end_piece",
+ "fg": [19071, 19072, 19073, 19074],
+ "bg": 5010
+ },
+ {
+ "id": "unconnected",
+ "fg": 19075,
+ "bg": 5010
+ }
+ ]
+ },
+ {
+ "id": ["!t_railroad_tie", "!t_railroad_tie_d", "!t_railroad_tie_v", "!t_railroad_tie_h"],
+ "fg": 19076,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 19076,
+ "bg": 5131
+ },
+ {
+ "id": "corner",
+ "fg": [19077, 19078, 19079, 19080],
+ "bg": 5131
+ },
+ {
+ "id": "t_connection",
+ "fg": [19081, 19082, 19083, 19084],
+ "bg": 5131
+ },
+ {
+ "id": "edge",
+ "fg": [19085, 19086],
+ "bg": 5131
+ },
+ {
+ "id": "end_piece",
+ "fg": [19087, 19088, 19089, 19090],
+ "bg": 5131
+ },
+ {
+ "id": "unconnected",
+ "fg": 19091,
+ "bg": 5131
+ }
+ ]
+ },
+ {
+ "id": "!t_railroad_track_on_tie",
+ "fg": 19092,
+ "rotates": false,
+ "multitile": true,
+ "additional_tiles": [
+ {
+ "id": "center",
+ "fg": 19092,
+ "bg": 5010
+ },
+ {
+ "id": "corner",
+ "fg": [19093, 19094, 19095, 19096],
+ "bg": 5010
+ },
+ {
+ "id": "t_connection",
+ "fg": [19097, 19098, 19099, 19100],
+ "bg": 5010
+ },
+ {
+ "id": "edge",
+ "fg": [19101, 19102],
+ "bg": 5010
+ },
+ {
+ "id": "end_piece",
+ "fg": [19103, 19104, 19105, 19106],
+ "bg": 5010
+ },
+ {
+ "id": "unconnected",
+ "fg": 19107,
+ "bg": 5010
+ }
+ ]
+ }
+
+ ]
+ },
+ {
+ "file": "10_xfiles_32x32_22052-22195.png",
+ "tiles": [
+ {
+ "id": "mon_pink_mist",
+ "fg": 22052,
+ "rotates": false
+ },
+ {
+ "id": "mon_entomber",
+ "fg": 22054,
+ "rotates": false
+ },
+ {
+ "id": "mon_bloodbeast",
+ "fg": 22053,
+ "rotates": false
+ },
+ {
+ "id": "mon_worm_mass",
+ "fg": 22061,
+ "rotates": false
+ },
+ {
+ "id": "mon_bloodworm",
+ "fg": 22062,
+ "rotates": false
+ },
+ {
+ "id": "mon_grey_grunt",
+ "fg": 22055,
+ "rotates": false
+ },
+ {
+ "id": "mon_alien_turret",
+ "fg": 22056,
+ "rotates": false
+ },
+ {
+ "id": "mon_loch_ness_monster",
+ "fg": 22057,
+ "rotates": false
+ },
+ {
+ "id": "mon_jersey_devil",
"fg": 22059,
"rotates": false
},
@@ -120125,7 +120869,7 @@
"fg": 23994
},
{
- "id": ["overlay_wielded_mag_archery", "overlay_wielded_book_archery", "overlay_wielded_manual_archery", "overlay_wielded_mag_barter", "overlay_wielded_manual_business", "overlay_wielded_textbook_business", "overlay_wielded_mag_bashing", "overlay_wielded_manual_bashing", "overlay_wielded_SICP", "overlay_wielded_computer_science", "overlay_wielded_howto_computer", "overlay_wielded_mag_computer", "overlay_wielded_manual_computers", "overlay_wielded_textbook_computer", "overlay_wielded_adv_chemistry", "overlay_wielded_brewing_cookbook", "overlay_wielded_cookbook", "overlay_wielded_cookbook_human", "overlay_wielded_cookbook_italian", "overlay_wielded_cookbook_sushi", "overlay_wielded_family_cookbook", "overlay_wielded_mag_cooking", "overlay_wielded_mag_glam", "overlay_wielded_modern_tanner", "overlay_wielded_recipe_alpha", "overlay_wielded_", "overlay_wielded_recipe_animal", "overlay_wielded_recipe_labchem", "overlay_wielded_recipe_chimera", "overlay_wielded_recipe_creepy", "overlay_wielded_recipe_elfa", "overlay_wielded_recipe_maiar", "overlay_wielded_recipe_medicalmut", "overlay_wielded_recipe_raptor", "overlay_wielded_recipe_serum", "overlay_wielded_scots_cookbook", "overlay_wielded_textbook_chemistry", "overlay_wielded_mag_cutting", "overlay_wielded_manual_cutting", "overlay_wielded_manual_knives", "overlay_wielded_mag_dodge", "overlay_wielded_manual_dodge", "overlay_wielded_manual_dodge_kid", "overlay_wielded_textbook_anarch", "overlay_wielded_advanced_electronics", "overlay_wielded_mag_electronics", "overlay_wielded_decoy_anarch", "overlay_wielded_mag_cars", "overlay_wielded_manual_driving", "overlay_wielded_manual_electronics", "overlay_wielded_radio_book", "overlay_wielded_recipe_atomic_battery", "overlay_wielded_recipe_augs", "overlay_wielded_recipe_lab_elec", "overlay_wielded_recipe_mil_augs", "overlay_wielded_repeater_mod_guide", "overlay_wielded_textbook_electronics", "overlay_wielded_textbook_robots", "overlay_wielded_glassblowing_book", "overlay_wielded_jewelry_book", "overlay_wielded_mag_fabrication", "overlay_wielded_manual_fabrication", "overlay_wielded_recipe_arrows", "overlay_wielded_recipe_bows", "overlay_wielded_recipe_bullets", "overlay_wielded_recipe_caseless", "overlay_wielded_recipe_lab_cvd", "overlay_wielded_recipe_melee", "overlay_wielded_recipe_mininuke_launch", "overlay_wielded_textbook_armeast", "overlay_wielded_textbook_armschina", "overlay_wielded_textbook_armwest", "overlay_wielded_textbook_fabrication", "overlay_wielded_textbook_fireman", "overlay_wielded_textbook_gaswarfare", "overlay_wielded_welding_book", "overlay_wielded_101_carpentry", "overlay_wielded_carpentry_book", "overlay_wielded_textbook_weapeast", "overlay_wielded_textbook_weapwest", "overlay_wielded_mag_guns", "overlay_wielded_mag_carpentry", "overlay_wielded_manual_carpentry", "overlay_wielded_textbook_carpentry", "overlay_wielded_emergency_book", "overlay_wielded_mag_firstaid", "overlay_wielded_manual_first_aid", "overlay_wielded_pocket_firstaid", "overlay_wielded_textbook_firstaid", "overlay_wielded_booklet_firstaid", "overlay_wielded_manual_gun", "overlay_wielded_pocket_firearms", "overlay_wielded_mag_launcher", "overlay_wielded_manual_launcher", "overlay_wielded_manual_aikido", "overlay_wielded_manual_boxing", "overlay_wielded_manual_capoeira", "overlay_wielded_manual_centipede", "overlay_wielded_manual_crane", "overlay_wielded_manual_dragon", "overlay_wielded_manual_eskrima", "overlay_wielded_manual_fencing", "overlay_wielded_manual_judo", "overlay_wielded_manual_karate", "overlay_wielded_manual_krav_maga", "overlay_wielded_manual_leopard", "overlay_wielded_manual_lizard", "overlay_wielded_manual_muay_thai", "overlay_wielded_manual_ninjutsu", "overlay_wielded_manual_niten", "overlay_wielded_manual_scorpion", "overlay_wielded_manual_silat", "overlay_wielded_manual_snake", "overlay_wielded_manual_taekwondo", "overlay_wielded_manual_tai_chi", "overlay_wielded_manual_tiger", "overlay_wielded_manual_toad", "overlay_wielded_manual_venom_snake", "overlay_wielded_manual_zui_quan", "overlay_wielded_manual_sojutsu", "overlay_wielded_book_icef", "overlay_wielded_mag_mechanics", "overlay_wielded_manual_mechanics", "overlay_wielded_mag_melee", "overlay_wielded_manual_melee", "overlay_wielded_mag_smg", "overlay_wielded_mag_fieldrepair", "overlay_wielded_textbook_biodiesel", "overlay_wielded_textbook_mechanics", "overlay_wielded_ZSG", "overlay_wielded_black_box_transcript", "overlay_wielded_child_book", "overlay_wielded_commune_prospectus", "overlay_wielded_decoy_elfa", "overlay_wielded_essay_book", "overlay_wielded_fairy_tales", "overlay_wielded_guidebook", "overlay_wielded_manual_smg", "overlay_wielded_mag_tv", "overlay_wielded_dnd_handbook", "overlay_wielded_textbook_speech", "overlay_wielded_holybook_bible1", "overlay_wielded_holybook_bible2", "overlay_wielded_manual_stabbing", "overlay_wielded_holybook_bible3", "overlay_wielded_manual_speech", "overlay_wielded_mag_stabbing", "overlay_wielded_atomic_survival", "overlay_wielded_holybook_hadith", "overlay_wielded_holybook_granth", "overlay_wielded_holybook_kojiki", "overlay_wielded_holybook_kallisti", "overlay_wielded_holybook_mormon", "overlay_wielded_holybook_pastafarian", "overlay_wielded_holybook_quran", "overlay_wielded_holybook_scientology", "overlay_wielded_holybook_slack", "overlay_wielded_holybook_sutras", "overlay_wielded_holybook_talmud", "overlay_wielded_holybook_tanakh", "overlay_wielded_holybook_tripitaka", "overlay_wielded_holybook_upanishads", "overlay_wielded_holybook_vedas", "overlay_wielded_mag_comic", "overlay_wielded_mag_gaming", "overlay_wielded_mag_porn", "overlay_wielded_necropolis_freq", "overlay_wielded_news_regional", "overlay_wielded_novel_adventure", "overlay_wielded_novel_buddy", "overlay_wielded_mag_news", "overlay_wielded_novel_crime", "overlay_wielded_novel_crime2", "overlay_wielded_novel_drama", "overlay_wielded_fun_survival", "overlay_wielded_novel_coa", "overlay_wielded_novel_coa2", "overlay_wielded_mag_dude", "overlay_wielded_novel_erotic", "overlay_wielded_novel_experimental", "overlay_wielded_novel_fantasy", "overlay_wielded_novel_horror", "overlay_wielded_novel_mystery", "overlay_wielded_novel_pulp", "overlay_wielded_mag_survival", "overlay_wielded_manual_survival", "overlay_wielded_pocket_survival", "overlay_wielded_survival_book", "overlay_wielded_novel_road", "overlay_wielded_novel_romance", "overlay_wielded_novel_samurai", "overlay_wielded_novel_satire", "overlay_wielded_novel_scifi", "overlay_wielded_textbook_survival", "overlay_wielded_mag_swimming", "overlay_wielded_novel_sports", "overlay_wielded_novel_spy", "overlay_wielded_novel_swash", "overlay_wielded_novel_thriller", "overlay_wielded_novel_tragedy", "overlay_wielded_novel_war", "overlay_wielded_novel_war2", "overlay_wielded_novel_western", "overlay_wielded_philosophy_book", "overlay_wielded_phonebook", "overlay_wielded_photo_album", "overlay_wielded_plays_book", "overlay_wielded_manual_swimming", "overlay_wielded_poetry_book", "overlay_wielded_priest_diary", "overlay_wielded_record_accounting", "overlay_wielded_record_patient", "overlay_wielded_record_weather", "overlay_wielded_story_book", "overlay_wielded_tall_tales", "overlay_wielded_visions_solitude", "overlay_wielded_holybook_havamal", "overlay_wielded_classic_literature", "overlay_wielded_collector_book", "overlay_wielded_mag_pistol", "overlay_wielded_manual_pistol", "overlay_wielded_mag_rifle", "overlay_wielded_manual_rifle", "overlay_wielded_mag_shotgun", "overlay_wielded_manual_shotgun", "overlay_wielded_manual_swimming", "overlay_wielded_mag_animecon", "overlay_wielded_mag_beauty", "overlay_wielded_mag_tailor", "overlay_wielded_manual_tailor", "overlay_wielded_tailor_portfolio", "overlay_wielded_recipe_fauxfur", "overlay_wielded_textbook_tailor", "overlay_wielded_mag_throwing", "overlay_wielded_manual_throw", "overlay_wielded_howto_traps", "overlay_wielded_mag_traps", "overlay_wielded_manual_traps", "overlay_wielded_textbook_traps", "overlay_wielded_trappers_companion", "overlay_wielded_mag_unarmed", "overlay_wielded_manual_brawl", "overlay_wielded_afs_librarian_book", "overlay_wielded_recipe_lab_cvd", "overlay_wielded_afs_textbook_shotguns", "overlay_wielded_afs_textbook_handguns", "overlay_wielded_afs_textbook_rifles", "overlay_wielded_afs_textbook_launchers", "overlay_wielded_manual_surv", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_encyclopedia_mechanics", "overlay_wielded_encyclopedia_fabrication", "overlay_wielded_encyclopedia_archery", "overlay_wielded_encyclopedia_barter", "overlay_wielded_encyclopedia_bashing", "overlay_wielded_encyclopedia_computer", "overlay_wielded_encyclopedia_cooking", "overlay_wielded_encyclopedia_cutting", "overlay_wielded_encyclopedia_dodge", "overlay_wielded_encyclopedia_driving", "overlay_wielded_encyclopedia_electronics", "overlay_wielded_encyclopedia_firstaid", "overlay_wielded_encyclopedia_gun", "overlay_wielded_encyclopedia_launcher", "overlay_wielded_encyclopedia_melee", "overlay_wielded_encyclopedia_pistol", "overlay_wielded_encyclopedia_rifle", "overlay_wielded_encyclopedia_shotgun", "overlay_wielded_encyclopedia_smg", "overlay_wielded_encyclopedia_speech", "overlay_wielded_encyclopedia_stabbing", "overlay_wielded_encyclopedia_survival", "overlay_wielded_encyclopedia_swimming", "overlay_wielded_encyclopedia_tailor", "overlay_wielded_encyclopedia_throw", "overlay_wielded_encyclopedia_traps", "overlay_wielded_encyclopedia_unarmed", "overlay_wielded_encyclopedia_mechanics_advance", "overlay_wielded_encyclopedia_fabrication_advance", "overlay_wielded_encyclopedia_archery_advance", "overlay_wielded_encyclopedia_barter_advance", "overlay_wielded_encyclopedia_bashing_advance", "overlay_wielded_encyclopedia_computer_advance", "overlay_wielded_encyclopedia_cooking_advance", "overlay_wielded_encyclopedia_cutting_advance", "overlay_wielded_encyclopedia_dodge_advance", "overlay_wielded_encyclopedia_driving_advance", "overlay_wielded_encyclopedia_electronics_advance", "overlay_wielded_encyclopedia_firstaid_advance", "overlay_wielded_encyclopedia_gun_advance", "overlay_wielded_encyclopedia_launcher_advance", "overlay_wielded_encyclopedia_melee_advance", "overlay_wielded_encyclopedia_pistol_advance", "overlay_wielded_encyclopedia_rifle_advance", "overlay_wielded_encyclopedia_shotgun_advance", "overlay_wielded_encyclopedia_smg_advance", "overlay_wielded_encyclopedia_speech_advance", "overlay_wielded_encyclopedia_stabbing_advance", "overlay_wielded_encyclopedia_survival_advance", "overlay_wielded_encyclopedia_swimming_advance", "overlay_wielded_encyclopedia_tailor_advance", "overlay_wielded_encyclopedia_throw_advance", "overlay_wielded_encyclopedia_traps_advance", "overlay_wielded_encyclopedia_unarmed_advance", "overlay_wielded_evil_invitation", "overlay_wielded_note_apophis", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_"],
+ "id": ["overlay_wielded_mag_archery", "overlay_wielded_book_archery", "overlay_wielded_manual_archery", "overlay_wielded_mag_barter", "overlay_wielded_manual_business", "overlay_wielded_textbook_business", "overlay_wielded_mag_bashing", "overlay_wielded_manual_bashing", "overlay_wielded_SICP", "overlay_wielded_computer_science", "overlay_wielded_howto_computer", "overlay_wielded_mag_computer", "overlay_wielded_manual_computers", "overlay_wielded_textbook_computer", "overlay_wielded_adv_chemistry", "overlay_wielded_brewing_cookbook", "overlay_wielded_cookbook", "overlay_wielded_cookbook_human", "overlay_wielded_cookbook_italian", "overlay_wielded_cookbook_sushi", "overlay_wielded_family_cookbook", "overlay_wielded_mag_cooking", "overlay_wielded_mag_glam", "overlay_wielded_modern_tanner", "overlay_wielded_recipe_alpha", "overlay_wielded_mycenacean_hymns", "overlay_wielded_recipe_animal", "overlay_wielded_recipe_labchem", "overlay_wielded_recipe_chimera", "overlay_wielded_recipe_creepy", "overlay_wielded_recipe_elfa", "overlay_wielded_recipe_maiar", "overlay_wielded_recipe_medicalmut", "overlay_wielded_recipe_raptor", "overlay_wielded_recipe_serum", "overlay_wielded_scots_cookbook", "overlay_wielded_textbook_chemistry", "overlay_wielded_mag_cutting", "overlay_wielded_manual_cutting", "overlay_wielded_manual_knives", "overlay_wielded_mag_dodge", "overlay_wielded_manual_dodge", "overlay_wielded_manual_dodge_kid", "overlay_wielded_textbook_anarch", "overlay_wielded_advanced_electronics", "overlay_wielded_mag_electronics", "overlay_wielded_decoy_anarch", "overlay_wielded_mag_cars", "overlay_wielded_manual_driving", "overlay_wielded_manual_electronics", "overlay_wielded_radio_book", "overlay_wielded_recipe_atomic_battery", "overlay_wielded_recipe_augs", "overlay_wielded_recipe_lab_elec", "overlay_wielded_recipe_mil_augs", "overlay_wielded_repeater_mod_guide", "overlay_wielded_textbook_electronics", "overlay_wielded_textbook_robots", "overlay_wielded_glassblowing_book", "overlay_wielded_jewelry_book", "overlay_wielded_mag_fabrication", "overlay_wielded_manual_fabrication", "overlay_wielded_recipe_arrows", "overlay_wielded_recipe_bows", "overlay_wielded_recipe_bullets", "overlay_wielded_recipe_caseless", "overlay_wielded_recipe_lab_cvd", "overlay_wielded_recipe_melee", "overlay_wielded_recipe_mininuke_launch", "overlay_wielded_textbook_armeast", "overlay_wielded_textbook_armschina", "overlay_wielded_textbook_armwest", "overlay_wielded_textbook_fabrication", "overlay_wielded_textbook_fireman", "overlay_wielded_textbook_gaswarfare", "overlay_wielded_welding_book", "overlay_wielded_101_carpentry", "overlay_wielded_carpentry_book", "overlay_wielded_textbook_weapeast", "overlay_wielded_textbook_weapwest", "overlay_wielded_mag_guns", "overlay_wielded_mag_carpentry", "overlay_wielded_manual_carpentry", "overlay_wielded_textbook_carpentry", "overlay_wielded_emergency_book", "overlay_wielded_mag_firstaid", "overlay_wielded_manual_first_aid", "overlay_wielded_pocket_firstaid", "overlay_wielded_textbook_firstaid", "overlay_wielded_booklet_firstaid", "overlay_wielded_manual_gun", "overlay_wielded_pocket_firearms", "overlay_wielded_mag_launcher", "overlay_wielded_manual_launcher", "overlay_wielded_manual_aikido", "overlay_wielded_manual_boxing", "overlay_wielded_manual_capoeira", "overlay_wielded_manual_centipede", "overlay_wielded_manual_crane", "overlay_wielded_manual_dragon", "overlay_wielded_manual_eskrima", "overlay_wielded_manual_fencing", "overlay_wielded_manual_judo", "overlay_wielded_manual_karate", "overlay_wielded_manual_krav_maga", "overlay_wielded_manual_leopard", "overlay_wielded_manual_lizard", "overlay_wielded_manual_muay_thai", "overlay_wielded_manual_ninjutsu", "overlay_wielded_manual_niten", "overlay_wielded_manual_scorpion", "overlay_wielded_manual_silat", "overlay_wielded_manual_snake", "overlay_wielded_manual_taekwondo", "overlay_wielded_manual_tai_chi", "overlay_wielded_manual_tiger", "overlay_wielded_manual_toad", "overlay_wielded_manual_venom_snake", "overlay_wielded_manual_zui_quan", "overlay_wielded_manual_sojutsu", "overlay_wielded_book_icef", "overlay_wielded_mag_mechanics", "overlay_wielded_manual_mechanics", "overlay_wielded_mag_melee", "overlay_wielded_manual_melee", "overlay_wielded_mag_smg", "overlay_wielded_mag_fieldrepair", "overlay_wielded_textbook_biodiesel", "overlay_wielded_textbook_mechanics", "overlay_wielded_ZSG", "overlay_wielded_black_box_transcript", "overlay_wielded_child_book", "overlay_wielded_commune_prospectus", "overlay_wielded_decoy_elfa", "overlay_wielded_essay_book", "overlay_wielded_fairy_tales", "overlay_wielded_guidebook", "overlay_wielded_manual_smg", "overlay_wielded_mag_tv", "overlay_wielded_dnd_handbook", "overlay_wielded_textbook_speech", "overlay_wielded_holybook_bible1", "overlay_wielded_holybook_bible2", "overlay_wielded_manual_stabbing", "overlay_wielded_holybook_bible3", "overlay_wielded_manual_speech", "overlay_wielded_mag_stabbing", "overlay_wielded_atomic_survival", "overlay_wielded_holybook_hadith", "overlay_wielded_holybook_granth", "overlay_wielded_holybook_kojiki", "overlay_wielded_holybook_kallisti", "overlay_wielded_holybook_mormon", "overlay_wielded_holybook_pastafarian", "overlay_wielded_holybook_quran", "overlay_wielded_holybook_scientology", "overlay_wielded_holybook_slack", "overlay_wielded_holybook_sutras", "overlay_wielded_holybook_talmud", "overlay_wielded_holybook_tanakh", "overlay_wielded_holybook_tripitaka", "overlay_wielded_holybook_upanishads", "overlay_wielded_holybook_vedas", "overlay_wielded_mag_comic", "overlay_wielded_mag_gaming", "overlay_wielded_mag_porn", "overlay_wielded_necropolis_freq", "overlay_wielded_news_regional", "overlay_wielded_novel_adventure", "overlay_wielded_novel_buddy", "overlay_wielded_mag_news", "overlay_wielded_novel_crime", "overlay_wielded_novel_crime2", "overlay_wielded_novel_drama", "overlay_wielded_fun_survival", "overlay_wielded_novel_coa", "overlay_wielded_novel_coa2", "overlay_wielded_mag_dude", "overlay_wielded_novel_erotic", "overlay_wielded_novel_experimental", "overlay_wielded_novel_fantasy", "overlay_wielded_novel_horror", "overlay_wielded_novel_mystery", "overlay_wielded_novel_pulp", "overlay_wielded_mag_survival", "overlay_wielded_manual_survival", "overlay_wielded_pocket_survival", "overlay_wielded_survival_book", "overlay_wielded_novel_road", "overlay_wielded_novel_romance", "overlay_wielded_novel_samurai", "overlay_wielded_novel_satire", "overlay_wielded_novel_scifi", "overlay_wielded_textbook_survival", "overlay_wielded_mag_swimming", "overlay_wielded_novel_sports", "overlay_wielded_novel_spy", "overlay_wielded_novel_swash", "overlay_wielded_novel_thriller", "overlay_wielded_novel_tragedy", "overlay_wielded_novel_war", "overlay_wielded_novel_war2", "overlay_wielded_novel_western", "overlay_wielded_philosophy_book", "overlay_wielded_phonebook", "overlay_wielded_photo_album", "overlay_wielded_plays_book", "overlay_wielded_manual_swimming", "overlay_wielded_poetry_book", "overlay_wielded_priest_diary", "overlay_wielded_record_accounting", "overlay_wielded_record_patient", "overlay_wielded_record_weather", "overlay_wielded_story_book", "overlay_wielded_tall_tales", "overlay_wielded_visions_solitude", "overlay_wielded_holybook_havamal", "overlay_wielded_classic_literature", "overlay_wielded_collector_book", "overlay_wielded_mag_pistol", "overlay_wielded_manual_pistol", "overlay_wielded_mag_rifle", "overlay_wielded_manual_rifle", "overlay_wielded_mag_shotgun", "overlay_wielded_manual_shotgun", "overlay_wielded_manual_swimming", "overlay_wielded_mag_animecon", "overlay_wielded_mag_beauty", "overlay_wielded_mag_tailor", "overlay_wielded_manual_tailor", "overlay_wielded_tailor_portfolio", "overlay_wielded_recipe_fauxfur", "overlay_wielded_textbook_tailor", "overlay_wielded_mag_throwing", "overlay_wielded_manual_throw", "overlay_wielded_howto_traps", "overlay_wielded_mag_traps", "overlay_wielded_manual_traps", "overlay_wielded_textbook_traps", "overlay_wielded_trappers_companion", "overlay_wielded_mag_unarmed", "overlay_wielded_manual_brawl", "overlay_wielded_afs_librarian_book", "overlay_wielded_recipe_lab_cvd", "overlay_wielded_afs_textbook_shotguns", "overlay_wielded_afs_textbook_handguns", "overlay_wielded_afs_textbook_rifles", "overlay_wielded_afs_textbook_launchers", "overlay_wielded_manual_surv", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_encyclopedia_mechanics", "overlay_wielded_encyclopedia_fabrication", "overlay_wielded_encyclopedia_archery", "overlay_wielded_encyclopedia_barter", "overlay_wielded_encyclopedia_bashing", "overlay_wielded_encyclopedia_computer", "overlay_wielded_encyclopedia_cooking", "overlay_wielded_encyclopedia_cutting", "overlay_wielded_encyclopedia_dodge", "overlay_wielded_encyclopedia_driving", "overlay_wielded_encyclopedia_electronics", "overlay_wielded_encyclopedia_firstaid", "overlay_wielded_encyclopedia_gun", "overlay_wielded_encyclopedia_launcher", "overlay_wielded_encyclopedia_melee", "overlay_wielded_encyclopedia_pistol", "overlay_wielded_encyclopedia_rifle", "overlay_wielded_encyclopedia_shotgun", "overlay_wielded_encyclopedia_smg", "overlay_wielded_encyclopedia_speech", "overlay_wielded_encyclopedia_stabbing", "overlay_wielded_encyclopedia_survival", "overlay_wielded_encyclopedia_swimming", "overlay_wielded_encyclopedia_tailor", "overlay_wielded_encyclopedia_throw", "overlay_wielded_encyclopedia_traps", "overlay_wielded_encyclopedia_unarmed", "overlay_wielded_encyclopedia_mechanics_advance", "overlay_wielded_encyclopedia_fabrication_advance", "overlay_wielded_encyclopedia_archery_advance", "overlay_wielded_encyclopedia_barter_advance", "overlay_wielded_encyclopedia_bashing_advance", "overlay_wielded_encyclopedia_computer_advance", "overlay_wielded_encyclopedia_cooking_advance", "overlay_wielded_encyclopedia_cutting_advance", "overlay_wielded_encyclopedia_dodge_advance", "overlay_wielded_encyclopedia_driving_advance", "overlay_wielded_encyclopedia_electronics_advance", "overlay_wielded_encyclopedia_firstaid_advance", "overlay_wielded_encyclopedia_gun_advance", "overlay_wielded_encyclopedia_launcher_advance", "overlay_wielded_encyclopedia_melee_advance", "overlay_wielded_encyclopedia_pistol_advance", "overlay_wielded_encyclopedia_rifle_advance", "overlay_wielded_encyclopedia_shotgun_advance", "overlay_wielded_encyclopedia_smg_advance", "overlay_wielded_encyclopedia_speech_advance", "overlay_wielded_encyclopedia_stabbing_advance", "overlay_wielded_encyclopedia_survival_advance", "overlay_wielded_encyclopedia_swimming_advance", "overlay_wielded_encyclopedia_tailor_advance", "overlay_wielded_encyclopedia_throw_advance", "overlay_wielded_encyclopedia_traps_advance", "overlay_wielded_encyclopedia_unarmed_advance", "overlay_wielded_evil_invitation", "overlay_wielded_note_apophis", "overlay_wielded_tailor_japanese", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_", "overlay_wielded_"],
"fg": 23995
},
{
@@ -120472,10 +121216,7 @@
"id": "overlay_wielded_mounted_spare_tire",
"fg": 24059
},
- {
- "id": "vp_mounted_spare_tire",
- "fg": 24059
- },
+
{
"id": "mon_bear_mega_baby",
"fg": 24060,
@@ -120609,393 +121350,2070 @@
"fg": 24082
},
{
- "id": "magazine_battery_heavy_mod",
- "fg": 24083
+ "id": "magazine_battery_heavy_mod",
+ "fg": 24083
+ },
+ {
+ "id": "overlay_wielded_magazine_battery_heavy_mod",
+ "fg": 24083
+ },
+ {
+ "id": "wire_stock",
+ "fg": 24084
+ },
+ {
+ "id": "overlay_wielded_wire_stock",
+ "fg": 24084
+ },
+ {
+ "id": "belt_clip",
+ "fg": 24085
+ },
+ {
+ "id": "overlay_wielded_belt_clip",
+ "fg": 24085
+ },
+ {
+ "id": "bholster",
+ "fg": 24086
+ },
+ {
+ "id": "overlay_wielded_bholster",
+ "fg": 24086
+ },
+ {
+ "id": "fn1910",
+ "fg": 24087
+ },
+ {
+ "id": "overlay_wielded_fn1910",
+ "fg": 24088
+ },
+ {
+ "id": "fn1910mag",
+ "fg": 24089
+ },
+ {
+ "id": "overlay_wielded_fn1910mag",
+ "fg": 24089
+ },
+ {
+ "id": "j22",
+ "fg": 24090
+ },
+ {
+ "id": "overlay_wielded_j22",
+ "fg": 24091
+ },
+ {
+ "id": "j22mag",
+ "fg": 24092
+ },
+ {
+ "id": "overlay_wielded_j22mag",
+ "fg": 24092
+ },
+ {
+ "id": "kp32",
+ "fg": 24093
+ },
+ {
+ "id": "overlay_wielded_kp32",
+ "fg": 24094
+ },
+ {
+ "id": "kp32mag",
+ "fg": 24095
+ },
+ {
+ "id": "overlay_wielded_kp32mag",
+ "fg": 24095
+ },
+ {
+ "id": "anesthetic_kit",
+ "fg": 24096
+ },
+ {
+ "id": "overlay_wielded_anesthetic_kit",
+ "fg": 24096
+ },
+ {
+ "id": "f_wind_mill",
+ "fg": 24097
+ },
+ {
+ "id": "f_wind_mill_active",
+ "fg": 24098
+ },
+ {
+ "id": "f_water_mill",
+ "fg": 24099
+ },
+ {
+ "id": "f_water_mill_active",
+ "fg": 24100
+ },
+ {
+ "id": "wind_mill",
+ "fg": 24101
+ },
+ {
+ "id": "overlay_wielded_wind_mill",
+ "fg": 24101
+ },
+ {
+ "id": "water_mill",
+ "fg": 24102
+ },
+ {
+ "id": "overlay_wielded_water_mill",
+ "fg": 24102
+ },
+ {
+ "id": "kp3at",
+ "fg": 24103
+ },
+ {
+ "id": "overlay_wielded_kp3at",
+ "fg": 24104
+ },
+ {
+ "id": "kp3atmag",
+ "fg": 24105
+ },
+ {
+ "id": "overlay_wielded_kp3atmag",
+ "fg": 24105
+ },
+ {
+ "id": "kpf9",
+ "fg": 24106
+ },
+ {
+ "id": "overlay_wielded_kpf9",
+ "fg": 24107
+ },
+ {
+ "id": "kpf9mag",
+ "fg": 24108
+ },
+ {
+ "id": "overlay_wielded_kpf9mag",
+ "fg": 24108
+ },
+ {
+ "id": "mac_11",
+ "fg": 24109
+ },
+ {
+ "id": "overlay_wielded_mac_11",
+ "fg": 24110
+ },
+ {
+ "id": "mac11mag",
+ "fg": 24111
+ },
+ {
+ "id": "overlay_wielded_mac11mag",
+ "fg": 24111
+ },
+ {
+ "id": "rugerlcp",
+ "fg": 24112
+ },
+ {
+ "id": "overlay_wielded_rugerlcp",
+ "fg": 24113
+ },
+ {
+ "id": "rugerlcpmag",
+ "fg": 24114
+ },
+ {
+ "id": "overlay_wielded_rugerlcpmag",
+ "fg": 24114
+ },
+ {
+ "id": "corpse_mon_lostsoul",
+ "fg": 24115
+ },
+ {
+ "id": "corpse_mon_lostsoul_mount",
+ "fg": 24116
+ },
+ {
+ "id": "corpse_mon_revenant",
+ "fg": 24117
+ },
+ {
+ "id": "corpse_mon_hell_knight",
+ "fg": 24118
+ },
+ {
+ "id": "corpse_mon_hell_knight_revive",
+ "fg": 24119
+ },
+ {
+ "id": "corpse_mon_hell_baron",
+ "fg": 24120
+ },
+ {
+ "id": "corpse_mon_mancubus",
+ "fg": 24121
+ },
+ {
+ "id": "corpse_mon_cacodemon",
+ "fg": 24122
+ },
+ {
+ "id": "corpse_mon_cacodemon_revive",
+ "fg": 24123
+ },
+ {
+ "id": "corpse_mon_doom_churl",
+ "fg": 24124
+ },
+ {
+ "id": "corpse_mon_doom_churl_revive",
+ "fg": 24125
+ },
+ {
+ "id": "corpse_mon_doom_slave",
+ "fg": 24126
+ },
+ {
+ "id": "corpse_mon_doom_cur",
+ "fg": 24127
+ },
+ {
+ "id": "corpse_mon_doom_sacrifice",
+ "fg": 24128
+ },
+ {
+ "id": ["corpse_mon_doom_archvile", "corpse_mon_doom_archvile_2", "corpse_mon_doom_archvile_3", "corpse_mon_doom_archvile_4", "corpse_mon_doom_archvile_5"],
+ "fg": 24129
+ },
+ {
+ "id": ["corpse_mon_doom_archvile_queen"],
+ "fg": 24130
+ },
+ {
+ "id": ["corpse_mon_fish_eel_large"],
+ "fg": 24131
+ },
+ {
+ "id": ["corpse_mon_fish_flying"],
+ "fg": 24132
+ },
+ {
+ "id": "overlay_wielded_arrow_metal_bodkin",
+ "fg": 24133,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "arrow_metal_bodkin",
+ "fg": 24133,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_arrow_metal_sharpened_fletched",
+ "fg": 24134,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "arrow_metal_sharpened_fletched",
+ "fg": 24134,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_arrow_field_point_fletched",
+ "fg": 24135,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "arrow_field_point_fletched",
+ "fg": 24135,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_arrow_wood",
+ "fg": 24136,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "arrow_wood",
+ "fg": 24136,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_arrow_flamming",
+ "fg": 24137,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "arrow_flamming",
+ "fg": 24137,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_biodiesel",
+ "fg": 24138,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "biodiesel",
+ "fg": 24138,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_cactus_pad",
+ "fg": 24139,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "cactus_pad",
+ "fg": 24139,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_cargo_aisle",
+ "fg": 24140,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "cargo_aisle",
+ "fg": 24140,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "vp_cargo_aisle",
+ "fg": 24140,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_nopalitos",
+ "fg": 24141,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "nopalitos",
+ "fg": 24141,
+ "bg": 957,
+ "rotates": false
+ }, {
+ "id": "overlay_wielded_welding_components",
+ "fg": 24142,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "welding_components",
+ "fg": 24142,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": ["corpse_mon_fish_lobster_giant"],
+ "fg": 24143
+ },
+ {
+ "id": ["corpse_mon_fougar"],
+ "fg": 24144
+ },
+ {
+ "id": ["corpse_mon_feer"],
+ "fg": 24145
+ },
+ {
+ "id": ["corpse_mon_foose"],
+ "fg": 24146
+ },
+ {
+ "id": ["corpse_mon_folf"],
+ "fg": 24147
+ },
+ {
+ "id": ["corpse_mon_fant"],
+ "fg": 24148
+ },
+ {
+ "id": ["corpse_mon_fungaloid_pk"],
+ "fg": 24149
+ },
+ {
+ "id": ["corpse_mon_fardigrade"],
+ "fg": 24150
+ },
+ {
+ "id": ["corpse_mon_furvivor", "corpse_mon_furvivor_glock", "corpse_mon_furvivor_shotgun", "corpse_mon_furvivor_deagle", "corpse_mon_furvivor_smg", "corpse_mon_furvivor_pk"],
+ "fg": 24151
+ },
+ {
+ "id": ["corpse_mon_finebeast"],
+ "fg": 24152
+ },
+ {
+ "id": ["corpse_mon_fionaea"],
+ "fg": 24153
+ },
+ {
+ "id": ["corpse_mon_zombie_electric_fungal"],
+ "fg": 24154
+ },
+ {
+ "id": ["corpse_mon_fungus_pig"],
+ "fg": 24155
+ },
+ {
+ "id": ["corpse_mon_maggot"],
+ "fg": 24156
+ },
+ {
+ "id": ["corpse_mon_caterpillar"],
+ "fg": 24157
+ },
+ {
+ "id": ["corpse_mon_pupae"],
+ "fg": 24158
+ },
+ {
+ "id": ["corpse_mon_pupae_pk"],
+ "fg": 24159
+ },
+ {
+ "id": ["corpse_mon_butterfly"],
+ "fg": 24160
+ },
+ {
+ "id": ["corpse_mon_moth"],
+ "fg": 24161
+ },
+ {
+ "id": ["mon_zombeaver"],
+ "fg": 24162,
+ "bg": 967
+ },
+ {
+ "id": ["corpse_mon_zombeaver"],
+ "fg": 24163,
+ "bg": 967
+ },
+ {
+ "id": ["bag_zipper"],
+ "fg": 24164,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_bag_zipper"],
+ "fg": 24164,
+ "bg": 0
+ },
+ {
+ "id": ["base_ceramic_dish"],
+ "fg": 24165,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_ceramic_dish"],
+ "fg": 24165,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_plastic_dish"],
+ "fg": 24166,
+ "bg": 0
+ },
+ {
+ "id": ["base_plastic_dish"],
+ "fg": 24166,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_tin_dish"],
+ "fg": 24167,
+ "bg": 0
+ },
+ {
+ "id": ["base_tin_dish"],
+ "fg": 24167,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_glass_dish"],
+ "fg": 24168,
+ "bg": 0
+ },
+ {
+ "id": ["base_glass_dish"],
+ "fg": 24168,
+ "bg": 0
+ },
+ {
+ "id": ["t_grave_new"],
+ "fg": 24169,
+ "bg": 0
+ },
+ {
+ "id": ["t_grave_new_season_winter"],
+ "fg": 24170,
+ "bg": 0
+ },
+ {
+ "id": ["f_metal_smoking_rack"],
+ "fg": 24171,
+ "bg": 0
+ },
+ {
+ "id": ["f_metal_smoking_rack_active"],
+ "fg": 24172,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_bscabbard", "overlay_wielded_scabbard"],
+ "fg": 24173,
+ "bg": 0
+ },
+ {
+ "id": ["brush"],
+ "fg": 24174,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_brush"],
+ "fg": 24174,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_can_opener"],
+ "fg": 24175,
+ "bg": 0
+ },
+ {
+ "id": ["can_opener"],
+ "fg": 24175,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_bottle_opener"],
+ "fg": 24176,
+ "bg": 0
+ },
+ {
+ "id": ["bottle_opener"],
+ "fg": 24176,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_corkscrew"],
+ "fg": 24177,
+ "bg": 0
+ },
+ {
+ "id": ["corkscrew"],
+ "fg": 24177,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_peeler"],
+ "fg": 24178,
+ "bg": 0
+ },
+ {
+ "id": ["peeler"],
+ "fg": 24178,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_kettle"],
+ "fg": 24179,
+ "bg": 0
+ },
+ {
+ "id": ["kettle"],
+ "fg": 24179,
+ "bg": 0
+ },
+ {
+ "id": ["knife_bread"],
+ "fg": 24180,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_knife_bread"],
+ "fg": 24181,
+ "bg": 0
+ },
+ {
+ "id": ["knife_carving"],
+ "fg": 24182,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_knife_carving"],
+ "fg": 24183,
+ "bg": 0
+ },
+ {
+ "id": ["whisk"],
+ "fg": 24184,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_whisk"],
+ "fg": 24184,
+ "bg": 0
+ },
+ {
+ "id": ["ladle"],
+ "fg": 24185,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_ladle"],
+ "fg": 24185,
+ "bg": 0
+ },
+ {
+ "id": ["cutting_board"],
+ "fg": 24186,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_cutting_board"],
+ "fg": 24186,
+ "bg": 0
+ },
+ {
+ "id": "vp_mounted_spare_tire",
+ "fg": 24187,
+ "rotates": true
+ },
+ {
+ "id": ["base_utensil"],
+ "fg": 24188,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_utensil"],
+ "fg": 24188,
+ "bg": 0
+ },
+ {
+ "id": ["base_silverware"],
+ "fg": 24189,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_plastic_silverware"],
+ "fg": 24189,
+ "bg": 0
+ },
+ {
+ "id": ["base_plastic_silverware"],
+ "fg": 24190,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_silverware"],
+ "fg": 24190,
+ "bg": 0
+ },
+ {
+ "id": ["base_cookpot"],
+ "fg": 24191,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_cookpot"],
+ "fg": 24191,
+ "bg": 0
+ },
+ {
+ "id": ["carving_fork"],
+ "fg": 24192,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_carving_fork"],
+ "fg": 24192,
+ "bg": 0
+ },
+ {
+ "id": ["plastic_fork"],
+ "fg": 24193,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_plastic_fork"],
+ "fg": 24193,
+ "bg": 0
+ },
+ {
+ "id": ["casserole"],
+ "fg": 24194,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_casserole"],
+ "fg": 24194,
+ "bg": 0
+ },
+ {
+ "id": ["base_kitchen_knife"],
+ "fg": 24195,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_base_kitchen_knife"],
+ "fg": 24195,
+ "bg": 0
+ },
+ {
+ "id": ["ceramic_mug"],
+ "fg": 24196,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_ceramic_mug"],
+ "fg": 24196,
+ "bg": 0
+ },
+ {
+ "id": ["chopsticks"],
+ "fg": 24197,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_chopsticks"],
+ "fg": 24197,
+ "bg": 0
+ },
+ {
+ "id": ["copper_pan"],
+ "fg": 24198,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_copper_pan"],
+ "fg": 24198,
+ "bg": 0
+ },
+ {
+ "id": ["steel_pan"],
+ "fg": 24199,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_steel_pan"],
+ "fg": 24199,
+ "bg": 0
+ },
+ {
+ "id": ["spatula"],
+ "fg": 24200,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_spatula"],
+ "fg": 24200,
+ "bg": 0
+ },
+ {
+ "id": ["rolling_pin"],
+ "fg": 24201,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_rolling_pin"],
+ "fg": 24201,
+ "bg": 0
+ },
+ {
+ "id": ["potato_masher"],
+ "fg": 24202,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_potato_masher"],
+ "fg": 24202,
+ "bg": 0
+ },
+ {
+ "id": ["tin_cup"],
+ "fg": 24203,
+ "bg": 0
+ },
+ {
+ "id": ["overlay_wielded_tin_cup"],
+ "fg": 24203,
+ "bg": 0
+ },
+ {
+ "id": "trenchcoat",
+ "fg": 24204,
+ "rotates": false
+ },
+ {
+ "id": "trenchcoat_fur",
+ "fg": 24205,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "trenchcoat_leather",
+ "fg": 24206,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "trenchcoat_survivor",
+ "fg": 24207,
+ "bg": 957
+ },
+ {
+ "id": "sleeveless_trenchcoat",
+ "fg": 24208,
+ "bg": 957
+ },
+ {
+ "id": "sleeveless_trenchcoat_fur",
+ "fg": 24209,
+ "bg": 957
+ },
+ {
+ "id": "sleeveless_trenchcoat_leather",
+ "fg": 24210,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "sleeveless_trenchcoat_survivor",
+ "fg": 24211,
+ "bg": 957
+ },
+ {
+ "id": "overlay_wielded_trenchcoat",
+ "fg": 24204,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_trenchcoat_fur",
+ "fg": 24205,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_trenchcoat_leather",
+ "fg": 24206,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_trenchcoat_survivor",
+ "fg": 24207,
+ "bg": 957
+ },
+ {
+ "id": "overlay_wielded_sleeveless_trenchcoat",
+ "fg": 24208,
+ "bg": 957
+ },
+ {
+ "id": "overlay_wielded_sleeveless_trenchcoat_fur",
+ "fg": 24209,
+ "bg": 957
+ },
+ {
+ "id": "overlay_wielded_sleeveless_trenchcoat_leather",
+ "fg": 24210,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_sleeveless_trenchcoat_survivor",
+ "fg": 24211,
+ "bg": 957
+ },
+ {
+ "id": "coffee_raw_kentucky",
+ "fg": 24212,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_coffee_raw_kentucky",
+ "fg": 24212,
+ "bg": 957
+ },
+ {
+ "id": "garlic_press",
+ "fg": 24213,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_garlic_press",
+ "fg": 24213,
+ "bg": 957
+ },
+ {
+ "id": "hakama_gi",
+ "fg": 24214
+ },
+ {
+ "id": "overlay_wielded_hakama_gi",
+ "fg": 24214
+ },
+ {
+ "id": "hakama",
+ "fg": 24215
+ },
+ {
+ "id": "overlay_wielded_hakama",
+ "fg": 24215
+ },
+ {
+ "id": "hakama",
+ "fg": 24215
+ },
+ {
+ "id": "overlay_worn_hakama",
+ "fg": 24216
+ },
+ {
+ "id": "overlay_wielded_yukata",
+ "fg": 24217
+ },
+ {
+ "id": "yukata",
+ "fg": 24217
+ },
+ {
+ "id": "overlay_worn_yukata",
+ "fg": 24218
+ },
+ {
+ "id": "overlay_wielded_haori",
+ "fg": 24219
+ },
+ {
+ "id": "haori",
+ "fg": 24219
+ },
+ {
+ "id": "overlay_worn_haori",
+ "fg": 24220
+ },
+ {
+ "id": "naginata_fake",
+ "fg": 24221
+ },
+ {
+ "id": "overlay_wielded_naginata_fake",
+ "fg": 24222
+ },
+ {
+ "id": "naginata_inferior",
+ "fg": 24223
+ },
+ {
+ "id": "overlay_wielded_naginata_inferior",
+ "fg": 24224
+ },
+ {
+ "id": "spear_survivor",
+ "fg": 24225
+ },
+ {
+ "id": "overlay_wielded_spear_survivor",
+ "fg": 24226
+ },
+ {
+ "id": "overlay_wielded_naginata",
+ "fg": 24227
+ },
+ {
+ "id": "overlay_wielded_iron_pot",
+ "fg": 24228
+ },
+ {
+ "id": "iron_pot",
+ "fg": 24228
+ },
+ {
+ "id": "overlay_wielded_knife_chef",
+ "fg": 24229
+ },
+ {
+ "id": "knife_chef",
+ "fg": 24229
+ },
+ {
+ "id": "knife_butcher",
+ "fg": 24230,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_knife_butcher",
+ "fg": 24230,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "knife_vegetable_cleaver",
+ "fg": 24231,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_knife_vegetable_cleaver",
+ "fg": 24231,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "knife_paring",
+ "fg": 24232,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_knife_paring",
+ "fg": 24232,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "plastic_knife",
+ "fg": 24233,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_plastic_knife",
+ "fg": 24233,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "metal_smoking_rack",
+ "fg": 24234,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_metal_smoking_rack",
+ "fg": 24234,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "hand_crank_charger",
+ "fg": 24235,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_hand_crank_charger",
+ "fg": 24235,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "plastic_bowl_kids",
+ "fg": 24236,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_plastic_bowl_kids",
+ "fg": 24236,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "plastic_plate",
+ "fg": 24237,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_plastic_plate",
+ "fg": 24237,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "plastic_spoon",
+ "fg": 24238,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_plastic_spoon",
+ "fg": 24238,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "plastic_spoon_kids",
+ "fg": 24239,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_plastic_spoon_kids",
+ "fg": 24239,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "plastic_straw",
+ "fg": 24240,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_plastic_straw",
+ "fg": 24240,
+ "bg": 957,
+ "rotates": false
+ }, {
+ "id": "light_atomic_battery_cell",
+ "fg": 24241,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_light_atomic_battery_cell",
+ "fg": 24241,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "medium_atomic_battery_cell",
+ "fg": 24242,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_medium_atomic_battery_cell",
+ "fg": 24242,
+ "bg": 957,
+ "rotates": false
+ }, {
+ "id": "heavy_atomic_battery_cell",
+ "fg": 24243,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_heavy_atomic_battery_cell",
+ "fg": 24243,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "light_minus_atomic_battery_cell",
+ "fg": 24244,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_light_minus_atomic_battery_cell",
+ "fg": 24244,
+ "bg": 957,
+ "rotates": false
+ }, {
+ "id": "pressurized_tank_chem",
+ "fg": 24245,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_pressurized_tank_chem",
+ "fg": 24245,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "tailor_japanese",
+ "fg": 24246,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "small_turbine_engine",
+ "fg": 24247,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_small_turbine_engine",
+ "fg": 24247,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "vp_engine_turbine_small",
+ "fg": 24247,
+ "bg": 957,
+ "rotates": false
+ }, {
+ "id": "medium_turbine_engine",
+ "fg": 24248,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_medium_turbine_engine",
+ "fg": 24248,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "vp_engine_turbine_medium",
+ "fg": 24248,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "large_turbine_engine",
+ "fg": 24249,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_large_turbine_engine",
+ "fg": 24249,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "vp_engine_turbine_large",
+ "fg": 24249,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "wine_glass",
+ "fg": 24250,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_wine_glass",
+ "fg": 24250,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "stock_pot",
+ "fg": 24251,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_stock_pot",
+ "fg": 24251,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "tumbler_plastic",
+ "fg": 24252,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_tumbler_plastic",
+ "fg": 24252,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "wheel_rail",
+ "fg": 24253,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_wheel_rail",
+ "fg": 24253,
+ "bg": 957,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_homewrecker",
+ "fg": 24254,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_tardigrade",
+ "fg": 24255,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_wolf_giant_pk",
+ "fg": 24256,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_trapdoor_giant_s",
+ "fg": 24257,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_trapdoor_giant_guardian",
+ "fg": 24258,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_trapdoor_giant_pk",
+ "fg": 24259,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_web_alpha",
+ "fg": 24260,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_web_mu",
+ "fg": 24261,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_web_omega",
+ "fg": 24262,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_spider_jumping_giant_acid",
+ "fg": 24263,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bee_scout",
+ "fg": 24264,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bee_soldier",
+ "fg": 24265,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bee_king",
+ "fg": 24266,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bee_queen",
+ "fg": 24267,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bee_larvae",
+ "fg": 24268,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_wasp_queen",
+ "fg": 24269,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_wasp_larvae",
+ "fg": 24270,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bear_pk",
+ "fg": 24271,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_bear_weak",
+ "fg": 24272,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_cougar_pk",
+ "fg": 24273,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_cougar_weak",
+ "fg": 24274,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_dog_large",
+ "fg": 24275,
+ "bg": 0,
+ "rotates": false
+ }, {
+ "id": "corpse_mon_moose_pk",
+ "fg": 24276,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_moose_weak",
+ "fg": 24277,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_skunk",
+ "fg": 24278,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "mon_robofac_prototype",
+ "fg": 24279,
+ "bg": 967,
+ "rotates": false
},
{
- "id": "overlay_wielded_magazine_battery_heavy_mod",
- "fg": 24083
+ "id": "broken_robofac_prototype",
+ "fg": 24280,
+ "bg": 0,
+ "rotates": false
},
{
- "id": "wire_stock",
- "fg": 24084
+ "id": "overlay_wielded_broken_robofac_prototype",
+ "fg": 24280,
+ "bg": 0,
+ "rotates": false
},
{
- "id": "overlay_wielded_wire_stock",
- "fg": 24084
+ "id": "mon_nursebot",
+ "fg": 24281,
+ "bg": 967,
+ "rotates": false
},
{
- "id": "belt_clip",
- "fg": 24085
+ "id": "mon_nursebot_defective",
+ "fg": 24282,
+ "bg": 967,
+ "rotates": false
},
{
- "id": "overlay_wielded_belt_clip",
- "fg": 24085
+ "id": "mon_marloss_zealot_f",
+ "fg": 24283,
+ "bg": 967,
+ "rotates": false
},
{
- "id": "bholster",
- "fg": 24086
+ "id": "mon_marloss_zealot_m",
+ "fg": 24284,
+ "bg": 967,
+ "rotates": false
+ },
+ {
+ "id": "f_sign_warning",
+ "fg": 24285,
+ "bg": 0,
+ "rotates": false
},
{
- "id": "overlay_wielded_bholster",
- "fg": 24086
+ "id": "t_water_dispenser",
+ "fg": 24286,
+ "bg": 5010,
+ "rotates": false
+ },
+ {
+ "id": "t_card_robofac",
+ "fg": 24287,
+ "bg": 0,
+ "rotates": false
},
{
- "id": "fn1910",
- "fg": 24087
+ "id": "t_intercom",
+ "fg": 24288,
+ "bg": 0,
+ "rotates": false
},
{
- "id": "overlay_wielded_fn1910",
- "fg": 24088
+ "id": "t_thconc_y",
+ "fg": 24289,
+ "bg": 0,
+ "rotates": false
},
{
- "id": "fn1910mag",
- "fg": 24089
+ "id": "vp_rail_wheel",
+ "fg": 24290,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_fn1910mag",
- "fg": 24089
- },
+ "id": "vp_rail_wheel_steerable",
+ "fg": 24290,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "j22",
- "fg": 24090
- },
+ "id": "caltrops_glass",
+ "fg": 24291,
+ "bg": 0,
+ "rotates": true
+ }, {
+ "id": "overlay_wielded_caltrops_glass",
+ "fg": 24291,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_j22",
- "fg": 24091
+ "id": "tr_caltrops_glass",
+ "fg": 24292,
+ "bg": 0,
+ "rotates": true
+ },
+ {
+ "id": "tr_glass",
+ "fg": 24293,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "j22mag",
- "fg": 24092
+ "id": "sandbag",
+ "fg": 24294,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_j22mag",
- "fg": 24092
- },
+ "id": "overlay_wielded_sandbag",
+ "fg": 24294,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "kp32",
- "fg": 24093
+ "id": "earthbag",
+ "fg": 24295,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_kp32",
- "fg": 24094
+ "id": "overlay_wielded_earthbag",
+ "fg": 24295,
+ "bg": 0,
+ "rotates": true
+ }, {
+ "id": "flesh_golem_heart",
+ "fg": 24296,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "kp32mag",
- "fg": 24095
+ "id": "overlay_wielded_flesh_golem_heart",
+ "fg": 24296,
+ "bg": 0,
+ "rotates": true
+ }, {
+ "id": "marloss_scarf",
+ "fg": 24297,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_kp32mag",
- "fg": 24095
+ "id": "overlay_wielded_marloss_scarf",
+ "fg": 24297,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "anesthetic_kit",
- "fg": 24096
- },
- {
- "id": "overlay_wielded_anesthetic_kit",
- "fg": 24096
+ "id": "overlay_worn_marloss_scarf",
+ "fg": 24298,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "f_wind_mill",
- "fg": 24097
+ "id": "broken_nursebot",
+ "fg": 24299,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "f_wind_mill_active",
- "fg": 24098
+ "id": "overlay_wielded_broken_nursebot",
+ "fg": 24299,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "f_water_mill",
- "fg": 24099
+ "id": "broken_nursebot_defective",
+ "fg": 24300,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "f_water_mill_active",
- "fg": 24100
- },
+ "id": "overlay_wielded_broken_nursebot_defective",
+ "fg": 24300,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "wind_mill",
- "fg": 24101
+ "id": "bot_nursebot",
+ "fg": 24301,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_wind_mill",
- "fg": 24101
+ "id": "overlay_wielded_bot_nursebot",
+ "fg": 24301,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "water_mill",
- "fg": 24102
+ "id": "badge_doctor",
+ "fg": 24302,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_water_mill",
- "fg": 24102
+ "id": "overlay_wielded_badge_doctor",
+ "fg": 24302,
+ "bg": 0,
+ "rotates": true
+ }, {
+ "id": "mycenacean_hymns",
+ "fg": 24303,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "kp3at",
- "fg": 24103
+ "id": "phonebook",
+ "fg": 24304,
+ "bg": 0,
+ "rotates": true
+ },
+ {
+ "id": "ar10",
+ "fg": 24305,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_kp3at",
- "fg": 24104
+ "id": "overlay_wielded_ar10",
+ "fg": 24306,
+ "bg": 0,
+ "rotates": true
+ },
+ {
+ "id": "ar10mag_20rd",
+ "fg": 24307,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "kp3atmag",
- "fg": 24105
+ "id": "overlay_wielded_ar10mag_20rd",
+ "fg": 24307,
+ "bg": 0,
+ "rotates": true
},
+ {
+ "id": "glock_18c",
+ "fg": 24308,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_kp3atmag",
- "fg": 24105
+ "id": "overlay_wielded_glock_18c",
+ "fg": 24309,
+ "bg": 0,
+ "rotates": true
+ }, {
+ "id": "m110a1",
+ "fg": 24310,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "kpf9",
- "fg": 24106
- },
+ "id": "overlay_wielded_m110a1",
+ "fg": 24311,
+ "bg": 0,
+ "rotates": true
+ },{
+ "id": "hk417_13",
+ "fg": 24312,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_kpf9",
- "fg": 24107
- },
+ "id": "overlay_wielded_hk417_13",
+ "fg": 24313,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "kpf9mag",
- "fg": 24108
- },
+ "id": "hk417mag_10rd",
+ "fg": 24314,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_kpf9mag",
- "fg": 24108
- },
+ "id": "overlay_wielded_hk417mag_10rd",
+ "fg": 24314,
+ "bg": 0,
+ "rotates": true
+ }, {
+ "id": "hk417mag_20rd",
+ "fg": 24315,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "mac_11",
- "fg": 24109
- },
+ "id": "overlay_wielded_hk417mag_20rd",
+ "fg": 24315,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_mac_11",
- "fg": 24110
- },
+ "id": "light_minus_disposable_cell",
+ "fg": 24316,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "mac11mag",
- "fg": 24111
+ "id": "overlay_wielded_light_minus_disposable_cell",
+ "fg": 24316,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "overlay_wielded_mac11mag",
- "fg": 24111
+ "id": "light_disposable_cell",
+ "fg": 24317,
+ "bg": 0,
+ "rotates": true
+ },
+ {
+ "id": "overlay_wielded_light_disposable_cell",
+ "fg": 24317,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "rugerlcp",
- "fg": 24112
- },
+ "id": "medium_disposable_cell",
+ "fg": 24318,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_rugerlcp",
- "fg": 24113
+ "id": "overlay_wielded_medium_disposable_cell",
+ "fg": 24318,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "rugerlcpmag",
- "fg": 24114
- },
+ "id": "heavy_disposable_cell",
+ "fg": 24319,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "overlay_wielded_rugerlcpmag",
- "fg": 24114
+ "id": "overlay_wielded_heavy_disposable_cell",
+ "fg": 24319,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "corpse_mon_lostsoul",
- "fg": 24115
- },
+ "id": "robofac_enviro_suit",
+ "fg": 24320,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "corpse_mon_lostsoul_mount",
- "fg": 24116
+ "id": "overlay_wielded_robofac_enviro_suit",
+ "fg": 24320,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "corpse_mon_revenant",
- "fg": 24117
+ "id": "overlay_worn_robofac_enviro_suit",
+ "fg": 24321,
+ "bg": 0,
+ "rotates": true
},
{
- "id": "corpse_mon_hell_knight",
- "fg": 24118
- },
+ "id": "robofac_test_data",
+ "fg": 24322,
+ "bg": 0,
+ "rotates": true
+ },
{
- "id": "corpse_mon_hell_knight_revive",
- "fg": 24119
- },
+ "id": "overlay_wielded_robofac_test_data",
+ "fg": 24322,
+ "bg": 0,
+ "rotates": true
+ },
+ {
+ "id": "f_planter",
+ "fg": 24323,
+ "bg": 24323,
+ "rotates": false
+ },
+ {
+ "id": "f_planter_seed",
+ "fg": 1550,
+ "bg": 24323,
+ "rotates": false
+ },
+ {
+ "id": "f_planter_seedling",
+ "fg": 1551,
+ "bg": 24323,
+ "rotates": false
+ },
{
- "id": "corpse_mon_hell_baron",
- "fg": 24120
- },
+ "id": "f_planter_mature",
+ "fg": 1549,
+ "bg": 24323,
+ "rotates": false
+ },
{
- "id": "corpse_mon_mancubus",
- "fg": 24121
- },
+ "id": "f_planter_harvest",
+ "fg": 1548,
+ "bg": 24323,
+ "rotates": false
+ },
{
- "id": "corpse_mon_cacodemon",
- "fg": 24122
+ "id": "f_ground_crafting_spot",
+ "fg": 24324,
+ "rotates": false
},
{
- "id": "corpse_mon_cacodemon_revive",
- "fg": 24123
+ "id": "30gal_firebarrel",
+ "fg": 24325,
+ "rotates": false
+ },
+ {
+ "id": "overlay_wielded_30gal_firebarrel",
+ "fg": 24325,
+ "rotates": false
},
{
- "id": "corpse_mon_doom_churl",
- "fg": 24124
+ "id": "f_30gal_firebarrel",
+ "fg": 24325,
+ "bg": 967,
+ "rotates": false
},
{
- "id": "corpse_mon_doom_churl_revive",
- "fg": 24125
+ "id": "55gal_firebarrel",
+ "fg": 24326,
+ "rotates": false
},
- {
- "id": "corpse_mon_doom_slave",
- "fg": 24126
- },
{
- "id": "corpse_mon_doom_cur",
- "fg": 24127
+ "id": "overlay_wielded_55gal_firebarrel",
+ "fg": 24326,
+ "rotates": false
},
{
- "id": "corpse_mon_doom_sacrifice",
- "fg": 24128
+ "id": "f_55gal_firebarrel",
+ "fg": 24326,
+ "bg": 967,
+ "rotates": false
},
- {
- "id": ["corpse_mon_doom_archvile", "corpse_mon_doom_archvile_2", "corpse_mon_doom_archvile_3", "corpse_mon_doom_archvile_4", "corpse_mon_doom_archvile_5"],
- "fg": 24129
+ {
+ "id": ["f_bluebell_season_winter", "f_dahlia_season_winter", "f_datura_season_winter", "f_flower_marloss_season_winter", "f_dandelion_season_winter", "f_chamomile_season_winter", "f_flower_tulip_season_winter", "f_flower_spurge_season_winter", "f_cattails_season_winter", "f_black_eyed_susan_season_winter", "f_lily_season_winter", "f_sunflower_season_winter", "f_mutpoppy_season_winter"],
+ "fg": 24327,
+ "bg": 0,
+ "rotates": false
},
{
- "id": ["corpse_mon_doom_archvile_queen"],
- "fg": 24130
+ "id": "f_cattails_season_winter",
+ "fg": 24328,
+ "bg": 0,
+ "rotates": false
},
{
- "id": ["corpse_mon_fish_eel_large"],
- "fg": 24131
- },
- {
- "id": ["corpse_mon_fish_flying"],
- "fg": 24132
- },
+ "id": "corpse_mon_goat",
+ "fg": 24329,
+ "bg": 0,
+ "rotates": false
+ },
{
- "id": "overlay_wielded_arrow_metal_bodkin",
- "fg": 24133,
- "bg": 957,
+ "id": "corpse_mon_robin",
+ "fg": 24330,
+ "bg": 0,
"rotates": false
- },
+ },
{
- "id": "arrow_metal_bodkin",
- "fg": 24133,
- "bg": 957,
+ "id": "corpse_mon_pidgeon",
+ "fg": 24331,
+ "bg": 0,
"rotates": false
},
{
- "id": "overlay_wielded_arrow_metal_sharpened_fletched",
- "fg": 24134,
- "bg": 957,
+ "id": "corpse_mon_bjay",
+ "fg": 24332,
+ "bg": 0,
"rotates": false
- },
+ },
{
- "id": "arrow_metal_sharpened_fletched",
- "fg": 24134,
- "bg": 957,
+ "id": "corpse_mon_gull",
+ "fg": 24333,
+ "bg": 0,
"rotates": false
},
{
- "id": "overlay_wielded_arrow_field_point_fletched",
- "fg": 24135,
- "bg": 957,
+ "id": "corpse_mon_coyote_small",
+ "fg": 24334,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_mole_large",
+ "fg": 24335,
+ "bg": 0,
"rotates": false
},
+ {
+ "id": ["corpse_mon_deer_small", "corpse_mon_deer_rutting"],
+ "fg": 24336,
+ "bg": 0,
+ "rotates": false
+ },
{
- "id": "arrow_field_point_fletched",
- "fg": 24135,
- "bg": 957,
+ "id": "corpse_mon_pig_saber",
+ "fg": 24337,
+ "bg": 0,
"rotates": false
- },
+ },
{
- "id": "overlay_wielded_arrow_wood",
- "fg": 24136,
- "bg": 957,
+ "id": "corpse_mon_cyborg_guard",
+ "fg": 24338,
+ "bg": 0,
"rotates": false
},
{
- "id": "arrow_wood",
- "fg": 24136,
- "bg": 957,
+ "id": "corpse_mon_cyborg_cop",
+ "fg": 24339,
+ "bg": 0,
"rotates": false
- },
+ },
+ {
+ "id": "corpse_mon_biollante_pk",
+ "fg": 24340,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "mon_vinebeast_pk",
+ "fg": 24341,
+ "rotates": false
+ },
{
- "id": "overlay_wielded_arrow_flamming",
- "fg": 24137,
- "bg": 957,
+ "id": "corpse_mon_vinebeast_pk",
+ "fg": 24342,
"rotates": false
- },
+ },
{
- "id": "arrow_flamming",
- "fg": 24137,
- "bg": 957,
+ "id": "corpse_mon_creeper_root",
+ "fg": 24343,
"rotates": false
- },
+ },
{
- "id": "overlay_wielded_biodiesel",
- "fg": 24138,
- "bg": 957,
+ "id": "corpse_mon_triffid_pk",
+ "fg": 24344,
"rotates": false
},
{
- "id": "biodiesel",
- "fg": 24138,
- "bg": 957,
+ "id": "mon_vinebeast_terminal",
+ "fg": 24345,
"rotates": false
},
{
- "id": "overlay_wielded_cactus_pad",
- "fg": 24139,
- "bg": 957,
+ "id": "corpse_mon_vinebeast_terminal",
+ "fg": 24346,
+ "rotates": false
+ }, {
+ "id": "corpse_mon_dionaea_sprout",
+ "fg": 24347,
"rotates": false
},
{
- "id": "cactus_pad",
- "fg": 24139,
- "bg": 957,
+ "id": "corpse_mon_dionaea",
+ "fg": 24348,
"rotates": false
},
{
- "id": "overlay_wielded_cargo_aisle",
- "fg": 24140,
- "bg": 957,
+ "id": "corpse_mon_dog_zombie_rot_worms",
+ "fg": 24349,
"rotates": false
},
{
- "id": "cargo_aisle",
- "fg": 24140,
- "bg": 957,
+ "id": "corpse_mon_dog_zombie_rot_pain",
+ "fg": 24350,
"rotates": false
- },
+ },
{
- "id": "vp_cargo_aisle",
- "fg": 24140,
- "bg": 957,
+ "id": "corpse_mon_zolf_shady",
+ "fg": 24351,
"rotates": false
- },
+ },
{
- "id": "overlay_wielded_nopalitos",
- "fg": 24141,
- "bg": 957,
+ "id": "corpse_mon_horse_zombie",
+ "fg": 24352,
"rotates": false
- },
+ },
{
- "id": "nopalitos",
- "fg": 24141,
- "bg": 957,
+ "id": "corpse_mon_zombie_dog_pk",
+ "fg": 24353,
"rotates": false
- }, {
- "id": "overlay_wielded_welding_components",
- "fg": 24142,
- "bg": 957,
- "rotates": false
- },
+ },
{
- "id": "welding_components",
- "fg": 24142,
- "bg": 957,
+ "id": "corpse_mon_dog_skeleton_pk",
+ "fg": 24354,
"rotates": false
- },
+ },
{
"id": "atlatl",
"fg": 1986,
"bg": 0,
"rotates": false
},
-
{
"id": "overlay_wielded_corpse",
"fg": 1840,
@@ -122658,6 +125076,65 @@
"fg": 35788,
"bg": 0,
"rotates": false
+ },
+ {
+ "id": "mon_flesh_golem",
+ "fg": 35789,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "mon_fleshy_shambler",
+ "fg": 35790,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_flesh_golem",
+ "fg": 35791,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_fleshy_shambler",
+ "fg": 35792,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "mon_pig_saber",
+ "fg": 35793,
+ "bg": 0,
+ "rotates": false
+ }, {
+ "id": "mon_gelatin",
+ "fg": 35794,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "mon_mi_go_terminal",
+ "fg": 35795,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "mon_mi_go_fly",
+ "fg": 35796,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_mi_go_terminal",
+ "fg": 35797,
+ "bg": 0,
+ "rotates": false
+ },
+ {
+ "id": "corpse_mon_mi_go_fly",
+ "fg": 35798,
+ "bg": 0,
+ "rotates": false
}
]
diff --git a/lang/extract_json_strings.py b/lang/extract_json_strings.py
index 66fe3ecb2c435..6beddb5797b24 100755
--- a/lang/extract_json_strings.py
+++ b/lang/extract_json_strings.py
@@ -62,6 +62,7 @@ def warning_supressed(filename):
# these objects have no translatable strings
ignorable = {
+ "behavior",
"BULLET_PULLING",
"city_building",
"colordef",
diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot
index 8bb18d6451008..9cde84e3d7ca8 100644
--- a/lang/po/cataclysm-dda.pot
+++ b/lang/po/cataclysm-dda.pot
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: cataclysm-dda 0.D\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-05-18 14:37+0800\n"
+"POT-Creation-Date: 2019-05-31 15:51+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -120,13 +120,17 @@ msgid "Plastic jacketed copper cable of the type used in small electronics."
msgstr ""
#: lang/json/AMMO_from_json.py
-msgid "plutonium cell"
+msgid "plutonium fuel cell"
msgstr ""
-#. ~ Description for plutonium cell
+#. ~ Description for plutonium fuel cell
#: lang/json/AMMO_from_json.py
msgid ""
-"A nuclear-powered battery. Used to charge advanced and rare electronics."
+"This is neither a fuel cell, nor nuclear, but the name stuck. It uses "
+"plutonium-244 as a catalyst to stabilize a complicated nanocompound that can "
+"store enormous amounts of power. Unfortunately it cannot be recharged by "
+"conventional means: expended cells had to be sent to a central reprocessing "
+"facility that almost certainly doesn't exist anymore."
msgstr ""
#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py
@@ -880,7 +884,7 @@ msgstr ""
msgid ""
"A variety of powerful hypnotic, analgetic, and stimulative drugs. It's "
"intended for use in specialized medical equipment, and can't be administered "
-"manually. You can reload an anesthetic kit with it."
+"manually. You can reload an anesthesia kit with it."
msgstr ""
#: lang/json/AMMO_from_json.py
@@ -3620,6 +3624,80 @@ msgstr ""
msgid "A handful of darts, useful as ammunition for blowguns."
msgstr ""
+#: lang/json/AMMO_from_json.py
+msgid "plutonium cell"
+msgstr ""
+
+#: lang/json/AMMO_from_json.py
+msgid "chunk of rubber"
+msgid_plural "chunks of rubber"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for chunk of rubber
+#: lang/json/AMMO_from_json.py
+msgid "A chunk of useful rubber, can be molded easily."
+msgstr ""
+
+#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py
+msgid "lead pellets"
+msgstr ""
+
+#. ~ Description for lead pellets
+#: lang/json/AMMO_from_json.py
+msgid ""
+"A round tin of small light grain .177 lead pellets. These are common, "
+"tipped field pellets that can deal some light damage but are generally used "
+"for plinking."
+msgstr ""
+
+#: lang/json/AMMO_from_json.py
+msgid "domed HP pellets"
+msgstr ""
+
+#. ~ Description for domed HP pellets
+#: lang/json/AMMO_from_json.py
+msgid ""
+"A stable, heavier grain lead pellet with the purpose of expanding upon "
+"hitting a target for maximized damage, the dome shape allows it to pack "
+"quite a punch for something so small"
+msgstr ""
+
+#: lang/json/AMMO_from_json.py
+msgid "tipped HP pellets"
+msgstr ""
+
+#. ~ Description for tipped HP pellets
+#: lang/json/AMMO_from_json.py
+msgid ""
+"A medium grain lead pellet tipped with a pointed bit of hard plastic with "
+"the purpose of maximum expansion upon hitting a target."
+msgstr ""
+
+#: lang/json/AMMO_from_json.py
+msgid "alloy pellets"
+msgstr ""
+
+#. ~ Description for alloy pellets
+#: lang/json/AMMO_from_json.py
+msgid ""
+"An gimmicky alloy pellet with the purpose of reaching a higher velocity than "
+"a normal lead pellet for breaking the sound barrier resulting in an "
+"extremely loud crack, not so useful for stealth."
+msgstr ""
+
+#: lang/json/AMMO_from_json.py
+msgid "pulse round"
+msgstr ""
+
+#. ~ Description for pulse round
+#: lang/json/AMMO_from_json.py
+msgid ""
+"A helical magazine of hollow-point alloy bullets propelled by pockets of "
+"primer. Not the most lethal thing out there, but it still packs a punch "
+"without the worry of having a stray shot seriously damaging the environment."
+msgstr ""
+
#: lang/json/AMMO_from_json.py
msgid "6.54x42mm 9N8"
msgid_plural "6.54x42mm 9N8"
@@ -3971,6 +4049,19 @@ msgid ""
"burn hotly upon impact, piercing armor and igniting flammable substances."
msgstr ""
+#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py
+msgid "crystallized mana"
+msgid_plural "crystallized mana"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for crystallized mana
+#: lang/json/AMMO_from_json.py
+msgid ""
+"Some crystallized mana. This can be reloaded into rechargable mana crystals, "
+"but can never be unloaded."
+msgstr ""
+
#: lang/json/AMMO_from_json.py
msgid "bronze"
msgid_plural "bronze"
@@ -5314,6 +5405,7 @@ msgstr[1] ""
#. ~ Use action holster_msg for pair of knee-high boots.
#. ~ Use action holster_msg for pair of rollerblades.
#. ~ Use action holster_msg for pair of rollerskates.
+#. ~ Use action holster_msg for C.R.I.T web belt.
#: lang/json/ARMOR_from_json.py
#, no-python-format
msgid "You sheath your %s"
@@ -8556,6 +8648,19 @@ msgid ""
"in different ways to protect the head and mouth from the elements."
msgstr ""
+#: lang/json/ARMOR_from_json.py
+msgid "cyan scarf"
+msgid_plural "cyan scarfs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for cyan scarf
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A simple cloth scarf worn by Marloss Voices. Wherever the Voices go, long "
+"sought peace soon follows, for better or for worse."
+msgstr ""
+
#: lang/json/ARMOR_from_json.py
msgid "keikogi"
msgid_plural "keikogis"
@@ -10608,6 +10713,7 @@ msgstr[1] ""
#. ~ Use action holster_prompt for survivor belt.
#. ~ Use action holster_prompt for survivor utility belt.
+#. ~ Use action holster_prompt for C.R.I.T web belt.
#: lang/json/ARMOR_from_json.py
msgid "Sheath blade"
msgstr ""
@@ -11432,6 +11538,21 @@ msgid ""
"separate gas mask for full protection."
msgstr ""
+#: lang/json/ARMOR_from_json.py
+msgid "Hub 01 enviromental suit"
+msgid_plural "Hub 01 enviromental suits"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Hub 01 enviromental suit
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A lightweight environmental suit worn by Hub personnel in their rare forays "
+"aboveground. Colored brown and blue, the white seal of Hub 01 is "
+"embroidered on both of its upper arms. It requires a separate gas mask for "
+"full protection."
+msgstr ""
+
#: lang/json/ARMOR_from_json.py
msgid "entry suit"
msgid_plural "entry suits"
@@ -11516,6 +11637,7 @@ msgstr[1] ""
#. ~ Use action holster_msg for MBR vest (superalloy).
#. ~ Use action holster_msg for large grenade pouch.
#. ~ Use action holster_msg for MBR vest (titanium).
+#. ~ Use action holster_msg for javelin bag.
#: lang/json/ARMOR_from_json.py
#, no-python-format
msgid "You stash your %s."
@@ -11545,6 +11667,19 @@ msgid ""
"man-bear-pig."
msgstr ""
+#: lang/json/ARMOR_from_json.py
+msgid "tarpaulin"
+msgid_plural "tarpaulins"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for tarpaulin
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A plastic sheet with several grommets for securing it with rope or cord. "
+"Useful for improvised rain protection."
+msgstr ""
+
#: lang/json/ARMOR_from_json.py
msgid "survivor utility belt"
msgid_plural "survivor utility belts"
@@ -12338,7 +12473,7 @@ msgstr[1] ""
#: lang/json/ARMOR_from_json.py
msgid ""
"A pair of inline skates. Very fast on flat floors, but they make it hard to "
-"move on rough terrain, or to dodge effectively."
+"move on rough terrain, take hits, or to dodge effectively."
msgstr ""
#: lang/json/ARMOR_from_json.py
@@ -12351,7 +12486,8 @@ msgstr[1] ""
#: lang/json/ARMOR_from_json.py
msgid ""
"An old-fashioned pair of leather rollerskates with steel frames. While "
-"quite fast on flat floors, they make it difficult to move on rough terrain."
+"quite fast on flat floors, they make it difficult to take hits or to move on "
+"rough terrain."
msgstr ""
#: lang/json/ARMOR_from_json.py
@@ -12591,6 +12727,20 @@ msgid ""
"good, but aren't made for running."
msgstr ""
+#. ~ Description for pair of rollerblades
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A pair of inline skates. Very fast on flat floors, but they make it hard to "
+"move on rough terrain, or to dodge effectively."
+msgstr ""
+
+#. ~ Description for pair of rollerskates
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"An old-fashioned pair of leather rollerskates with steel frames. While "
+"quite fast on flat floors, they make it difficult to move on rough terrain."
+msgstr ""
+
#: lang/json/ARMOR_from_json.py
msgid "bag of holding"
msgid_plural "bag of holdings"
@@ -12790,6 +12940,387 @@ msgid ""
"improve its protection. It has four pouches capable of carrying magazines."
msgstr ""
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T face mask"
+msgid_plural "C.R.I.T face masks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T face mask
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"This is the C.R.I.T standard issue face mask, lined with kevlar for extra "
+"protection. A few filters provide decent enviromental safety, but it was not "
+"intended for extended use. It has a basic integrated HUD."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T boots"
+msgid_plural "pair of C.R.I.T bootss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T boots
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue boots. Next-gen gels keep feet comfortable and "
+"hygenic during long-term missions while absorbing shock and heat from "
+"outside-sources. Superalloy mesh and rubber offer quite a bit of chemical "
+"protection as well. Decently heavy though"
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T LA boots"
+msgid_plural "pairs of C.R.I.T LA boots"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T LA boots
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T skeletonized boots. Based off of C.R.I.T boots, the light-armor "
+"variant was created for missions in warmer climates. The LA boots keep most "
+"of the old features of the standard issue boots but trade in protection for "
+"easier movement."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T fingertip-less gloves"
+msgid_plural "pair of C.R.I.T fingertip-less glovess"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T fingertip-less gloves
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue gloves. Made with superalloy mesh for those with gene-"
+"modding and/or mutations while still allowing greater manipulation of items "
+"and moderate protection."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T fingertip-less liners"
+msgid_plural "pair of C.R.I.T fingertip-less linerss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T fingertip-less liners
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue glove liners. Made with neroprene and rubber mesh for "
+"warmth and fingertip-less for those with gene-modding and/or mutations while "
+"still allowing greater manipulation of items and moderate protection."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T backpack"
+msgid_plural "C.R.I.T backpacks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T backpack
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue pack. Based on the MOLLE backpack's design, this "
+"smaller pack strikes a fine balance between storage space and encumbrance "
+"and allows a larger weapon to be holstered, drawing and holstering is still "
+"rather awkward even with the magnetized clips, but practice helps."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T chestrig"
+msgid_plural "C.R.I.T chestrigs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T chestrig
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots "
+"for light-armor padding."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T leg guards"
+msgid_plural "C.R.I.T leg guardss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T leg guards
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue leg armor. Simple design and durable material allows "
+"for easy movement and the padding keeps the legs safe and warm in colder "
+"conditions."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T arm guards"
+msgid_plural "pairs of C.R.I.T arm guards"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T arm guards
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A pair of arm guards made from superalloy molded upon neoprene, and then "
+"insulated with rubber. They are sturdy and will block attacks, but they are "
+"ridiculously heavy."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T web belt"
+msgid_plural "C.R.I.T web belts"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T web belt
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on your "
+"hip."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T infantry duster"
+msgid_plural "C.R.I.T infantry dusters"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T infantry duster
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A thick full-length duster coat with rubber insulation. Mildly encumbering, "
+"but rather protective against any anti-infantry electrical discharges from "
+"the robots. Has several pockets for storage."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "R&D Engineering Suit"
+msgid_plural "R&D Engineering Suits"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for R&D Engineering Suit
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"An airtight, flexible suit of woven composite fibers complete with segmented "
+"plates of armor. A complex system digitizes items in an individual pocket "
+"universe for storage while built in joint-torsion ratchets generate the "
+"neccessary energy required to power the interface."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T Armored Anomaly Suit"
+msgid_plural "C.R.I.T Armored Anomaly Suits"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Armored Anomaly Suit
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A relatively simple suit of armor. A suit of woven composite fibers combined "
+"with a cleansuit core and strategically placed segmented kevlar plates keep "
+"the suit light-weight and the one wearing it alive while offering superb "
+"resistance to the elements and ambient radiation. "
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T drop leg pouch"
+msgid_plural "C.R.I.T drop leg pouches"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T drop leg pouch
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A set of pouches that can be worn on the thighs using buckled straps. This "
+"variety is more compact and is favored by the C.R.I.T for its ease of use."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T Enforcer armor assembly"
+msgid_plural "C.R.I.T Enforcer armor assemblys"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Enforcer armor assembly
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A series of plates, guards and buckles which assemble into a suit of sturdy "
+"body-armor which usually goes over other armor. Overlapping steel plates on "
+"top of kevlar plates cover vast expanses as the armor juts off in places so "
+"it can deflect attacks. Built with the idea that comfort is less important "
+"than safety, this heavy suit is difficult to move about in but highly "
+"protective. Various adjustable conectors such as straps and clips hold it "
+"together."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T Enforcer docks"
+msgid_plural "pairs of C.R.I.T Enforcer docks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T Enforcer docks
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T Enforcer docks. Metal plates vaguely molded into the shape of "
+"oversized feet which clamp down onto your owm footwear keep your feet out of "
+"harms way. It looks terrible and feels clunky unlike most of C.R.I.T's "
+"designs, but they do seem to be worth using if you were to be in the middle "
+"of a warzone."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T Soldier Suit"
+msgid_plural "C.R.I.T Soldier Suits"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Soldier Suit
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A suit of modern body-armor. Strategically placed superalloy plates keep the "
+"suit's weight minimal while kevlar plates other areas and a lining of soft "
+"neoprene pads areas for extra comfort. Most importantly, this can be worn "
+"comfortably under other armor."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T Lone Wolf Series Armor"
+msgid_plural "C.R.I.T Lone Wolf Series Armors"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Lone Wolf Series Armor
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A matte black suit of outdated and bulky looking plate armor fitted onto a "
+"soft kevlar body-suit. Retrofitted with new armor improvements, this heavy "
+"armor will definitely protect you from practically anything. Just make sure "
+"you can actually walk with it on though."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T blouse"
+msgid_plural "C.R.I.T blouses"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T blouse
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue blouse. Durable, lightweight, and has ample storage. "
+"Super-flex neoprene keeps one warm in moderately cold weather while a sleek "
+"design keeps it from being too flashy. A zipper at the back and front allows "
+"for quick donning and doffing."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T trousers"
+msgid_plural "C.R.I.T trouserss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T trousers
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue trousers. Durable, lightweight and has ample storage. "
+"Super-flex neoprene keeps one warm in moderately cold weather."
+msgstr ""
+
+#. ~ Description for C.R.I.T trousers
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight "
+"and it offers ok pockets. Super-flex neoprene keeps one warm in moderately "
+"cold weather."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T helmet liner"
+msgid_plural "C.R.I.T helmet liners"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T helmet liner
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T shoes"
+msgid_plural "pairs of C.R.I.T dress shoes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T shoes
+#: lang/json/ARMOR_from_json.py
+msgid "A sleek pair of dress shoes. Fancy but easy on the eyes."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of C.R.I.T rec gloves"
+msgid_plural "pair of C.R.I.T rec glovess"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of C.R.I.T rec gloves
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are "
+"made with cotton with a neoprene lining for grip-pads and warmth. "
+msgstr ""
+
+#. ~ Description for C.R.I.T web belt
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your "
+"hip."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T rec duster"
+msgid_plural "C.R.I.T rec dusters"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T rec duster
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A waterproofed full-length duster coat. Made with neoprene, comfort and "
+"functionality meet together to form a fancy but sleek contemporary design. "
+"It has several pockets for storage."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T rec hat"
+msgid_plural "C.R.I.T rec hats"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T rec hat
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"Functionality meets fashion in this waterproofed C.R.I.T standard issue rec "
+"cover. Thick enough to provide warmth in colder weather, this hat shares the "
+"same sleek design of most of C.R.I.T's gear."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "C.R.I.T canteen"
+msgid_plural "C.R.I.T canteens"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T canteen
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A simple, durable steel canteen that can heat up food with built in "
+"plutonium heating elements."
+msgstr ""
+
#. ~ Description for pistol bandolier
#: lang/json/ARMOR_from_json.py
msgid ""
@@ -12803,6 +13334,63 @@ msgid_plural "shotgun bandoliers"
msgstr[0] ""
msgstr[1] ""
+#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py
+msgid "pair of magical armored stone gauntlets"
+msgid_plural "pairs of armored gauntlets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of magical armored stone gauntlets
+#: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py
+msgid "A magical flexible stonelike substance for protection and attack."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "magic lamp"
+msgid_plural "magic lamps"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for magic lamp
+#: lang/json/ARMOR_from_json.py
+msgid "a magical light source that will light up a small area."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "magic light"
+msgid_plural "magic lights"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for magic light
+#: lang/json/ARMOR_from_json.py
+msgid "A small magical light that you can read by."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "large shield of magical ice"
+msgid_plural "large shield of magical ices"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for large shield of magical ice
+#: lang/json/ARMOR_from_json.py
+msgid "A lightweight but tough shield crafted entirely of magical ice."
+msgstr ""
+
+#: lang/json/ARMOR_from_json.py
+msgid "pair of slick icy coatings on your feet"
+msgid_plural "slick icy coatings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pair of slick icy coatings on your feet
+#: lang/json/ARMOR_from_json.py
+msgid ""
+"A magical slick icy coating on your feet. While quite fast on flat floors, "
+"they make it difficult to move on rough terrain."
+msgstr ""
+
#: lang/json/ARMOR_from_json.py
msgid "Corinthian helm"
msgid_plural "Corinthian helms"
@@ -12971,19 +13559,6 @@ msgid ""
"prehistoric times."
msgstr ""
-#: lang/json/ARMOR_from_json.py
-msgid "tarpaulin"
-msgid_plural "tarpaulins"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for tarpaulin
-#: lang/json/ARMOR_from_json.py
-msgid ""
-"A plastic sheet with several grommets for securing it with rope or cord. "
-"Useful for improvised rain protection."
-msgstr ""
-
#: lang/json/BIONIC_ITEM_from_json.py
msgid "abstract bionic module"
msgid_plural "abstract bionic modules"
@@ -14136,19 +14711,6 @@ msgid ""
"10% boost to your speed."
msgstr ""
-#: lang/json/BIONIC_ITEM_from_json.py
-msgid "Internal Storage CBM"
-msgid_plural "Internal Storage CBMs"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for Internal Storage CBM
-#: lang/json/BIONIC_ITEM_from_json.py
-msgid ""
-"Space inside your chest cavity has been converted into a storage area. You "
-"may carry an extra 2 liters of volume."
-msgstr ""
-
#: lang/json/BIONIC_ITEM_from_json.py
msgid "Muscle Augmentation CBM"
msgid_plural "Muscle Augmentation CBMs"
@@ -14618,10 +15180,21 @@ msgid ""
"than others."
msgstr ""
-#. ~ Description for Solar Panels
+#: lang/json/BIONIC_ITEM_from_json.py
+msgid "Internal Storage CBM"
+msgid_plural "Internal Storage CBMs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Internal Storage CBM
+#: lang/json/BIONIC_ITEM_from_json.py
+msgid ""
+"Space inside your chest cavity has been converted into a storage area. You "
+"may carry an extra 2 liters of volume."
+msgstr ""
+
#. ~ Description for Solar Panels CBM
#: lang/json/BIONIC_ITEM_from_json.py
-#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py
msgid ""
"Installed on your back is a set of retractable solar panels. When in direct "
"sunlight, they will automatically deploy and slowly recharge your power "
@@ -15453,6 +16026,257 @@ msgid ""
"guides."
msgstr ""
+#: lang/json/BOOK_from_json.py
+msgid "schematics generic"
+msgid_plural "schematics generics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for schematics generic
+#. ~ Description for nearby fire
+#. ~ Description for muscle
+#. ~ Description for wind
+#. ~ Description for a smoking device and a source of flame
+#. ~ Description for abstract map
+#. ~ Description for weapon
+#. ~ Description for seeing this is a bug
+#: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py
+#: lang/json/GENERIC_from_json.py
+#: lang/json/TOOL_from_json.py
+#: lang/json/skill_from_json.py
+msgid "seeing this is a bug"
+msgid_plural "seeing this is a bugs"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/BOOK_from_json.py
+msgid "nurse bot schematics"
+msgid_plural "nurse bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for nurse bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Bearing the logo of Uncanny, those are assembly plans, design specs, and "
+"technical drawings for the nurse bot. Most of this is useless to you, but "
+"you could use the assembly plans to re-assemble the robot from salvaged "
+"parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "police bot schematics"
+msgid_plural "police bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for police bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the police bot. "
+"Most of this is useless to you, but you could use the assembly plans to re-"
+"assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "eyebot schematics"
+msgid_plural "eyebot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for eyebot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the eyebot. Most of "
+"this is useless to you, but you could use the assembly plans to re-assemble "
+"the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "security bot schematics"
+msgid_plural "security bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for security bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the security bot. "
+"Most of this is useless to you, but you could use the assembly plans to re-"
+"assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "skitterbot schematics"
+msgid_plural "skitterbot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for skitterbot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the skitterbot. "
+"Most of this is useless to you, but you could use the assembly plans to re-"
+"assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "chicken walker schematics"
+msgid_plural "chicken walker schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for chicken walker schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Bearing the logo of Northrop, those are assembly plans, design specs, and "
+"technical drawings for the chicken walker. Most of this is useless to you, "
+"but you could use the assembly plans to re-assemble the robot from salvaged "
+"parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "cleaner bot schematics"
+msgid_plural "cleaner bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for cleaner bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the cleaner bot. "
+"Most of this is useless to you, but you could use the assembly plans to re-"
+"assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "miner bot schematics"
+msgid_plural "miner bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for miner bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the miner bot. Most "
+"of this is useless to you, but you could use the assembly plans to re-"
+"assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "riot control bot schematics"
+msgid_plural "riot control bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for riot control bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the riot control "
+"bot. Most of this is useless to you, but you could use the assembly plans to "
+"re-assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "lab defense bot schematics"
+msgid_plural "lab defense bot schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for lab defense bot schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the lab defense "
+"bot. Most of this is useless to you, but you could use the assembly plans to "
+"re-assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "tank drone schematics"
+msgid_plural "tank drone schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for tank drone schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Bearing the logo of Northrop, those are assembly plans, design specs, and "
+"technical drawings for the tank drone. Most of this is useless to you, but "
+"you could use the assembly plans to re-assemble the robot from salvaged "
+"parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "tripod schematics"
+msgid_plural "tripod schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for tripod schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Bearing the logo of Honda, those are assembly plans, design specs, and "
+"technical drawings for the tripod. Most of this is useless to you, but you "
+"could use the assembly plans to re-assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "dispatch schematics"
+msgid_plural "dispatch schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for dispatch schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Bearing the logo of Northrop, those are assembly plans, design specs, and "
+"technical drawings for the dispatch. Most of this is useless to you, but you "
+"could use the assembly plans to re-assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "military dispatch schematics"
+msgid_plural "military dispatch schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for military dispatch schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Bearing the logo of Northrop, those are assembly plans, design specs, and "
+"technical drawings for the military dispatch. Most of this is useless to "
+"you, but you could use the assembly plans to re-assemble the robot from "
+"salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "anti-materiel turret schematics"
+msgid_plural "anti-materiel turret schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for anti-materiel turret schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the anti-materiel "
+"turret. Most of this is useless to you, but you could use the assembly plans "
+"to re-assemble the robot from salvaged parts."
+msgstr ""
+
+#: lang/json/BOOK_from_json.py
+msgid "milspec searchlight schematics"
+msgid_plural "milspec searchlight schematics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for milspec searchlight schematics
+#: lang/json/BOOK_from_json.py
+msgid ""
+"Assembly plans, design specs, and technical drawings for the milspec "
+"searchlight. Most of this is useless to you, but you could use the assembly "
+"plans to re-assemble the robot from salvaged parts."
+msgstr ""
+
#: lang/json/BOOK_from_json.py
msgid "The Art of Glassblowing"
msgid_plural "The Art of Glassblowing"
@@ -16126,6 +16950,19 @@ msgid ""
"Panic\"."
msgstr ""
+#: lang/json/BOOK_from_json.py
+msgid "Mycenacean Hymns"
+msgid_plural "Mycenacean Hymnss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Mycenacean Hymns
+#: lang/json/BOOK_from_json.py
+msgid ""
+"A vellum book containing the hymns central to Marloss faith. As the verses "
+"lead to each other, the text sings of unity and promised paradise."
+msgstr ""
+
#: lang/json/BOOK_from_json.py
msgid "King James Bible"
msgid_plural "King James Bibles"
@@ -19029,6 +19866,30 @@ msgstr[1] ""
msgid "Fermented, but not distilled whiskey. No longer tastes sweet."
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "fermenting gin mash"
+msgid_plural "fermenting gin mashes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for fermenting gin mash
+#: lang/json/COMESTIBLE_from_json.py
+msgid "Undistilled gin mash. Distilling it will produce gin."
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "gin mash"
+msgid_plural "gin mashes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for gin mash
+#: lang/json/COMESTIBLE_from_json.py
+msgid ""
+"Gin mash, after the junipers have had time to add flavour, ready to be "
+"distilled or drunk as is."
+msgstr ""
+
#: lang/json/COMESTIBLE_from_json.py
msgid "vodka wort"
msgstr ""
@@ -19946,6 +20807,19 @@ msgstr[1] ""
msgid "A traditional south Asian mixed-spice tea with milk."
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "chamomile tea"
+msgid_plural "chamomile tea"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for chamomile tea
+#: lang/json/COMESTIBLE_from_json.py
+msgid ""
+"A healthy beverage made from chamomile flowers steeped in boiling water. "
+"Can be used to treat insomnia."
+msgstr ""
+
#: lang/json/COMESTIBLE_from_json.py
msgid "chocolate drink"
msgstr ""
@@ -24810,6 +25684,19 @@ msgstr[1] ""
msgid "A handful of tasty crunchy nuts from a pinecone."
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "handful of junipers"
+msgid_plural "handful of junipers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for handful of junipers
+#: lang/json/COMESTIBLE_from_json.py
+msgid ""
+"Junipers, for making gin and earthy flavours. Spicy, tastes similar to "
+"rosemary."
+msgstr ""
+
#: lang/json/COMESTIBLE_from_json.py
msgid "handful of shelled pistachios"
msgid_plural "handfuls of shelled pistachios"
@@ -24960,17 +25847,6 @@ msgstr[1] ""
msgid "A handful of roasted nuts from a chestnut tree."
msgstr ""
-#: lang/json/COMESTIBLE_from_json.py
-msgid "handful of roasted acorns"
-msgid_plural "handfuls of roasted acorns"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for handful of roasted acorns
-#: lang/json/COMESTIBLE_from_json.py
-msgid "A handful of roasted nuts from a oak tree."
-msgstr ""
-
#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py
msgid "handful of hazelnuts"
msgid_plural "handfuls of shelled hazelnuts"
@@ -25063,6 +25939,12 @@ msgid ""
"they're not very good for you to eat in this state."
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "handful of roasted acorns"
+msgid_plural "handfuls of roasted acorns"
+msgstr[0] ""
+msgstr[1] ""
+
#. ~ Description for handful of roasted acorns
#: lang/json/COMESTIBLE_from_json.py
msgid "A handful roasted nuts from an oak tree."
@@ -25550,14 +26432,14 @@ msgstr[1] ""
msgid "This is food for dogs. It smells strange, but dogs seem to love it."
msgstr ""
-#: lang/json/COMESTIBLE_from_json.py
+#: lang/json/COMESTIBLE_from_json.py lang/json/TOOL_from_json.py
msgid "cat food"
msgid_plural "cat food"
msgstr[0] ""
msgstr[1] ""
#. ~ Description for cat food
-#: lang/json/COMESTIBLE_from_json.py
+#: lang/json/COMESTIBLE_from_json.py lang/json/TOOL_from_json.py
msgid "This is food for cats. It smells strange, but cats seem to love it."
msgstr ""
@@ -26206,13 +27088,13 @@ msgid ""
msgstr ""
#: lang/json/COMESTIBLE_from_json.py
-msgid "fluid sac"
+msgid "fungal fluid sac"
msgstr ""
-#. ~ Description for fluid sac
+#. ~ Description for fungal fluid sac
#: lang/json/COMESTIBLE_from_json.py
msgid ""
-"A fluid bladder from a plant based lifeform. Not very nutritious, but fine "
+"A fluid bladder from a fungus based lifeform. Not very nutritious, but fine "
"to eat anyway."
msgstr ""
@@ -26307,13 +27189,14 @@ msgid "A nutrient rich chunk of plant matter, could be eaten raw or cooked."
msgstr ""
#: lang/json/COMESTIBLE_from_json.py
-msgid "tainted veggie"
+msgid "alien fungus chunk"
msgstr ""
-#. ~ Description for tainted veggie
+#. ~ Description for alien fungus chunk
#: lang/json/COMESTIBLE_from_json.py
msgid ""
-"Vegetable that looks poisonous. You could eat it, but it will poison you."
+"This is a chunk of fungal matter from some sort of alien mushroom creature. "
+"Eating unfamiliar mushrooms is a bad idea."
msgstr ""
#: lang/json/COMESTIBLE_from_json.py
@@ -26868,6 +27751,72 @@ msgstr ""
msgid "garlic"
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "cattail seeds"
+msgid_plural "cattail seeds"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for cattail seeds
+#: lang/json/COMESTIBLE_from_json.py
+msgid "Some cattail seeds. You could probably plant these."
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "cattail"
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "dahlia seeds"
+msgid_plural "dahlia seeds"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for dahlia seeds
+#: lang/json/COMESTIBLE_from_json.py
+msgid "Some dahlia seeds. You could probably plant these."
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py
+#: lang/json/furniture_from_json.py
+msgid "dahlia"
+msgid_plural "dahlias"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "decorative plant seeds"
+msgid_plural "decorative plant seeds"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for decorative plant seeds
+#: lang/json/COMESTIBLE_from_json.py
+msgid ""
+"Some small decorative plant seeds, likely grass or flower. You could "
+"probably plant these, but don't expect them to be useful for anything other "
+"than dry plant material."
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "decorative plant"
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "cactus seeds"
+msgid_plural "cactus seeds"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for cactus seeds
+#: lang/json/COMESTIBLE_from_json.py
+msgid "Some cactus seeds. You could probably plant these."
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "cactus"
+msgstr ""
+
#: lang/json/COMESTIBLE_from_json.py
msgid "garlic clove"
msgid_plural "garlic cloves"
@@ -27274,6 +28223,21 @@ msgstr[1] ""
msgid "Some roasted coffee beans, can be ground into powder."
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "chamomile seeds"
+msgid_plural "chamomile seeds"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for chamomile seeds
+#: lang/json/COMESTIBLE_from_json.py
+msgid "Some chamomile seeds."
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py
+msgid "chamomile"
+msgstr ""
+
#: lang/json/COMESTIBLE_from_json.py
msgid "broth"
msgstr ""
@@ -27967,15 +28931,13 @@ msgid ""
msgstr ""
#: lang/json/COMESTIBLE_from_json.py
-msgid "dehydrated tainted veggy"
-msgid_plural "dehydrated tainted veggies"
-msgstr[0] ""
-msgstr[1] ""
+msgid "dehydrated alien fungus chunk"
+msgstr ""
-#. ~ Description for dehydrated tainted veggy
+#. ~ Description for dehydrated alien fungus chunk
#: lang/json/COMESTIBLE_from_json.py
msgid ""
-"Pieces of poisonous veggy that have been dried to prevent them from rotting "
+"Pieces of alien mushroom that have been dried to prevent them from rotting "
"away. It will still poison you if you eat this."
msgstr ""
@@ -28432,7 +29394,41 @@ msgid ""
msgstr ""
#: lang/json/COMESTIBLE_from_json.py
-msgid "antibiotics"
+msgid "vampire mutagen"
+msgstr ""
+
+#. ~ Description for vampire mutagen
+#. ~ Description for wendigo mutagen
+#: lang/json/COMESTIBLE_from_json.py
+msgid "Mutagen cocktail simply labeled 'C.R.I.T R&D.'"
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "vampire serum"
+msgstr ""
+
+#. ~ Description for vampire serum
+#: lang/json/COMESTIBLE_from_json.py
+msgid ""
+"A super-concentrated pitch-black substance with silvery flecks that reminds "
+"you of a starry-night sky. You need a syringe to inject it... if you really "
+"want to?"
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "wendigo mutagen"
+msgstr ""
+
+#: lang/json/COMESTIBLE_from_json.py
+msgid "wendigo serum"
+msgstr ""
+
+#. ~ Description for wendigo serum
+#: lang/json/COMESTIBLE_from_json.py
+msgid ""
+"A super-concentrated peat-brown substance with glittering green flecks that "
+"reminds you of a a tree. You need a syringe to inject it... if you really "
+"want to?"
msgstr ""
#: lang/json/COMESTIBLE_from_json.py
@@ -29075,6 +30071,10 @@ msgstr[1] ""
msgid "This rice flour is useful for baking."
msgstr ""
+#: lang/json/COMESTIBLE_from_json.py
+msgid "antibiotics"
+msgstr ""
+
#: lang/json/COMESTIBLE_from_json.py
msgid "revival serum"
msgstr ""
@@ -29110,7 +30110,7 @@ msgstr[1] ""
msgid "A huge plastic barrel with a resealable lid."
msgstr ""
-#: lang/json/CONTAINER_from_json.py
+#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py
msgid "steel drum (100L)"
msgid_plural "steel drums (100L)"
msgstr[0] ""
@@ -29121,7 +30121,7 @@ msgstr[1] ""
msgid "A huge steel barrel with a resealable lid."
msgstr ""
-#: lang/json/CONTAINER_from_json.py
+#: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py
msgid "steel drum (200L)"
msgid_plural "steel drums (200L)"
msgstr[0] ""
@@ -29264,6 +30264,17 @@ msgid ""
"Emphysema And May Complicate Pregnancy."
msgstr ""
+#: lang/json/CONTAINER_from_json.py
+msgid "small cardboard box"
+msgid_plural "small cardboard boxes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for small cardboard box
+#: lang/json/CONTAINER_from_json.py
+msgid "A small cardboard box. No bigger than a foot in dimension."
+msgstr ""
+
#: lang/json/CONTAINER_from_json.py
msgid "cardboard box"
msgid_plural "cardboard boxes"
@@ -29272,7 +30283,21 @@ msgstr[1] ""
#. ~ Description for cardboard box
#: lang/json/CONTAINER_from_json.py
-msgid "A small cardboard box. No bigger than a foot in dimension."
+msgid ""
+"A sturdy cardboard box, about the size of a banana box. Great for packing."
+msgstr ""
+
+#: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py
+msgid "large cardboard box"
+msgid_plural "large cardboard boxes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for large cardboard box
+#: lang/json/CONTAINER_from_json.py
+msgid ""
+"A very large cardboard box, the sort children would have loved to hide in, "
+"when there were still children."
msgstr ""
#: lang/json/CONTAINER_from_json.py
@@ -30486,21 +31511,6 @@ msgstr ""
msgid "nearby fire"
msgstr ""
-#. ~ Description for nearby fire
-#. ~ Description for muscle
-#. ~ Description for wind
-#. ~ Description for a smoking device and a source of flame
-#. ~ Description for abstract map
-#. ~ Description for weapon
-#. ~ Description for seeing this is a bug
-#: lang/json/GENERIC_from_json.py
-#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py
-#: lang/json/TOOL_from_json.py lang/json/skill_from_json.py
-msgid "seeing this is a bug"
-msgid_plural "seeing this is a bugs"
-msgstr[0] ""
-msgstr[1] ""
-
#: lang/json/GENERIC_from_json.py
msgid "muscle"
msgstr ""
@@ -30765,6 +31775,19 @@ msgstr[1] ""
msgid "A USB thumb drive. Useful for holding software."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "data card"
+msgid_plural "data cards"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for data card
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Some type of advanced data storage device. Useful for storing very large "
+"amounts of information."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "golf tee"
msgid_plural "golf tees"
@@ -31204,6 +32227,19 @@ msgid ""
"Could be gutted for parts."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "broken prototype robot"
+msgid_plural "broken prototype robots"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken prototype robot
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken prototype robot, well more broken than before. Could be gutted for "
+"parts."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "broken miner bot"
msgid_plural "broken miner bots"
@@ -31971,12 +33007,6 @@ msgid ""
"flower."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
-msgid "dahlia"
-msgid_plural "dahlias"
-msgstr[0] ""
-msgstr[1] ""
-
#. ~ Description for dahlia
#: lang/json/GENERIC_from_json.py
msgid "A dahlia stalk with some petals."
@@ -32180,6 +33210,18 @@ msgid ""
"be eaten by animals."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "handful of chamomile flowers"
+msgid_plural "handfuls of chamomile flowers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for handful of chamomile flowers
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"White chamomile flowers, used as a herbal remedy since the ancient times."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "lump of clay"
msgid_plural "lumps of clay"
@@ -32213,6 +33255,55 @@ msgstr[1] ""
msgid "Some mortar, ready to be used in building projects."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "soft adobe brick"
+msgid_plural "soft adobe bricks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action msg for soft adobe brick.
+#: lang/json/GENERIC_from_json.py
+msgid "You test the brick, and it seems solid enough to use."
+msgstr ""
+
+#. ~ Use action not_ready_msg for soft adobe brick.
+#: lang/json/GENERIC_from_json.py
+msgid "The brick is still too damp to bear weight."
+msgstr ""
+
+#. ~ Description for soft adobe brick
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A compacted mass of soil and natural fibers, still too wet to build with. "
+"Load it onto a pallet and leave it to dry."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "adobe brick"
+msgid_plural "adobe bricks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for adobe brick
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A compacted mass of soil and natural fibers, baked dry enough to harden into "
+"a brick."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "adobe mortar"
+msgid_plural "adobe mortar"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for adobe mortar
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A thick, pasty mud, low in sand content to reduce crumbling once dry. Used "
+"to glue larger, heavier pieces of mud and clay together."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "tanbark"
msgid_plural "tanbarks"
@@ -32523,6 +33614,19 @@ msgid ""
"become smokable."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "desiccated corpse"
+msgid_plural "desiccated corpses"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for desiccated corpse
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A badly mangled and desiccated partial corpse. It seems whatever thing "
+"killed him did so with a single swipe of a gigantic claw."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "science ID card"
msgid_plural "science ID cards"
@@ -32845,30 +33949,6 @@ msgid ""
"likely evolved."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "heavy stick"
-msgid_plural "heavy sticks"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for heavy stick
-#: lang/json/GENERIC_from_json.py
-msgid "A sturdy, heavy stick. Makes a decent melee weapon."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "long stick"
-msgid_plural "long sticks"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for long stick
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A long stick. Makes a decent melee weapon, and can be broken into heavy "
-"sticks for crafting."
-msgstr ""
-
#: lang/json/GENERIC_from_json.py
msgid "sharpened rebar"
msgid_plural "sharpened rebars"
@@ -33225,19 +34305,6 @@ msgid ""
"resulting weapon is unwieldy and slow but very heavy hitting."
msgstr ""
-#: lang/json/GENERIC_from_json.py src/crafting_gui.cpp
-msgid "two by four"
-msgid_plural "two by fours"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for two by four
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A plank of wood. Makes a decent melee weapon, and can be used to board up "
-"doors and windows if you have a hammer and nails."
-msgstr ""
-
#: lang/json/GENERIC_from_json.py
msgid "pipe"
msgid_plural "pipes"
@@ -34369,6 +35436,306 @@ msgid ""
"massive underground complex."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "module template"
+msgid_plural "module templates"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for module template
+#: lang/json/GENERIC_from_json.py
+msgid "This is a template for robot module. If found in a game it is a bug."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "targeting module"
+msgid_plural "targeting modules"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for targeting module
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This module integrate visual and proprioceptive information from peripheric "
+"sensors and outputs information necessary for accurate aiming."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "identification module"
+msgid_plural "identification modules"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for identification module
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This module continuously runs image recognition algorithms to identify "
+"friends from foe."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "pathfinding module"
+msgid_plural "pathfinding modules"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pathfinding module
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This module uses a combination of vector integration and egocentric mapping "
+"to find the best path available."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "memory banks module"
+msgid_plural "memory banks modules"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for memory banks module
+#: lang/json/GENERIC_from_json.py
+msgid "Allows for storage and recovery of information."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "sensor array"
+msgid_plural "sensor arrays"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for sensor array
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A wide range of sensors meant to give the ability to perceive the "
+"surrounding world."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "self monitoring sensors"
+msgid_plural "self monitoring sensorss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for self monitoring sensors
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A array of sensors and diagnostic modules allowing the robot to perceive "
+"itself."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "AI core"
+msgid_plural "AI cores"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for AI core
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This module is responsible for decision making, it basically runs the AI of "
+"the robot."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "basic AI core"
+msgid_plural "basic AI cores"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for basic AI core
+#: lang/json/GENERIC_from_json.py
+msgid "A very basic AI core with minimal cognitive abilities."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "advanced AI core"
+msgid_plural "advanced AI cores"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for advanced AI core
+#: lang/json/GENERIC_from_json.py
+msgid "An advanced AI core with impressive cognitive abilities."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "gun operating system"
+msgid_plural "gun operating systems"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for gun operating system
+#: lang/json/GENERIC_from_json.py
+msgid "This system can operate most conventional weapons."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of spidery legs"
+msgid_plural "sets of spidery legs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of spidery legs
+#: lang/json/GENERIC_from_json.py
+msgid "A set of big pointy legs, like the ones found under a tripod."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of tiny spidery legs"
+msgid_plural "sets of tiny spidery legs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of tiny spidery legs
+#: lang/json/GENERIC_from_json.py
+msgid "A set of tiny pointy legs, like the ones found under a skitterbot."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of reverse-jointed legs"
+msgid_plural "sets of reverse-jointed legs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of reverse-jointed legs
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A set of reverse-jointed legs, like the ones found under a chicken walker."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of omni wheels"
+msgid_plural "sets of omni wheels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of omni wheels
+#: lang/json/GENERIC_from_json.py
+msgid "A set of omni wheels, like the ones found under a police bot."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of rotors"
+msgid_plural "sets of rotors"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of rotors
+#: lang/json/GENERIC_from_json.py
+msgid "A set of rotors able to lift a small drone."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of android legs"
+msgid_plural "sets of android legs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of android legs
+#: lang/json/GENERIC_from_json.py
+msgid "A set of human-like legs."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of android arms"
+msgid_plural "sets of android arms"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of android arms
+#: lang/json/GENERIC_from_json.py
+msgid "A set of human-like arms."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "set of small tank tread"
+msgid_plural "sets of small tank tread"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for set of small tank tread
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A set of small tank tread, like the one used by the \"Beagle\" mini-tank."
+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] ""
+
+#. ~ Description for turret chassis
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"What's left when you remove all moving parts and electronics. It's the "
+"skeleton and armor of a turret."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "tripod chassis"
+msgid_plural "tripod chassis"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for tripod chassis
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"What's left when you remove all moving parts and electronics. It's the "
+"skeleton and armor of the tripod."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "chicken walker chassis"
+msgid_plural "chicken walker chassis"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for chicken walker chassis
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"What's left when you remove all moving parts and electronics. It's the "
+"skeleton and armor of the chicken walker."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "police bot chassis"
+msgid_plural "police bot chassis"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for police bot chassis
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"What's left when you remove all moving parts and electronics. It's the "
+"skeleton and armor of the police bot."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "android skeleton"
+msgid_plural "android skeletons"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for android skeleton
+#: lang/json/GENERIC_from_json.py
+msgid "What's left when you strip an android body from its components."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "Beagle chassis"
+msgid_plural "Beagle chassis"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Beagle chassis
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"What's left when you remove all moving parts and electronics. It's the "
+"skeleton and armor of the Beagle tank."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py src/cata_tiles.cpp
#: src/cata_tiles.cpp src/options.cpp
msgid "software"
@@ -34453,6 +35820,23 @@ msgstr[1] ""
msgid "Logistical data on subterranean train routes and schedules."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "neural data"
+msgid_plural "neural data"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for neural data
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Data stolen from a dead scientist memory banks. Is the owner of these "
+"thoughts still hidden here, amidst the unreadable data; or are these just a "
+"collection of the precious moments of someone's life?\n"
+"\n"
+"Whatever the case, the idea of perpetually keeping a part of you within a "
+"metallic pill makes you feel uncomfortable."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "atomic coffee maker"
msgid_plural "atomic coffee makers"
@@ -34462,9 +35846,11 @@ msgstr[1] ""
#. ~ Description for atomic coffee maker
#: lang/json/GENERIC_from_json.py
msgid ""
-"Never sacrifice taste for convenience, when you can have both with the "
-"Rivtech atomic coffee maker! Its simple and robust atomic-age construction "
-"guarantees a service life of at least 160 million years."
+"This is a Curie-G coffeemaker, by CuppaTech. It famously uses a radioactive "
+"generator to heat water for coffee. Normally the water is heated using "
+"energy stored in a capacitor, and makes ordinary coffee. However, as a "
+"special feature, water from the RTG containment area can be used, giving the "
+"coffee a very special kick. The Curie-G is illegal in most countries."
msgstr ""
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
@@ -34474,7 +35860,7 @@ msgstr[0] ""
msgstr[1] ""
#. ~ Use action menu_text for atomic lamp.
-#. ~ Use action menu_text for atomic nightlight.
+#. ~ Use action menu_text for atomic reading light.
#: lang/json/GENERIC_from_json.py
msgid "Close cover"
msgstr ""
@@ -34487,10 +35873,11 @@ msgstr ""
#. ~ Description for atomic lamp
#: lang/json/GENERIC_from_json.py
msgid ""
-"Enjoy the serene Cherenkov-blue glow of the Rivtech atomic desk lamp, and "
-"feel confident that you won't have to worry about depleting its power supply "
-"for at least 40 million years of faithful service. Use it to close the "
-"cover and hide the light."
+"Powered by the magic of nuclear decay and low-energy LEDs, this very "
+"expensive lamp will emit a small amount of light for at least a decade. "
+"Before the Cataclysm, it was mostly an expensive way to show off your "
+"preparedness. Now, it's actually pretty cool. Use it to close the cover "
+"and hide the light."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -34500,7 +35887,7 @@ msgstr[0] ""
msgstr[1] ""
#. ~ Use action menu_text for atomic lamp (covered).
-#. ~ Use action menu_text for atomic nightlight (covered).
+#. ~ Use action menu_text for atomic reading light (covered).
#: lang/json/GENERIC_from_json.py
msgid "Open cover"
msgstr ""
@@ -34513,50 +35900,67 @@ msgstr ""
#. ~ Description for atomic lamp (covered)
#: lang/json/GENERIC_from_json.py
msgid ""
-"Enjoy the serene Cherenkov-blue glow of the Rivtech atomic desk lamp, and "
-"feel confident that you won't have to worry about depleting its power supply "
-"for at least 40 million years of faithful service. The cover is closed. "
-"Use it to open the cover and show the light."
+"Powered by the magic of nuclear decay and low-energy LEDs, this very "
+"expensive lamp will emit a small amount of light for at least a decade. "
+"Before the Cataclysm, it was mostly an expensive way to show off your "
+"preparedness. Now, it's actually pretty cool. The cover is closed. Use it "
+"to open the cover and show the light."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "atomic nightlight"
-msgid_plural "atomic nightlights"
+#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py
+msgid "atomic reading light"
+msgid_plural "atomic reading lights"
msgstr[0] ""
msgstr[1] ""
-#. ~ Use action msg for atomic nightlight.
+#. ~ Use action msg for atomic reading light.
#: lang/json/GENERIC_from_json.py
msgid "You close the nightlight's cover."
msgstr ""
-#. ~ Description for atomic nightlight
+#. ~ Description for atomic reading light
#: lang/json/GENERIC_from_json.py
msgid ""
-"Enjoy the serene Cherenkov-blue glow of the Rivtech atomic nightlight, and "
-"feel confident that you won't have to worry about depleting its power supply "
-"for at least 160 million years of faithful service. Use it to close the "
-"cover and hide the light."
+"Powered by the magic of nuclear decay and low-energy LEDs, this extremely "
+"expensive little light will provide just enough light to read by for at "
+"least a decade. It is also available with a cute cartoon bear cover to turn "
+"it into a nightlight for a very wealthy child with a fear of the dark. Use "
+"it to close the cover and hide the light."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "atomic nightlight (covered)"
-msgid_plural "atomic nightlights (covered)"
+msgid "atomic reading light (covered)"
+msgid_plural "atomic reading lights (covered)"
msgstr[0] ""
msgstr[1] ""
-#. ~ Use action msg for atomic nightlight (covered).
+#. ~ Use action msg for atomic reading light (covered).
#: lang/json/GENERIC_from_json.py
msgid "You open the nightlight's cover."
msgstr ""
-#. ~ Description for atomic nightlight (covered)
+#. ~ Description for atomic reading light (covered)
#: lang/json/GENERIC_from_json.py
msgid ""
-"Enjoy the serene Cherenkov-blue glow of the Rivtech atomic nightlight, and "
-"feel confident that you won't have to worry about depleting its power supply "
-"for at least 160 million years of faithful service. The cover is closed. "
-"Use it to open the cover and show the light."
+"Powered by the magic of nuclear decay and low-energy LEDs, this extremely "
+"expensive little light will provide just enough light to read by for at "
+"least a decade. It is also available with a cute cartoon bear cover to turn "
+"it into a nightlight for a very wealthy child with a fear of the dark. The "
+"cover is closed. Use it to open the cover and show the light."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "mind splicer kit"
+msgid_plural "mind splicer kits"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for mind splicer kit
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Surgical forceps, cables and a modified smartphone inside a small plastic "
+"pouch. Assembled to steal the mind of some poor man, these are tools of the "
+"creepy high-tech sandman."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -34736,7 +36140,8 @@ msgstr[1] ""
#: lang/json/GENERIC_from_json.py
msgid ""
"A folding grappling hook attached to a stout 30-foot long piece of "
-"lightweight cord. Useful for keeping yourself safe from falls."
+"lightweight cord. Useful for keeping yourself safe from falls. Can be used "
+"in place of a long rope for butchering, in a pinch."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -34974,338 +36379,6 @@ msgid ""
"used for pressure sensitive chemical reactions."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "foldable-light frame"
-msgid_plural "foldable-light frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for foldable-light frame
-#: lang/json/GENERIC_from_json.py
-msgid "A small foldable lightweight frame made from pipework."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "foldable wooden frame"
-msgid_plural "foldable wooden frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for foldable wooden frame
-#: lang/json/GENERIC_from_json.py
-msgid "A small foldable frame made from scrap wood."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "extra-light frame"
-msgid_plural "extra-light frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for extra-light frame
-#: lang/json/GENERIC_from_json.py
-msgid "A small lightweight frame made from pipework. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "steel frame"
-msgid_plural "steel frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for steel frame
-#: lang/json/GENERIC_from_json.py
-msgid "A large frame made of steel. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "wire basket"
-msgid_plural "wire baskets"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for wire basket
-#: lang/json/GENERIC_from_json.py
-msgid "A large wire basket from a shopping cart."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "folding wire basket"
-msgid_plural "folding wire baskets"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for folding wire basket
-#: lang/json/GENERIC_from_json.py
-msgid "A large wire basket from a shopping cart, modified to be foldable."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "bike basket"
-msgid_plural "bike baskets"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for bike basket
-#: lang/json/GENERIC_from_json.py
-msgid "A simple bike basket. It is small and foldable."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "wooden frame"
-msgid_plural "wooden frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for wooden frame
-#: lang/json/GENERIC_from_json.py
-msgid "A large frame made of wood. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "light wooden frame"
-msgid_plural "light wooden frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for light wooden frame
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A small frame made of few pieces of wood, held together by rope. Useful for "
-"crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "heavy duty frame"
-msgid_plural "heavy duty frames"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for heavy duty frame
-#: lang/json/GENERIC_from_json.py
-msgid "A large, reinforced steel frame, used in military vehicle construction."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "seat"
-msgid_plural "seats"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for seat
-#: lang/json/GENERIC_from_json.py
-msgid "A soft car seat covered with leather."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "fancy table"
-msgid_plural "fancy tables"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for fancy table
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A very fancy table from a very fancy RV. If times were better it might be "
-"useful for something more than firewood."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "wooden table"
-msgid_plural "wooden tables"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for wooden table
-#: lang/json/GENERIC_from_json.py
-msgid "A crude wooden table."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "workbench"
-msgid_plural "workbenchs"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for workbench
-#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
-msgid ""
-"A sturdy workbench built out of metal. It is perfect for crafting large and "
-"heavy things."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "saddle"
-msgid_plural "saddles"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for saddle
-#: lang/json/GENERIC_from_json.py
-msgid "A leather-covered seat designed to be straddled."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "muffler"
-msgid_plural "mufflers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for muffler
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting "
-"recipes."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "vehicle controls"
-msgid_plural "sets of vehicle controls"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for vehicle controls
-#: lang/json/GENERIC_from_json.py
-msgid "A set of various vehicle controls. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "dashboard"
-msgid_plural "dashboards"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for dashboard
-#. ~ Description for electronics control unit
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A vehicle instrument panel with various gauges and switches. Useful for "
-"crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "electronics control unit"
-msgid_plural "electronics control units"
-msgstr[0] ""
-msgstr[1] ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "electric motor"
-msgid_plural "electric motors"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for electric motor
-#: lang/json/GENERIC_from_json.py
-msgid "A powerful electric motor. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "enhanced electric motor"
-msgid_plural "enhanced electric motors"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for enhanced electric motor
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A very powerful and yet lightweight electric motor. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "super electric motor"
-msgid_plural "super electric motors"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for super electric motor
-#: lang/json/GENERIC_from_json.py
-msgid "The most powerfull electric motor on the market. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "large electric motor"
-msgid_plural "large electric motors"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for large electric motor
-#: lang/json/GENERIC_from_json.py
-msgid "A large and very powerful electric motor. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "small electric motor"
-msgid_plural "small electric motors"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for small electric motor
-#: lang/json/GENERIC_from_json.py
-msgid "A small electric motor. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "tiny electric motor"
-msgid_plural "tiny electric motors"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for tiny electric motor
-#: lang/json/GENERIC_from_json.py
-msgid "A tiny electric motor. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "foot crank"
-msgid_plural "foot cranks"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for foot crank
-#: lang/json/GENERIC_from_json.py
-msgid "The pedal and gear assembly from a bicycle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "set of hand rims"
-msgid_plural "sets of hand rims"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for set of hand rims
-#: lang/json/GENERIC_from_json.py
-msgid "Hand rims for use on a wheelchair."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "reinforced headlight"
-msgid_plural "reinforced headlights"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for reinforced headlight
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A vehicle headlight with a cage built around it to protect it from damage "
-"without reducing its effectiveness."
-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"
@@ -35319,285 +36392,6 @@ msgid ""
"controller chip and connecting wires."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "solar panel"
-msgid_plural "solar panels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for solar panel
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"Electronic device that can convert solar radiation into electric power. "
-"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
-msgid "large wind turbine"
-msgid_plural "large wind turbines"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for large wind turbine
-#: lang/json/GENERIC_from_json.py
-msgid "A large turbine that can convert wind into electric power."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "water wheel"
-msgid_plural "water wheels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for water wheel
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid ""
-"A water wheel. Will slowly recharge the vehicle's electrical power when "
-"built over shallow moving water."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "large water wheel"
-msgid_plural "large water wheels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for large water wheel
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid ""
-"A large water wheel with wooden supports. Will recharge the vehicle's "
-"electrical power when built over shallow moving water."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "reinforced solar panel"
-msgid_plural "reinforced solar panels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for reinforced solar panel
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A solar panel that has been covered with a pane of reinforced glass to "
-"protect the delicate solar cells from zombies or errant baseballs. The "
-"glass causes this panel to produce slightly less power than a normal panel. "
-"Useful for a vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "upgraded solar panel"
-msgid_plural "upgraded solar panels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for upgraded solar panel
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"Electronic device that can convert solar radiation into electric power. "
-"This panel has been upgraded to convert more sunlight into power. Useful "
-"for a vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "upgraded reinforced solar panel"
-msgid_plural "upgraded reinforced solar panels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for upgraded reinforced solar panel
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"An upgraded solar panel that has been covered with a pane of reinforced "
-"glass to protect the delicate solar cells from zombies or errant baseballs. "
-"The glass causes this panel to produce slightly less power than a normal "
-"upgraded panel. Useful for a vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "quantum solar panel"
-msgid_plural "quantum solar panels"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for quantum solar panel
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"This solar panel is obviously cutting-edge technology and given where you "
-"found it, should probably provide a LOT of power. It's covered in strange-"
-"looking material, but the covering looks rather fragile; it doesn't look "
-"like it could support a reinforcing sheet, either."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "minifridge"
-msgid_plural "minifridges"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for minifridge
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A very small fridge for keeping food cool. Provides some insulation from "
-"outside weather."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "minifreezer"
-msgid_plural "minifreezers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for minifreezer
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"Compact version of a chest freezer, designed as a mobile solution for "
-"freezing food. Provides insulation from the elements."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "washing machine"
-msgid_plural "washing machines"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for washing machine
-#: lang/json/GENERIC_from_json.py
-msgid "A very small washing machine designed for use in vehicles."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "solar cell"
-msgid_plural "solar cells"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for solar cell
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A small electronic device that can convert solar radiation into electric "
-"power. Useful for crafting."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "sheet metal"
-msgid_plural "sheet metals"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for sheet metal
-#: lang/json/GENERIC_from_json.py
-msgid "A thin sheet of metal."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "wired sheet metal"
-msgid_plural "wired sheet metals"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for wired sheet metal
-#: lang/json/GENERIC_from_json.py
-msgid "Sheet metal that has had light housing wired into it."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "wooden armor kit"
-msgid_plural "wooden armor kits"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for wooden armor kit
-#: lang/json/GENERIC_from_json.py
-msgid "A bundle of two by fours prepared to be used as vehicle armor."
-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] ""
-
-#. ~ Description for steel plating
-#: lang/json/GENERIC_from_json.py
-msgid "A piece of armor plating made of steel."
-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] ""
-
-#. ~ Description for superalloy plating
-#: lang/json/GENERIC_from_json.py
-msgid "A piece of armor plating made of sturdy superalloy."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "superalloy sheet"
-msgid_plural "superalloy sheets"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for superalloy sheet
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable."
-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] ""
-
-#. ~ Description for spiked plating
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A piece of armor plating made of steel. It is covered with menacing spikes."
-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] ""
-
-#. ~ Description for hard plating
-#: lang/json/GENERIC_from_json.py
-msgid "A piece of very thick armor plating made of steel."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "military composite plating"
-msgid_plural "military composite platings"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for military composite plating
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A thick sheet of military grade armor, best bullet stopper you can stick on "
-"a vehicle."
-msgstr ""
-
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
msgid "water faucet"
msgid_plural "water faucets"
@@ -35622,101 +36416,6 @@ msgid ""
"the vehicle."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "back-up beeper"
-msgid_plural "back-up beepers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for back-up beeper
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"This is a safety device intended to warn passersby of a vehicle moving in "
-"reverse, but the usage of it now seems terribly unwise."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "emergency vehicle light (red)"
-msgid_plural "emergency vehicle lights (red)"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for emergency vehicle light (red)
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"One of the red-colored lights from the top of an emergency services "
-"vehicle. When turned on, the lights rotate to shine in all directions."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "emergency vehicle light (blue)"
-msgid_plural "emergency vehicle lights (blue)"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for emergency vehicle light (blue)
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"One of the blue-colored lights from the top of an emergency services "
-"vehicle. When turned on, the lights rotate to shine in all directions."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "cargo carrier"
-msgid_plural "cargo carriers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for cargo carrier
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A heavy frame outfitted with tie-downs and attachment points for carrying "
-"cargo."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "floor trunk"
-msgid_plural "floor trunks"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for floor trunk
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A section of flooring with a cargo-space beneath, and a hinged door for "
-"access."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "livestock carrier"
-msgid_plural "livestock carriers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for livestock carrier
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A heavy frame outfitted with tie-downs and attachment points for carrying "
-"cargo, with additional railings to keep a large animal in place. It is "
-"meant to hold large animals for transport. Use it on a suitable animal to "
-"capture, use it on an empty tile to release."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "animal locker"
-msgid_plural "animal lockers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for animal locker
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A locker used to contain animals safely during transportation if installed "
-"properly. There is room for animal food and other animal care goods. It is "
-"meant to hold medium or smaller animals for transport. Use it on a suitable "
-"animal to capture, use it on an empty tile to release."
-msgstr ""
-
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
msgid "bike rack"
msgid_plural "bike racks"
@@ -35732,31 +36431,6 @@ msgid ""
msgstr ""
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "floodlight"
-msgid_plural "floodlights"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ 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] ""
-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 "recharging station"
msgid_plural "recharging stations"
msgstr[0] ""
@@ -35772,90 +36446,26 @@ msgid ""
"from a dashboard or electronics control unit."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "stereo system"
-msgid_plural "stereo systems"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for stereo system
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A stereo system with speakers. It is capable of being hooked up to a "
-"vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "chime loudspeakers"
-msgid_plural "chime loudspeakers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for chime loudspeakers
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A stereo system with loudspeakers and a built-in set of simple melodies that "
-"it will play. Commonly used by ice cream trucks to draw the attention of "
-"children in the days when children wanted ice cream more than brains."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "chitin armor kit"
-msgid_plural "chitin armor kits"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for chitin armor kit
-#: lang/json/GENERIC_from_json.py
-msgid "Light chitin plating made for a vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "biosilicified chitin armor kit"
-msgid_plural "biosilicified chitin armor kits"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for biosilicified chitin armor kit
-#: lang/json/GENERIC_from_json.py
-msgid "Durable silica-coated chitin plating made for a vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "bone armor kit"
-msgid_plural "bone armor kits"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for bone armor kit
#: lang/json/GENERIC_from_json.py
-msgid "Bone plating made for a vehicle."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "drive by wire controls"
-msgid_plural "sets of drive by wire controls"
+msgid "vehicle heater"
+msgid_plural "vehicle heaters"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for drive by wire controls
+#. ~ Description for vehicle heater
#: lang/json/GENERIC_from_json.py
-msgid ""
-"Fully electronic vehicle control system. You could control it remotely if "
-"you had proper tools."
+msgid "A vehicle-mounted area heater."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "vehicle heater"
-msgid_plural "vehicle heaters"
+msgid "vehicle cooler"
+msgid_plural "vehicle coolers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for vehicle heater
+#. ~ Description for vehicle cooler
#: lang/json/GENERIC_from_json.py
-msgid "A vehicle-mounted area heater."
+msgid "A vehicle-mounted area cooler."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -35883,122 +36493,6 @@ msgid ""
"low, but the field of vision is great."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "robot driving unit"
-msgid_plural "robot driving units"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for robot driving unit
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"A set of servos, microcontrollers and other devices, together capable of "
-"driving an unmanned vehicle. Its AI is not functional, but it should still "
-"have some sort of maintenance mode."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "vehicle scoop"
-msgid_plural "vehicle scoops"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for vehicle scoop
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"An assembly of motors and sheet metal that allows a vehicle to clean the "
-"road surface by removing debris and contaminants."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "seed drill"
-msgid_plural "seed drills"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for seed drill
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"An assembly of tubes, spikes, and wheels, that when dragged along the "
-"ground, allows a vehicle to plant seeds automatically in suitably tilled "
-"land."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: src/vehicle_use.cpp
-msgid "reaper"
-msgid_plural "reapers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for reaper
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"An assembly of a blade, wheels, and a small lever for engaging/disengaging "
-"used to cut down crops prior to picking them up."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "advanced reaper"
-msgid_plural "advanced reapers"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for advanced reaper
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"An advanced electronic device used to cut down, collect and store crops."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "advanced seed drill"
-msgid_plural "advanced seed drills"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for advanced seed drill
-#: lang/json/GENERIC_from_json.py
-msgid ""
-"An assembly of tubes, spikes, and wheels, that when dragged along the "
-"ground, allows a vehicle to plant seeds automatically in suitably tilled "
-"land. This one is equipped with an electronic control system and will avoid "
-"damaging itself when used on untilled land."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-#: src/vehicle_use.cpp
-msgid "plow"
-msgid_plural "plows"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for plow
-#: lang/json/GENERIC_from_json.py
-msgid "A heavy assembly of wheels and steel blades that turn up the ground."
-msgstr ""
-
-#: lang/json/GENERIC_from_json.py
-msgid "car headlight"
-msgid_plural "car headlights"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for car headlight
-#: lang/json/GENERIC_from_json.py
-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] ""
-
-#. ~ 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"
@@ -36333,6 +36827,17 @@ msgid ""
"Ryu."
msgstr ""
+#: lang/json/GENERIC_from_json.py
+msgid "The Modern Pankratiast"
+msgid_plural "The Modern Pankratiast"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for The Modern Pankratiast
+#: lang/json/GENERIC_from_json.py
+msgid "A complete guide to Pankration."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "The Scorpion Sun Chien"
msgid_plural "The Scorpion Sun Chien"
@@ -37507,7 +38012,7 @@ msgstr[1] ""
#. ~ Description for tin cup
#: lang/json/GENERIC_from_json.py
msgid ""
-"An emaled tin cup. Great for camping or for prison use; makes a wonderful "
+"An enameled tin cup. Great for camping or for prison use; makes a wonderful "
"sound when clanged along bars."
msgstr ""
@@ -38281,7 +38786,7 @@ msgstr[1] ""
#: lang/json/GENERIC_from_json.py
msgid ""
"A sturdy 30-foot long vine. Could easily be used as a rope, but can't be "
-"disassembled."
+"disassembled. Strong enough to suspend a large corpse for butchering."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -38307,7 +38812,8 @@ msgstr[1] ""
#: lang/json/GENERIC_from_json.py
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."
+"hold up to falls, but still useful for some things, such as suspending large "
+"corpses for butchering."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -38337,6 +38843,96 @@ msgid ""
"down to a powder, for more... high-profile applications."
msgstr ""
+#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
+msgid "mattress"
+msgid_plural "mattresses"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for mattress
+#: lang/json/GENERIC_from_json.py
+msgid "This is a single, or twin, sized mattress."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "plastic sheet"
+msgid_plural "plastic sheets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for plastic sheet
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This is a large sheet of heavy flexible plastic, the sort that might have "
+"been used for commercial wrapping or for weather-sealing a home."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "heavy stick"
+msgid_plural "heavy sticks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for heavy stick
+#: lang/json/GENERIC_from_json.py
+msgid "A sturdy, heavy stick. Makes a decent melee weapon."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "long stick"
+msgid_plural "long sticks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for long stick
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A long stick. Makes a decent melee weapon, and can be broken into heavy "
+"sticks for crafting."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py src/crafting_gui.cpp
+msgid "two by four"
+msgid_plural "two by fours"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for two by four
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A plank of wood. Makes a decent melee weapon, and can be used to board up "
+"doors and windows if you have a hammer and nails."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "wooden panel"
+msgid_plural "wooden panels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for wooden panel
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A wide, thin wooden board - plywood, OSB, MDF, tongue-in-groove boards, or "
+"similar, already cut to shape. These large flat boards are good for all "
+"kinds of construction, but for really big projects you'd need a proper sheet "
+"of uncut plywood or the like."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "large wooden sheet"
+msgid_plural "large wooden sheets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for large wooden sheet
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A standard 4x8 sheet of flat wood - usually plywood, OSB, or MDF. Heavy and "
+"bulky, this is extremely useful for all manner of construction, but you "
+"might have to cut it to size before doing smaller projects."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "radio car box"
msgid_plural "radio car boxes"
@@ -38548,6 +39144,239 @@ msgid ""
"surprising amount of damage."
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"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for oars
+#: lang/json/GENERIC_from_json.py
+msgid "Oars for a boat."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "sail"
+msgid_plural "sails"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for sail
+#: lang/json/GENERIC_from_json.py
+msgid "Sails 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] ""
+msgstr[1] ""
+
+#. ~ Description for inflatable airbag
+#: lang/json/GENERIC_from_json.py
+msgid "An inflatable airbag."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "wire basket"
+msgid_plural "wire baskets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for wire basket
+#: lang/json/GENERIC_from_json.py
+msgid "A large wire basket from a shopping cart."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "folding wire basket"
+msgid_plural "folding wire baskets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for folding wire basket
+#: lang/json/GENERIC_from_json.py
+msgid "A large wire basket from a shopping cart, modified to be foldable."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "bike basket"
+msgid_plural "bike baskets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for bike basket
+#: lang/json/GENERIC_from_json.py
+msgid "A simple bike basket. It is small and foldable."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "cargo carrier"
+msgid_plural "cargo carriers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for cargo carrier
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A heavy frame outfitted with tie-downs and attachment points for carrying "
+"cargo."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "floor trunk"
+msgid_plural "floor trunks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for floor trunk
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A section of flooring with a cargo-space beneath, and a hinged door for "
+"access."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "livestock carrier"
+msgid_plural "livestock carriers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for livestock carrier
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A heavy frame outfitted with tie-downs and attachment points for carrying "
+"cargo, with additional railings to keep a large animal in place. It is "
+"meant to hold large animals for transport. Use it on a suitable animal to "
+"capture, use it on an empty tile to release."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "animal locker"
+msgid_plural "animal lockers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for animal locker
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A locker used to contain animals safely during transportation if installed "
+"properly. There is room for animal food and other animal care goods. It is "
+"meant to hold medium or smaller animals for transport. Use it on a suitable "
+"animal to capture, use it on an empty tile to release."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "vehicle controls"
+msgid_plural "sets of vehicle controls"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for vehicle controls
+#: lang/json/GENERIC_from_json.py
+msgid "A set of various vehicle controls. Useful for crafting."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "dashboard"
+msgid_plural "dashboards"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for dashboard
+#. ~ Description for electronics control unit
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A vehicle instrument panel with various gauges and switches. Useful for "
+"crafting."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "electronics control unit"
+msgid_plural "electronics control units"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "drive by wire controls"
+msgid_plural "sets of drive by wire controls"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for drive by wire controls
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Fully electronic vehicle control system. You could control it remotely if "
+"you had proper tools."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "robot driving unit"
+msgid_plural "robot driving units"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for robot driving unit
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A set of servos, microcontrollers and other devices, together capable of "
+"driving an unmanned vehicle. Its AI is not functional, but it should still "
+"have some sort of maintenance mode."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py
msgid "massive engine block"
msgid_plural "massive engine blocks"
@@ -38691,797 +39520,1542 @@ msgid ""
"it forward or backward to change a tire."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "shredder"
-msgid_plural "shredders"
+#: lang/json/GENERIC_from_json.py
+msgid "vehicle scoop"
+msgid_plural "vehicle scoops"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for shredder
+#. ~ Description for vehicle scoop
#: lang/json/GENERIC_from_json.py
msgid ""
-"This menacing looking attachment is meant to be powered by a vehicle's "
-"engine. Upon doing so, the circular blades of this device will rotate "
-"rapidly; anything in front of it is likely to be ripped to shreds. It is "
-"sturdy enough to withstand multiple impacts, and is designed to detach if it "
-"would take a hit that would break it."
+"An assembly of motors and sheet metal that allows a vehicle to clean the "
+"road surface by removing debris and contaminants."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "vehicle crafting rig"
-msgid_plural "vehicle crafting rigs"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "seed drill"
+msgid_plural "seed drills"
msgstr[0] ""
msgstr[1] ""
+#. ~ Description for seed drill
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"An assembly of tubes, spikes, and wheels, that when dragged along the "
+"ground, allows a vehicle to plant seeds automatically in suitably tilled "
+"land."
+msgstr ""
+
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "onboard chemistry lab"
-msgid_plural "onboard chemistry labs"
+#: src/vehicle_use.cpp
+msgid "reaper"
+msgid_plural "reapers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for onboard chemistry lab
+#. ~ Description for reaper
#: lang/json/GENERIC_from_json.py
msgid ""
-"Assembled from a chemistry set attached to a complex wiring harness, it is "
-"well suited to most any chemistry project you could imagine. Unable to "
-"utilize standard batteries, it requires an external supply of electricity to "
-"operate."
+"An assembly of a blade, wheels, and a small lever for engaging/disengaging "
+"used to cut down crops prior to picking them up."
msgstr ""
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "FOODCO kitchen buddy"
-msgid_plural "FOODCO kitchen buddies"
+msgid "advanced reaper"
+msgid_plural "advanced reapers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for FOODCO kitchen buddy
+#. ~ Description for advanced reaper
#: lang/json/GENERIC_from_json.py
msgid ""
-"Assembled from a set of instructions you found in an old book of DIY "
-"projects, the *FOODCO kitchen buddy* claims to be *the perfect solution to "
-"all your home-cooking needs!*. While it is surprisingly handy for vacuum-"
-"sealing as well as dehydrating food, the cheery sales pitch neglected to "
-"mention A - how awkward the damn thing is, B - That you still need a normal "
-"kitchen and C - how it doesn't take batteries. You're going to have to weld "
-"it to a vehicle, or something else with a supply of electricity, if you want "
-"to use it. In addition to the food preservation features, it also has a "
-"food processor, a water-purification system, a drawer for holding extra "
-"tools, and for some insane reason, a press and die set for hand-loading "
-"ammunition."
+"An advanced electronic device used to cut down, collect and store crops."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "vehicle forge rig"
-msgid_plural "vehicle forge rigs"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "advanced seed drill"
+msgid_plural "advanced seed drills"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for vehicle forge rig
+#. ~ Description for advanced seed drill
#: lang/json/GENERIC_from_json.py
msgid ""
-"A forge rig made to run off a vehicle's storage battery with integrated tool "
-"storage for metalworking equipment."
+"An assembly of tubes, spikes, and wheels, that when dragged along the "
+"ground, allows a vehicle to plant seeds automatically in suitably tilled "
+"land. This one is equipped with an electronic control system and will avoid "
+"damaging itself when used on untilled land."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "vehicle kiln"
-msgid_plural "vehicle kilns"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: src/vehicle_use.cpp
+msgid "plow"
+msgid_plural "plows"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for vehicle kiln
+#. ~ Description for plow
#: lang/json/GENERIC_from_json.py
-msgid "An electric kiln made to run off a vehicle's storage battery."
+msgid "A heavy assembly of wheels and steel blades that turn up the ground."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "RV kitchen unit"
-msgid_plural "RV kitchen units"
+msgid "foldable-light frame"
+msgid_plural "foldable-light frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for RV kitchen unit
+#. ~ Description for foldable-light frame
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A vehicle mountable electric range and sink unit with integrated tool "
-"storage for cooking utensils."
+msgid "A small foldable lightweight frame made from pipework."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "vehicle welding rig"
-msgid_plural "vehicle welding rigs"
+msgid "extra-light frame"
+msgid_plural "extra-light frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for vehicle welding rig
+#. ~ Description for extra-light frame
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A welding rig made to run off a vehicle's storage battery. It has a "
-"soldering iron attachment for delicate work, and a compartment to store your "
-"extra tools in."
+msgid "A small lightweight frame made from pipework. Useful for crafting."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "10 plastic bags"
-msgid_plural "10 plastic bags"
+msgid "steel frame"
+msgid_plural "steel frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for 10 plastic bags
+#. ~ Description for steel frame
#: lang/json/GENERIC_from_json.py
-msgid ""
-"10 plastic bags, folded smooth and wrapped tightly together with a string."
+msgid "A large frame made of steel. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "coal pallet"
-msgid_plural "coal pallets"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "heavy duty frame"
+msgid_plural "heavy duty frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for coal pallet
+#. ~ Description for heavy duty frame
#: lang/json/GENERIC_from_json.py
-msgid "A large block of semi-processed coal."
+msgid "A large, reinforced steel frame, used in military vehicle construction."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "charged capacitor"
-msgid_plural "charged capacitors"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "wooden frame"
+msgid_plural "wooden frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for charged capacitor
+#. ~ Description for wooden frame
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A single capacitor charged with current to be used by a laser weapon or "
-"similar armament."
+msgid "A large frame made of wood. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "lead battery plate"
-msgid_plural "lead battery plates"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "foldable wooden frame"
+msgid_plural "foldable wooden frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for lead battery plate
+#. ~ Description for foldable wooden frame
#: lang/json/GENERIC_from_json.py
-msgid "An electrode plate from a lead-acid battery."
+msgid "A small foldable frame made from scrap wood."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "forged sword"
-msgid_plural "forged swords"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "light wooden frame"
+msgid_plural "light wooden frames"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for forged sword
+#. ~ Description for light wooden frame
#: lang/json/GENERIC_from_json.py
msgid ""
-"A common short sword, forged from several pieces of steel. The pointy end "
-"is the dangerous one."
+"A small frame made of few pieces of wood, held together by rope. Useful for "
+"crafting."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "skewer"
-msgid_plural "skewers"
+msgid "car headlight"
+msgid_plural "car headlights"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for skewer
+#. ~ Description for car headlight
#: lang/json/GENERIC_from_json.py
-msgid "A thin wooden skewer. Squirrel on a stick, anyone?"
+msgid "A vehicle headlight to light up the way."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "vehicle curtain"
-msgid_plural "vehicle curtains"
+msgid "wide-angle car headlight"
+msgid_plural "wide-angle car headlights"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for vehicle curtain
+#. ~ Description for wide-angle car headlight
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A rod, a few metal rings, and a large piece of cloth with some strings "
-"attached for securely fastening the edges."
+msgid "A wide-angle vehicle headlight to light up the way."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
-msgid "vehicle refrigerator"
-msgid_plural "vehicle refrigerators"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "reinforced headlight"
+msgid_plural "reinforced headlights"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for vehicle refrigerator
+#. ~ Description for reinforced headlight
#: lang/json/GENERIC_from_json.py
msgid ""
-"A household refrigerator with impressive capacity. Its power connection has "
-"been refurbished, and it can be mounted onto a vehicle to draw from its "
-"power."
+"A vehicle headlight with a cage built around it to protect it from damage "
+"without reducing its effectiveness."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
-msgid "vehicle freezer"
-msgid_plural "vehicle freezers"
+#: 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 vehicle freezer
+#. ~ Description for reinforced wide-angle headlight
#: lang/json/GENERIC_from_json.py
msgid ""
-"This refurbished refrigerator has been stripped of much of its internal "
-"components and converted to run at a much lower temperature, causing it to "
-"serve as a freezer for more power. Like its predecessor, it runs on vehicle "
-"power."
-msgstr ""
-
-#. ~ Description for rolling pin
-#: lang/json/GENERIC_from_json.py
-msgid "A light wooden rolling pin used to flatten dough."
+"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 "scrap titanium"
-msgid_plural "scrap titanium"
+msgid "emergency vehicle light (red)"
+msgid_plural "emergency vehicle lights (red)"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for scrap titanium
+#. ~ Description for emergency vehicle light (red)
#: lang/json/GENERIC_from_json.py
-msgid "A piece of light titanium, usable for crafting or repairs."
+msgid ""
+"One of the red-colored lights from the top of an emergency services "
+"vehicle. When turned on, the lights rotate to shine in all directions."
msgstr ""
#: lang/json/GENERIC_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "ultralight frame"
-msgid_plural "ultralight frames"
+msgid "emergency vehicle light (blue)"
+msgid_plural "emergency vehicle lights (blue)"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for ultralight frame
+#. ~ Description for emergency vehicle light (blue)
#: lang/json/GENERIC_from_json.py
-msgid "A sturdy, lightweight frame made from titanium. Useful for crafting."
+msgid ""
+"One of the blue-colored lights from the top of an emergency services "
+"vehicle. When turned on, the lights rotate to shine in all directions."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "MetalMaster forge buddy"
-msgid_plural "MetalMaster forge buddies"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "floodlight"
+msgid_plural "floodlights"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for MetalMaster forge buddy
+#. ~ Description for floodlight
#: lang/json/GENERIC_from_json.py
-msgid ""
-"From the makers of the best-selling* FOODCO kitchen buddy comes the "
-"MetalMaster forge buddy, for all your metalworking, firing, and welding "
-"needs! It's just as clunky and awkward as the thing it's spinning off, and "
-"still requires a vehicle battery to function."
+msgid "A large and heavy light designed to illuminate wide areas."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-#: lang/json/vehicle_part_from_json.py
-msgid "KitchenMaster cooking buddy"
-msgid_plural "KitchenMaster cooking buddies"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "directed floodlight"
+msgid_plural "directed floodlights"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for KitchenMaster cooking buddy
+#. ~ Description for directed floodlight
#: lang/json/GENERIC_from_json.py
msgid ""
-"Because it *clearly* needed one, this large all-in-one station provides the "
-"functions of FOODCO's kitchen buddy, now with complementary fume hoods and "
-"chemistry materials. Why a chef would need a chemical rig is anyone's "
-"guess, but you can mount it on a vehicle to make use of it."
+"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 "cooking rig"
-msgid_plural "cooking rigs"
+msgid "set of hand rims"
+msgid_plural "sets of hand rims"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for cooking rig
+#. ~ Description for set of hand rims
#: lang/json/GENERIC_from_json.py
-msgid ""
-"Skillet, pot, hotplate, and chemistry set; everything you need to cook food "
-"and chemicals. Includes proper fume vents and a separator, so you don't "
-"contaminate your food with toxic chemicals."
+msgid "Hand rims for use on a wheelchair."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "hydraulic gauntlet"
-msgid_plural "hydraulic gauntlets"
+msgid "foot crank"
+msgid_plural "foot cranks"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for hydraulic gauntlet
+#. ~ Description for foot crank
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A huge, heavy metal gauntlet lined with tubing and gauges. Slow and "
-"unwieldy, it uses internal pressure to deliver devastating blows, but takes "
-"tremendous strength to use effectively. Thanks to an internal microreactor, "
-"it doesn't require power of its own."
+msgid "The pedal and gear assembly from a bicycle."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "barbed-wire rolling pin"
-msgid_plural "barbed-wire rolling pins"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "wind turbine"
+msgid_plural "wind turbines"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for barbed-wire rolling pin
+#. ~ Description for wind turbine
#: lang/json/GENERIC_from_json.py
-msgid ""
-"Typically used to flatten dough, this rolling pin has been repurposed as a "
-"weapon, with barbed wire adding some extra power and weight to its swing. "
-"It has some real heft to it; perfect for the bakers of the apocalypse."
+msgid "A small turbine that can convert wind into electric power."
msgstr ""
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "hauling space"
-msgid_plural "hauling spaces"
+msgid "large wind turbine"
+msgid_plural "large wind turbines"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for hauling space
+#. ~ Description for large wind turbine
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A huge metal space used in conjunction with extension of a vehicle's roof to "
-"create a very large amount of space for transporting goods."
+msgid "A large turbine that can convert wind into electric power."
msgstr ""
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "control station"
-msgid_plural "control stations"
+msgid "water wheel"
+msgid_plural "water wheels"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for control station
-#: lang/json/GENERIC_from_json.py
+#. ~ Description for water wheel
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
msgid ""
-"A large and complex piloting station from a military vehicle, including a "
-"camera station, steering tools, and electronics controls."
+"A water wheel. Will slowly recharge the vehicle's electrical power when "
+"built over shallow moving water."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "old broken animatronic fox"
-msgid_plural "old broken animatronic foxes"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "large water wheel"
+msgid_plural "large water wheels"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for old broken animatronic fox
-#: lang/json/GENERIC_from_json.py
+#. ~ Description for large water wheel
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
msgid ""
-"A broken animatronic fox. If it was in bad shape before, it's a wreck now. "
-"For some reason, it is oozing with blood - it's not your blood."
+"A large water wheel with wooden supports. Will recharge the vehicle's "
+"electrical power when built over shallow moving water."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "old broken animatronic bunny"
-msgid_plural "old broken animatronic bunnies"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "electric motor"
+msgid_plural "electric motors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for old broken animatronic bunny
+#. ~ Description for electric motor
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic bunny. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "A powerful electric motor. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "old broken animatronic chicken"
-msgid_plural "old broken animatronic chickens"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "enhanced electric motor"
+msgid_plural "enhanced electric motors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for old broken animatronic chicken
-#: lang/json/GENERIC_from_json.py
-msgid "A broken animatronic chicken. It doesn't look as attractive now."
-msgstr ""
-
-#. ~ Description for old broken animatronic chicken
+#. ~ Description for enhanced electric motor
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic chicken. For some reason, it is oozing with blood - "
-"it's not your blood."
+"A very powerful and yet lightweight electric motor. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "old broken animatronic bear"
-msgid_plural "old broken animatronic bears"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "super electric motor"
+msgid_plural "super electric motors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for old broken animatronic bear
+#. ~ Description for super electric motor
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic bear. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "The most powerfull electric motor on the market. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken new animatronic bear"
-msgid_plural "broken new animatronic bears"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "large electric motor"
+msgid_plural "large electric motors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken new animatronic bear
+#. ~ Description for large electric motor
#: lang/json/GENERIC_from_json.py
-msgid "A broken animatronic bear. Limp and lifeless."
+msgid "A large and very powerful electric motor. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic bat"
-msgid_plural "broken animatronic bats"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "small electric motor"
+msgid_plural "small electric motors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic bat
+#. ~ Description for small electric motor
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic bat. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "A small electric motor. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic beaver"
-msgid_plural "broken animatronic beavers"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "tiny electric motor"
+msgid_plural "tiny electric motors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic beaver
+#. ~ Description for tiny electric motor
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic beaver. For some reason, it is oozing with blood - "
-"it's not your blood."
+msgid "A tiny electric motor. Useful for crafting."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic cat"
-msgid_plural "broken animatronic cats"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "muffler"
+msgid_plural "mufflers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic cat
+#. ~ Description for muffler
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic cat. For some reason, it is oozing with blood - it's "
-"not your blood."
+"A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting "
+"recipes."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic chipmunk"
-msgid_plural "broken animatronic chipmunks"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "back-up beeper"
+msgid_plural "back-up beepers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic chipmunk
+#. ~ Description for back-up beeper
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic chipmunk. For some reason, it is oozing with blood - "
-"it's not your blood."
+"This is a safety device intended to warn passersby of a vehicle moving in "
+"reverse, but the usage of it now seems terribly unwise."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic cow"
-msgid_plural "broken animatronic cows"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "stereo system"
+msgid_plural "stereo systems"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic cow
+#. ~ Description for stereo system
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic cow. For some reason, it is oozing with blood - it's "
-"not your blood."
+"A stereo system with speakers. It is capable of being hooked up to a "
+"vehicle."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic coyote"
-msgid_plural "broken animatronic coyotes"
+msgid "chime loudspeakers"
+msgid_plural "chime loudspeakers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic coyote
+#. ~ Description for chime loudspeakers
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic coyote. For some reason, it is oozing with blood - "
-"it's not your blood."
+"A stereo system with loudspeakers and a built-in set of simple melodies that "
+"it will play. Commonly used by ice cream trucks to draw the attention of "
+"children in the days when children wanted ice cream more than brains."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic deer"
-msgid_plural "broken animatronic deer"
+msgid "sheet metal"
+msgid_plural "sheet metals"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic deer
+#. ~ Description for sheet metal
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic deer. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "A thin sheet of metal."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic horse"
-msgid_plural "broken animatronic horses"
+msgid "wired sheet metal"
+msgid_plural "wired sheet metals"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic horse
+#. ~ Description for wired sheet metal
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic horse. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "Sheet metal that has had light housing wired into it."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic pig"
-msgid_plural "broken animatronic pigs"
+msgid "wooden armor kit"
+msgid_plural "wooden armor kits"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic pig
+#. ~ Description for wooden armor kit
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic pig. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "A bundle of two by fours prepared to be used as vehicle armor."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic sheep"
-msgid_plural "broken animatronic sheep"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "steel plating"
+msgid_plural "steel platings"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic sheep
+#. ~ Description for steel plating
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic sheep. For some reason, it is oozing with blood - it's "
-"not your blood."
+msgid "A piece of armor plating made of steel."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic squirrel"
-msgid_plural "broken animatronic squirrels"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "superalloy plating"
+msgid_plural "superalloy platings"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic squirrel
+#. ~ Description for superalloy plating
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken animatronic squirrel. For some reason, it is oozing with blood - "
-"it's not your blood."
+msgid "A piece of armor plating made of sturdy superalloy."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic child"
-msgid_plural "broken animatronic children"
+msgid "superalloy sheet"
+msgid_plural "superalloy sheets"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic child
+#. ~ Description for superalloy sheet
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic child. For some reason, it is oozing with blood - it's "
-"not your blood."
+"A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken new animatronic fox"
-msgid_plural "broken new animatronic foxes"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "spiked plating"
+msgid_plural "spiked platings"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken new animatronic fox
+#. ~ Description for spiked plating
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic fox. It seems like it's still looking at you, enraged "
-"in what you've done to her."
+"A piece of armor plating made of steel. It is covered with menacing spikes."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic wreck"
-msgid_plural "broken animatronic wrecks"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "hard plating"
+msgid_plural "hard platings"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic wreck
+#. ~ Description for hard plating
#: lang/json/GENERIC_from_json.py
-msgid ""
-"A broken, wrecked animatronic fox. You have no idea if it's actually dead, "
-"as it doesn't look that different from the condition you found it in."
+msgid "A piece of very thick armor plating made of steel."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken animatronic wolf"
-msgid_plural "broken animatronic wolves"
+msgid "military composite plating"
+msgid_plural "military composite platings"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken animatronic wolf
+#. ~ Description for military composite plating
#: lang/json/GENERIC_from_json.py
msgid ""
-"A broken animatronic wolf. For some reason, it is oozing with blood - it's "
-"not your blood."
+"A thick sheet of military grade armor, best bullet stopper you can stick on "
+"a vehicle."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken marionette"
-msgid_plural "broken marionettes"
+msgid "chitin armor kit"
+msgid_plural "chitin armor kits"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken marionette
+#. ~ Description for chitin armor kit
#: lang/json/GENERIC_from_json.py
-msgid "A broken marionette. How creepy."
+msgid "Light chitin plating made for a vehicle."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "broken new animatronic bunny"
-msgid_plural "broken new animatronic bunnies"
+msgid "biosilicified chitin armor kit"
+msgid_plural "biosilicified chitin armor kits"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for broken new animatronic bunny
+#. ~ Description for biosilicified chitin armor kit
#: lang/json/GENERIC_from_json.py
-msgid "A broken animatronic bunny. Limp and lifeless."
+msgid "Durable silica-coated chitin plating made for a vehicle."
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"
+msgid "bone armor kit"
+msgid_plural "bone armor kits"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for plastic boat hull
+#. ~ Description for bone armor kit
#: 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."
+msgid "Bone plating made for a vehicle."
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"
+msgid "shredder"
+msgid_plural "shredders"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for carbon fiber boat hull
+#. ~ Description for shredder
#: 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."
+"This menacing looking attachment is meant to be powered by a vehicle's "
+"engine. Upon doing so, the circular blades of this device will rotate "
+"rapidly; anything in front of it is likely to be ripped to shreds. It is "
+"sturdy enough to withstand multiple impacts, and is designed to detach if it "
+"would take a hit that would break it."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "oars"
-msgid_plural "oars"
+msgid "vehicle crafting rig"
+msgid_plural "vehicle crafting rigs"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for oars
-#: lang/json/GENERIC_from_json.py
-msgid "Oars for a boat."
-msgstr ""
-
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "sail"
-msgid_plural "sails"
+msgid "onboard chemistry lab"
+msgid_plural "onboard chemistry labs"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for sail
+#. ~ Description for onboard chemistry lab
#: lang/json/GENERIC_from_json.py
-msgid "Sails for a boat."
+msgid ""
+"Assembled from a chemistry set attached to a complex wiring harness, it is "
+"well suited to most any chemistry project you could imagine. Unable to "
+"utilize standard batteries, it requires an external supply of electricity to "
+"operate."
msgstr ""
#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "inflatable section"
-msgid_plural "inflatable section"
+msgid "FOODCO kitchen buddy"
+msgid_plural "FOODCO kitchen buddies"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for inflatable section
+#. ~ Description for FOODCO kitchen buddy
#: lang/json/GENERIC_from_json.py
-msgid "An inflatable boat section."
+msgid ""
+"Assembled from a set of instructions you found in an old book of DIY "
+"projects, the *FOODCO kitchen buddy* claims to be *the perfect solution to "
+"all your home-cooking needs!*. While it is surprisingly handy for vacuum-"
+"sealing as well as dehydrating food, the cheery sales pitch neglected to "
+"mention A - how awkward the damn thing is, B - That you still need a normal "
+"kitchen and C - how it doesn't take batteries. You're going to have to weld "
+"it to a vehicle, or something else with a supply of electricity, if you want "
+"to use it. In addition to the food preservation features, it also has a "
+"food processor, a water-purification system, a drawer for holding extra "
+"tools, and for some insane reason, a press and die set for hand-loading "
+"ammunition."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "inflatable airbag"
-msgid_plural "inflatable airbag"
+#: lang/json/GENERIC_from_json.py
+msgid "vehicle forge rig"
+msgid_plural "vehicle forge rigs"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for inflatable airbag
+#. ~ Description for vehicle forge rig
#: lang/json/GENERIC_from_json.py
-msgid "An inflatable airbag."
+msgid ""
+"A forge rig made to run off a vehicle's storage battery with integrated tool "
+"storage for metalworking equipment."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "nuclear waste"
-msgid_plural "nuclear wastes"
+msgid "vehicle kiln"
+msgid_plural "vehicle kilns"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for nuclear waste
+#. ~ Description for vehicle kiln
#: lang/json/GENERIC_from_json.py
-msgid "A small pellet of silvery metal, still warm to the touch."
+msgid "An electric kiln made to run off a vehicle's storage battery."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "nuclear fuel pellet"
-msgid_plural "nuclear fuel pellets"
+msgid "RV kitchen unit"
+msgid_plural "RV kitchen units"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for nuclear fuel pellet
+#. ~ Description for RV kitchen unit
#: lang/json/GENERIC_from_json.py
-msgid "A small pellet of fissile material. Handle carefully."
+msgid ""
+"A vehicle mountable electric range and sink unit with integrated tool "
+"storage for cooking utensils."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "6.54x42mm casing"
-msgid_plural "6.54x42mm casings"
+msgid "vehicle welding rig"
+msgid_plural "vehicle welding rigs"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for 6.54x42mm casing
+#. ~ Description for vehicle welding rig
#: lang/json/GENERIC_from_json.py
-msgid "An empty casing from a 6.54x42 round."
+msgid ""
+"A welding rig made to run off a vehicle's storage battery. It has a "
+"soldering iron attachment for delicate work, and a compartment to store your "
+"extra tools in."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "pistol ammo casing"
-msgid_plural "pistol ammo casings"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "seat"
+msgid_plural "seats"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for pistol ammo casing
+#. ~ Description for seat
#: lang/json/GENERIC_from_json.py
-msgid "An empty casing from a pistol round."
+msgid "A soft car seat covered with leather."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "revolver ammo casing"
-msgid_plural "revolver ammo casings"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "saddle"
+msgid_plural "saddles"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for revolver ammo casing
+#. ~ Description for saddle
#: lang/json/GENERIC_from_json.py
-msgid "An empty casing from a revolver round."
+msgid "A leather-covered seat designed to be straddled."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "light rifle ammo casing"
-msgid_plural "light rifle ammo casings"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "solar panel"
+msgid_plural "solar panels"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for light rifle ammo casing
+#. ~ Description for solar panel
#: lang/json/GENERIC_from_json.py
-msgid "An empty casing from a light rifle round."
+msgid ""
+"Electronic device that can convert solar radiation into electric power. "
+"Useful for a vehicle."
msgstr ""
-#: lang/json/GENERIC_from_json.py
-msgid "rifle casing"
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "reinforced solar panel"
+msgid_plural "reinforced solar panels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for reinforced solar panel
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A solar panel that has been covered with a pane of reinforced glass to "
+"protect the delicate solar cells from zombies or errant baseballs. The "
+"glass causes this panel to produce slightly less power than a normal panel. "
+"Useful for a vehicle."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "upgraded solar panel"
+msgid_plural "upgraded solar panels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for upgraded solar panel
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Electronic device that can convert solar radiation into electric power. "
+"This panel has been upgraded to convert more sunlight into power. Useful "
+"for a vehicle."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "upgraded reinforced solar panel"
+msgid_plural "upgraded reinforced solar panels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for upgraded reinforced solar panel
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"An upgraded solar panel that has been covered with a pane of reinforced "
+"glass to protect the delicate solar cells from zombies or errant baseballs. "
+"The glass causes this panel to produce slightly less power than a normal "
+"upgraded panel. Useful for a vehicle."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "quantum solar panel"
+msgid_plural "quantum solar panels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for quantum solar panel
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This solar panel is obviously cutting-edge technology and given where you "
+"found it, should probably provide a LOT of power. It's covered in strange-"
+"looking material, but the covering looks rather fragile; it doesn't look "
+"like it could support a reinforcing sheet, either."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "solar cell"
+msgid_plural "solar cells"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for solar cell
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A small electronic device that can convert solar radiation into electric "
+"power. Useful for crafting."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "fancy table"
+msgid_plural "fancy tables"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for fancy table
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A very fancy table from a very fancy RV. If times were better it might be "
+"useful for something more than firewood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "wooden table"
+msgid_plural "wooden tables"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for wooden table
+#: lang/json/GENERIC_from_json.py
+msgid "A crude wooden table."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "workbench"
+msgid_plural "workbenchs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for workbench
+#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
+msgid ""
+"A sturdy workbench built out of metal. It is perfect for crafting large and "
+"heavy things."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "washing machine"
+msgid_plural "washing machines"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for washing machine
+#: lang/json/GENERIC_from_json.py
+msgid "A very small washing machine designed for use in vehicles."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "minifridge"
+msgid_plural "minifridges"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for minifridge
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A very small fridge for keeping food cool. Provides some insulation from "
+"outside weather."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "minifreezer"
+msgid_plural "minifreezers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for minifreezer
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Compact version of a chest freezer, designed as a mobile solution for "
+"freezing food. Provides insulation from the elements."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "10 plastic bags"
+msgid_plural "10 plastic bags"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for 10 plastic bags
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"10 plastic bags, folded smooth and wrapped tightly together with a string."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "coal pallet"
+msgid_plural "coal pallets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for coal pallet
+#: lang/json/GENERIC_from_json.py
+msgid "A large block of semi-processed coal."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "charged capacitor"
+msgid_plural "charged capacitors"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for charged capacitor
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A single capacitor charged with current to be used by a laser weapon or "
+"similar armament."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "lead battery plate"
+msgid_plural "lead battery plates"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for lead battery plate
+#: lang/json/GENERIC_from_json.py
+msgid "An electrode plate from a lead-acid battery."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "forged sword"
+msgid_plural "forged swords"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for forged sword
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A common short sword, forged from several pieces of steel. The pointy end "
+"is the dangerous one."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "skewer"
+msgid_plural "skewers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for skewer
+#: lang/json/GENERIC_from_json.py
+msgid "A thin wooden skewer. Squirrel on a stick, anyone?"
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "vehicle curtain"
+msgid_plural "vehicle curtains"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for vehicle curtain
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A rod, a few metal rings, and a large piece of cloth with some strings "
+"attached for securely fastening the edges."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
+msgid "vehicle refrigerator"
+msgid_plural "vehicle refrigerators"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for vehicle refrigerator
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A household refrigerator with impressive capacity. Its power connection has "
+"been refurbished, and it can be mounted onto a vehicle to draw from its "
+"power."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py
+msgid "vehicle freezer"
+msgid_plural "vehicle freezers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for vehicle freezer
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This refurbished refrigerator has been stripped of much of its internal "
+"components and converted to run at a much lower temperature, causing it to "
+"serve as a freezer for more power. Like its predecessor, it runs on vehicle "
+"power."
+msgstr ""
+
+#. ~ Description for rolling pin
+#: lang/json/GENERIC_from_json.py
+msgid "A light wooden rolling pin used to flatten dough."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "scrap titanium"
+msgid_plural "scrap titanium"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for scrap titanium
+#: lang/json/GENERIC_from_json.py
+msgid "A piece of light titanium, usable for crafting or repairs."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "ultralight frame"
+msgid_plural "ultralight frames"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for ultralight frame
+#: lang/json/GENERIC_from_json.py
+msgid "A sturdy, lightweight frame made from titanium. Useful for crafting."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "MetalMaster forge buddy"
+msgid_plural "MetalMaster forge buddies"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for MetalMaster forge buddy
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"From the makers of the best-selling* FOODCO kitchen buddy comes the "
+"MetalMaster forge buddy, for all your metalworking, firing, and welding "
+"needs! It's just as clunky and awkward as the thing it's spinning off, and "
+"still requires a vehicle battery to function."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "KitchenMaster cooking buddy"
+msgid_plural "KitchenMaster cooking buddies"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for KitchenMaster cooking buddy
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Because it *clearly* needed one, this large all-in-one station provides the "
+"functions of FOODCO's kitchen buddy, now with complementary fume hoods and "
+"chemistry materials. Why a chef would need a chemical rig is anyone's "
+"guess, but you can mount it on a vehicle to make use of it."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+#: lang/json/vehicle_part_from_json.py
+msgid "cooking rig"
+msgid_plural "cooking rigs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for cooking rig
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Skillet, pot, hotplate, and chemistry set; everything you need to cook food "
+"and chemicals. Includes proper fume vents and a separator, so you don't "
+"contaminate your food with toxic chemicals."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "nuclear waste"
+msgid_plural "nuclear wastes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for nuclear waste
+#: lang/json/GENERIC_from_json.py
+msgid "A small pellet of silvery metal, still warm to the touch."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "nuclear fuel pellet"
+msgid_plural "nuclear fuel pellets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for nuclear fuel pellet
+#: lang/json/GENERIC_from_json.py
+msgid "A small pellet of fissile material. Handle carefully."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "hydraulic gauntlet"
+msgid_plural "hydraulic gauntlets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for hydraulic gauntlet
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A huge, heavy metal gauntlet lined with tubing and gauges. Slow and "
+"unwieldy, it uses internal pressure to deliver devastating blows, but takes "
+"tremendous strength to use effectively. Thanks to an internal microreactor, "
+"it doesn't require power of its own."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "barbed-wire rolling pin"
+msgid_plural "barbed-wire rolling pins"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for barbed-wire rolling pin
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Typically used to flatten dough, this rolling pin has been repurposed as a "
+"weapon, with barbed wire adding some extra power and weight to its swing. "
+"It has some real heft to it; perfect for the bakers of the apocalypse."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "hauling space"
+msgid_plural "hauling spaces"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for hauling space
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A huge metal space used in conjunction with extension of a vehicle's roof to "
+"create a very large amount of space for transporting goods."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
+msgid "control station"
+msgid_plural "control stations"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for control station
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A large and complex piloting station from a military vehicle, including a "
+"camera station, steering tools, and electronics controls."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "old broken animatronic fox"
+msgid_plural "old broken animatronic foxes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for old broken animatronic fox
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic fox. If it was in bad shape before, it's a wreck now. "
+"For some reason, it is oozing with blood - it's not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "old broken animatronic bunny"
+msgid_plural "old broken animatronic bunnies"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for old broken animatronic bunny
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic bunny. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "old broken animatronic chicken"
+msgid_plural "old broken animatronic chickens"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for old broken animatronic chicken
+#: lang/json/GENERIC_from_json.py
+msgid "A broken animatronic chicken. It doesn't look as attractive now."
+msgstr ""
+
+#. ~ Description for old broken animatronic chicken
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic chicken. For some reason, it is oozing with blood - "
+"it's not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "old broken animatronic bear"
+msgid_plural "old broken animatronic bears"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for old broken animatronic bear
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic bear. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken new animatronic bear"
+msgid_plural "broken new animatronic bears"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken new animatronic bear
+#: lang/json/GENERIC_from_json.py
+msgid "A broken animatronic bear. Limp and lifeless."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic bat"
+msgid_plural "broken animatronic bats"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic bat
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic bat. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic beaver"
+msgid_plural "broken animatronic beavers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic beaver
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic beaver. For some reason, it is oozing with blood - "
+"it's not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic cat"
+msgid_plural "broken animatronic cats"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic cat
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic cat. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic chipmunk"
+msgid_plural "broken animatronic chipmunks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic chipmunk
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic chipmunk. For some reason, it is oozing with blood - "
+"it's not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic cow"
+msgid_plural "broken animatronic cows"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic cow
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic cow. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic coyote"
+msgid_plural "broken animatronic coyotes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic coyote
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic coyote. For some reason, it is oozing with blood - "
+"it's not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic deer"
+msgid_plural "broken animatronic deer"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic deer
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic deer. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic horse"
+msgid_plural "broken animatronic horses"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic horse
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic horse. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic pig"
+msgid_plural "broken animatronic pigs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic pig
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic pig. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic sheep"
+msgid_plural "broken animatronic sheep"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic sheep
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic sheep. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic squirrel"
+msgid_plural "broken animatronic squirrels"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic squirrel
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic squirrel. For some reason, it is oozing with blood - "
+"it's not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic child"
+msgid_plural "broken animatronic children"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic child
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic child. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken new animatronic fox"
+msgid_plural "broken new animatronic foxes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken new animatronic fox
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic fox. It seems like it's still looking at you, enraged "
+"in what you've done to her."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic wreck"
+msgid_plural "broken animatronic wrecks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic wreck
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken, wrecked animatronic fox. You have no idea if it's actually dead, "
+"as it doesn't look that different from the condition you found it in."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken animatronic wolf"
+msgid_plural "broken animatronic wolves"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken animatronic wolf
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A broken animatronic wolf. For some reason, it is oozing with blood - it's "
+"not your blood."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken marionette"
+msgid_plural "broken marionettes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken marionette
+#: lang/json/GENERIC_from_json.py
+msgid "A broken marionette. How creepy."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "broken new animatronic bunny"
+msgid_plural "broken new animatronic bunnies"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for broken new animatronic bunny
+#: lang/json/GENERIC_from_json.py
+msgid "A broken animatronic bunny. Limp and lifeless."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "withered plant bundle"
+msgid_plural "withered plant bundles"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for withered plant bundle
+#: lang/json/GENERIC_from_json.py
+msgid "A bundle of plant matter"
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "C.R.I.T hatchet"
+msgid_plural "C.R.I.T hatchets"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T hatchet
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee "
+"weapon, and is useful both for chopping things and for use as a hammer."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "C.R.I.T Blade-work manual"
+msgid_plural "C.R.I.T Blade-work manuals"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Blade-work manual
+#: lang/json/GENERIC_from_json.py
+msgid "An advanced military manual on C.R.I.T Blade-work."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "C.R.I.T Enforcement manual"
+msgid_plural "C.R.I.T Enforcement manuals"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Enforcement manual
+#: lang/json/GENERIC_from_json.py
+msgid "An advanced military manual on C.R.I.T Enforcer melee."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "C.R.I.T CQB manual"
+msgid_plural "C.R.I.T CQB manuals"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T CQB manual
+#: lang/json/GENERIC_from_json.py
+msgid "An advanced military manual on C.R.I.T general CQB."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "6.54x42mm casing"
+msgid_plural "6.54x42mm casings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for 6.54x42mm casing
+#: lang/json/GENERIC_from_json.py
+msgid "An empty casing from a 6.54x42 round."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "pistol ammo casing"
+msgid_plural "pistol ammo casings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for pistol ammo casing
+#: lang/json/GENERIC_from_json.py
+msgid "An empty casing from a pistol round."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "revolver ammo casing"
+msgid_plural "revolver ammo casings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for revolver ammo casing
+#: lang/json/GENERIC_from_json.py
+msgid "An empty casing from a revolver round."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "light rifle ammo casing"
+msgid_plural "light rifle ammo casings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for light rifle ammo casing
+#: lang/json/GENERIC_from_json.py
+msgid "An empty casing from a light rifle round."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "rifle casing"
msgid_plural "rifle casings"
msgstr[0] ""
msgstr[1] ""
@@ -39921,25 +41495,177 @@ msgid ""
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "The Medieval Warrior"
-msgid_plural "The Medieval Warrior"
+msgid "The Life and Work of Tiger Sauer"
+msgid_plural "The Life and Work of Tiger Sauer"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for The Medieval Warrior
+#. ~ Description for The Life and Work of Tiger Sauer
#: lang/json/GENERIC_from_json.py
-msgid "A complete guide to Medieval Swordsmanship."
+msgid ""
+"A biography of a combat cyborg agent detailing his philosophy and martial "
+"art."
msgstr ""
#: lang/json/GENERIC_from_json.py
-msgid "The Modern Pankratiast"
-msgid_plural "The Modern Pankratiast"
+msgid "The Stormhammer"
+msgid_plural "The Stormhammers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for The Modern Pankratiast
+#. ~ Description for The Stormhammer
#: lang/json/GENERIC_from_json.py
-msgid "A complete guide to Pankration."
+msgid ""
+"A crackling magical warhammer full of lightning to smite your foes with, and "
+"of course, smash things to bits!"
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py
+msgid "Stormfist"
+msgid_plural "Stormfists"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Stormfist
+#: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py
+msgid ""
+"Encases your arm and hand in a sheath of crackling magical lightning, you "
+"can punch and defend yourself with it in melee combat."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "A Technomancer's Guide to Debugging C:DDA"
+msgid_plural "A Technomancer's Guide to Debugging C:DDAs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for A Technomancer's Guide to Debugging C:DDA
+#: lang/json/GENERIC_from_json.py
+msgid "static std::string description( spell sp ) const;"
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "A Beginner's Guide to Magic"
+msgid_plural "A Beginner's Guide to Magics"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for A Beginner's Guide to Magic
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"You would describe this as more like a pamphlet than a spellbook, but it "
+"seems to have at least one interesting spell you can use."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "Wizarding Guide to Backpacking"
+msgid_plural "Wizarding Guide to Backpackings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Wizarding Guide to Backpacking
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This appears to be the spell version of a guide for what things to take with "
+"you when backpacking. It's a little bulky, but will certainly prove useful."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "Pyromancy for Heretics"
+msgid_plural "Pyromancy for Hereticss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Pyromancy for Heretics
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This charred husk of a book still contains many ways to light things aflame."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "A Treatise on Magical Elements"
+msgid_plural "A Treatise on Magical Elementss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for A Treatise on Magical Elements
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This details complex diagrams, rituals, and choreography that describes "
+"various spells."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "Introduction to the Divine"
+msgid_plural "Introduction to the Divines"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Introduction to the Divine
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This appears to mostly be a religious text, but it does have some notes on "
+"healing."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "The Paladin's Guide to Modern Spellcasting"
+msgid_plural "The Paladin's Guide to Modern Spellcastings"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for The Paladin's Guide to Modern Spellcasting
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"Despite the title, this seems to be written in Middle English. A little "
+"obtuse, but you can make out most of the words well enough."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "Winter's Eternal Grasp"
+msgid_plural "Winter's Eternal Grasps"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Winter's Eternal Grasp
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"This slim book almost seems to be made from ice, it's cold to the touch."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "The Tome of The Oncoming Storm"
+msgid_plural "The Tome of The Oncoming Storms"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for The Tome of The Oncoming Storm
+#: lang/json/GENERIC_from_json.py
+msgid ""
+"A large book embossed with crossed lightning bolts and storm clouds, it "
+"tingles to the touch."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "Nondescript Spellbook"
+msgid_plural "Nondescript Spellbooks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Nondescript Spellbook
+#: lang/json/GENERIC_from_json.py
+msgid "A small book, containing spells created by a novice magician."
+msgstr ""
+
+#: lang/json/GENERIC_from_json.py
+msgid "The Medieval Warrior"
+msgid_plural "The Medieval Warrior"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for The Medieval Warrior
+#: lang/json/GENERIC_from_json.py
+msgid "A complete guide to Medieval Swordsmanship."
msgstr ""
#: lang/json/GENERIC_from_json.py
@@ -41196,12 +42922,6 @@ msgid_plural "broken atomic sultans"
msgstr[0] ""
msgstr[1] ""
-#: lang/json/GENERIC_from_json.py
-msgid "AI core"
-msgid_plural "AI cores"
-msgstr[0] ""
-msgstr[1] ""
-
#. ~ Description for AI core
#: lang/json/GENERIC_from_json.py
msgid "A computer module for controlling robots."
@@ -41369,12 +43089,6 @@ msgid ""
"However, this comes at the cost of being prohibitively heavy and obstructive."
msgstr ""
-#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py
-msgid "turret chassis"
-msgid_plural "turret chassis"
-msgstr[0] ""
-msgstr[1] ""
-
#. ~ Description for turret chassis
#: lang/json/GENERIC_from_json.py
msgid ""
@@ -41567,9 +43281,12 @@ msgid "ARMOR"
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "ultra-light battery cell"
-msgstr ""
+msgid "ultra-light battery"
+msgid_plural "ultra-light batteries"
+msgstr[0] ""
+msgstr[1] ""
+#. ~ Description for ultra-light battery
#. ~ Description for ultra-light battery cell
#: lang/json/MAGAZINE_from_json.py
msgid ""
@@ -41578,20 +43295,40 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "atomic ultra-light battery cell"
-msgstr ""
+msgid "ultra-light plutonium fuel battery"
+msgid_plural "ultra-light plutonium fuel batteries"
+msgstr[0] ""
+msgstr[1] ""
-#. ~ Description for atomic ultra-light battery cell
+#. ~ Description for ultra-light plutonium fuel battery
#: lang/json/MAGAZINE_from_json.py
msgid ""
-"This is an atomic battery designed for small size over everything else. It "
-"retains its universal compatibility, though. It cannot be recharged."
+"This battery uses a thin plutonium-244 rod to stablize an exotic "
+"nanocompound. It is universally compatible with small devices. Although it "
+"stores a huge amount of power, it cannot be recharged."
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "light battery cell"
+msgid "ultra-light disposable battery"
+msgid_plural "ultra-light disposable batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for ultra-light disposable battery
+#: lang/json/MAGAZINE_from_json.py
+msgid ""
+"This is a light battery cell designed for small size over everything else. "
+"It retains its universal compatibility, though. The battery's chemistry "
+"means that it has a very high capacity, but cannot be recharged."
msgstr ""
+#: lang/json/MAGAZINE_from_json.py
+msgid "light battery"
+msgid_plural "light batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for light battery
#. ~ Description for light battery cell
#: lang/json/MAGAZINE_from_json.py
msgid ""
@@ -41600,12 +43337,12 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "light battery cell (high-capacity)"
-msgid_plural "light battery cells (high-capacity)"
+msgid "light battery (high-capacity)"
+msgid_plural "light batteries (high-capacity)"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for light battery cell (high-capacity)
+#. ~ Description for light battery (high-capacity)
#: lang/json/MAGAZINE_from_json.py
msgid ""
"This is a high-capacity light battery cell, universally compatible with all "
@@ -41613,20 +43350,41 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "atomic light battery cell"
-msgstr ""
+msgid "light plutonium fuel battery"
+msgid_plural "light plutonium fuel batteries"
+msgstr[0] ""
+msgstr[1] ""
-#. ~ Description for atomic light battery cell
+#. ~ Description for light plutonium fuel battery
#: lang/json/MAGAZINE_from_json.py
msgid ""
-"This is an atomic battery, universally compatible with all kinds of personal "
-"electronic devices. It cannot be recharged."
+"This battery uses a thin plutonium-244 rod to stablize an exotic "
+"nanocompound. It is universally compatible with all kinds of personal "
+"electronic devices. Although it stores a huge amount of power, it cannot be "
+"recharged."
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "medium battery cell"
+msgid "light disposable battery"
+msgid_plural "light disposable batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for light disposable battery
+#: lang/json/MAGAZINE_from_json.py
+msgid ""
+"This is a light battery cell, universally compatible with all kinds of small "
+"devices. The battery's chemistry means that it has a very high capacity, "
+"but cannot be recharged."
msgstr ""
+#: lang/json/MAGAZINE_from_json.py
+msgid "medium battery"
+msgid_plural "medium batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for medium battery
#. ~ Description for medium battery cell
#: lang/json/MAGAZINE_from_json.py
msgid ""
@@ -41635,11 +43393,12 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "medium battery cell (high-capacity)"
-msgid_plural "medium battery cells (high-capacity)"
+msgid "medium battery (high-capacity)"
+msgid_plural "medium batteries (high-capacity)"
msgstr[0] ""
msgstr[1] ""
+#. ~ Description for medium battery (high-capacity)
#. ~ Description for medium battery cell (high-capacity)
#: lang/json/MAGAZINE_from_json.py
msgid ""
@@ -41648,20 +43407,41 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "atomic medium battery cell"
-msgstr ""
+msgid "medium plutonium fuel battery"
+msgid_plural "medium plutonium fuel batteries"
+msgstr[0] ""
+msgstr[1] ""
-#. ~ Description for atomic medium battery cell
+#. ~ Description for medium plutonium fuel battery
#: lang/json/MAGAZINE_from_json.py
msgid ""
-"This is an atomic battery, universally compatible with all kinds of "
-"appliances and power tools. It cannot be recharged."
+"This battery uses a thin plutonium-244 rod to stablize an exotic "
+"nanocompound. It is universally compatible with all kinds of appliances and "
+"power tools. Although it stores a huge amount of power, it cannot be "
+"recharged."
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "heavy battery cell"
+msgid "medium disposable battery"
+msgid_plural "medium disposable batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for medium disposable battery
+#: lang/json/MAGAZINE_from_json.py
+msgid ""
+"This is a medium battery cell, universally compatible with all kinds of "
+"appliances and power tools. The battery's chemistry means that it has a "
+"very high capacity, but cannot be recharged."
msgstr ""
+#: lang/json/MAGAZINE_from_json.py
+msgid "heavy battery"
+msgid_plural "heavy batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for heavy battery
#. ~ Description for heavy battery cell
#: lang/json/MAGAZINE_from_json.py
msgid ""
@@ -41670,11 +43450,12 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "heavy battery cell (high-capacity)"
-msgid_plural "heavy battery cells (high-capacity)"
+msgid "heavy battery (high-capacity)"
+msgid_plural "heavy batteries (high-capacity)"
msgstr[0] ""
msgstr[1] ""
+#. ~ Description for heavy battery (high-capacity)
#. ~ Description for heavy battery cell (high-capacity)
#: lang/json/MAGAZINE_from_json.py
msgid ""
@@ -41683,14 +43464,32 @@ msgid ""
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "atomic heavy battery cell"
+msgid "heavy plutonium fuel battery"
+msgid_plural "heavy plutonium fuel batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for heavy plutonium fuel battery
+#: lang/json/MAGAZINE_from_json.py
+msgid ""
+"This battery uses a thin plutonium-244 rod to stablize an exotic "
+"nanocompound. It is universally compatible with all kinds of industrial-"
+"grade equipment and large tools. Although it stores a huge amount of power, "
+"it cannot be recharged."
msgstr ""
-#. ~ Description for atomic heavy battery cell
+#: lang/json/MAGAZINE_from_json.py
+msgid "heavy disposable battery"
+msgid_plural "heavy disposable batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for heavy disposable battery
#: lang/json/MAGAZINE_from_json.py
msgid ""
-"This is an atomic battery, universally compatible with all kinds of "
-"industrial-grade equipment and large tools. It cannot be recharged."
+"This is a heavy battery cell, universally compatible with all kinds of "
+"industrial-grade equipment and large tools. The battery's chemistry means "
+"that it has a very high capacity, but cannot be recharged."
msgstr ""
#: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py
@@ -42101,6 +43900,33 @@ msgstr ""
msgid "A military issue 20-round steel box magazine for the FN SCAR-H rifle."
msgstr ""
+#: lang/json/MAGAZINE_from_json.py
+msgid "HK417 magazine"
+msgstr ""
+
+#. ~ Description for HK417 magazine
+#: lang/json/MAGAZINE_from_json.py
+msgid "A 20 round double stack box magazine for the HK417 rifle."
+msgstr ""
+
+#: lang/json/MAGAZINE_from_json.py
+msgid "HK417 compact magazine"
+msgstr ""
+
+#. ~ Description for HK417 compact magazine
+#: lang/json/MAGAZINE_from_json.py
+msgid "A 10 round double stack box magazine for the HK417 rifle."
+msgstr ""
+
+#: lang/json/MAGAZINE_from_json.py
+msgid "AR-10 magazine"
+msgstr ""
+
+#. ~ Description for AR-10 magazine
+#: lang/json/MAGAZINE_from_json.py
+msgid "A 20 round double stack box magazine for the AR-10 rifle."
+msgstr ""
+
#: lang/json/MAGAZINE_from_json.py
msgid "Walther PPK magazine"
msgstr ""
@@ -43080,37 +44906,47 @@ msgid ""
"tremendous amount of energy."
msgstr ""
-#. ~ Description for light battery cell (high-capacity)
#: lang/json/MAGAZINE_from_json.py
-msgid ""
-"This is a high-capacity light battery cell, universally compatible with all "
-"kinds of personal electronic devices."
+msgid "ultra-light battery cell"
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "rechargeable battery"
-msgid_plural "rechargeable batteries"
+msgid "light battery cell"
+msgstr ""
+
+#: lang/json/MAGAZINE_from_json.py
+msgid "light battery cell (high-capacity)"
+msgid_plural "light battery cells (high-capacity)"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for rechargeable battery
+#. ~ Description for light battery cell (high-capacity)
#: lang/json/MAGAZINE_from_json.py
msgid ""
-"This surprisingly heavy battery is not very energy-dense, but can be "
-"recharged."
+"This is a high-capacity light battery cell, universally compatible with all "
+"kinds of personal electronic devices."
msgstr ""
#: lang/json/MAGAZINE_from_json.py
-msgid "heavy duty battery"
-msgid_plural "heavy duty batteries"
+msgid "medium battery cell"
+msgstr ""
+
+#: lang/json/MAGAZINE_from_json.py
+msgid "medium battery cell (high-capacity)"
+msgid_plural "medium battery cells (high-capacity)"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for heavy duty battery
#: lang/json/MAGAZINE_from_json.py
-msgid "This big rechargeable battery is almost as heavy as solid lead."
+msgid "heavy battery cell"
msgstr ""
+#: lang/json/MAGAZINE_from_json.py
+msgid "heavy battery cell (high-capacity)"
+msgid_plural "heavy battery cells (high-capacity)"
+msgstr[0] ""
+msgstr[1] ""
+
#: lang/json/MAGAZINE_from_json.py
msgid "CW-24 auto-magazine"
msgstr ""
@@ -43374,6 +45210,19 @@ msgid ""
"A 7-round magazine which holds revolver ammo for use with a magnum pistol"
msgstr ""
+#: lang/json/MAGAZINE_from_json.py
+msgid "small mana crystal"
+msgid_plural "ultra-light batteries"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for small mana crystal
+#: lang/json/MAGAZINE_from_json.py
+msgid ""
+"This is a small mana crystal specifically designed to be attacked to wand "
+"tips."
+msgstr ""
+
#: lang/json/MAGAZINE_from_json.py
msgid "30x113mm ammo belt"
msgstr ""
@@ -43525,9 +45374,7 @@ msgstr ""
#. ~ Description for Aftershock
#: lang/json/MOD_INFO_from_json.py
-msgid ""
-"Drifts the game away from realism and more towards sci-fi. NOTE: "
-"Incompatible with Bright Nights."
+msgid "Drifts the game away from realism and more towards sci-fi."
msgstr ""
#: lang/json/MOD_INFO_from_json.py
@@ -43560,14 +45407,14 @@ msgid "Adds boats."
msgstr ""
#: lang/json/MOD_INFO_from_json.py
-msgid "Bright Nights"
+msgid "C.R.I.T Expansion Mod"
msgstr ""
-#. ~ Description for Bright Nights
+#. ~ Description for C.R.I.T Expansion Mod
#: lang/json/MOD_INFO_from_json.py
msgid ""
-"More action-centered, sci-fi, experimental, Cataclysm. NOTE: Incompatible "
-"with Aftershock."
+"Adds new professions, guns, gunmods, enemies, materials, martial arts, "
+"melees/tools and weapon techniques."
msgstr ""
#: lang/json/MOD_INFO_from_json.py
@@ -43769,6 +45616,15 @@ msgid ""
"martial arts."
msgstr ""
+#: lang/json/MOD_INFO_from_json.py
+msgid "Magiclysm"
+msgstr ""
+
+#. ~ Description for Magiclysm
+#: lang/json/MOD_INFO_from_json.py
+msgid "Cataclysm but with magic spells!"
+msgstr ""
+
#: lang/json/MOD_INFO_from_json.py
msgid "Manual Bionic Installation"
msgstr ""
@@ -44203,6 +46059,17 @@ msgstr ""
msgid "Enables the bionic slots system."
msgstr ""
+#: lang/json/MOD_INFO_from_json.py
+msgid "Classic zombies"
+msgstr ""
+
+#. ~ Description for Classic zombies
+#: lang/json/MOD_INFO_from_json.py
+msgid ""
+"Only spawn classic zombies and natural wildlife. This disables certain "
+"buildings and map extras."
+msgstr ""
+
#: lang/json/MOD_INFO_from_json.py
msgid "Dark Days Ahead"
msgstr ""
@@ -44212,6 +46079,15 @@ msgstr ""
msgid "Core content for Cataclysm-DDA"
msgstr ""
+#: lang/json/MOD_INFO_from_json.py
+msgid "Fast Healing"
+msgstr ""
+
+#. ~ Description for Fast Healing
+#: lang/json/MOD_INFO_from_json.py
+msgid "Increases healing speed and the effectiveness of healing items."
+msgstr ""
+
#: lang/json/MOD_INFO_from_json.py
msgid "Makeshift Items Mod"
msgstr ""
@@ -44276,6 +46152,48 @@ msgstr ""
msgid "Adds more overlapping ammo types and more real-world firearms."
msgstr ""
+#: lang/json/MOD_INFO_from_json.py
+msgid "sees-player icon, +attitude"
+msgstr ""
+
+#. ~ Description for sees-player icon, +attitude
+#: lang/json/MOD_INFO_from_json.py
+msgid ""
+"Adds attitude-tinted icon if a creature sees a player, and a tinted thought "
+"bubble otherwise. Designed for Live/Dead people tileset."
+msgstr ""
+
+#: lang/json/MOD_INFO_from_json.py
+msgid "sees-player icon, -attitude"
+msgstr ""
+
+#. ~ Description for sees-player icon, -attitude
+#: lang/json/MOD_INFO_from_json.py
+msgid ""
+"Adds attitude-tinted icon if a creature sees a player, nothing when player "
+"is unseen. Designed for Live/Dead people tileset."
+msgstr ""
+
+#: lang/json/MOD_INFO_from_json.py
+msgid "sees-player icon, retrodays"
+msgstr ""
+
+#. ~ Description for sees-player icon, retrodays
+#: lang/json/MOD_INFO_from_json.py
+msgid ""
+"Adds indicator icon if a creature sees the player. Designed for the "
+"retrodays tileset."
+msgstr ""
+
+#: lang/json/MOD_INFO_from_json.py
+msgid "SpeedyDex"
+msgstr ""
+
+#. ~ Description for SpeedyDex
+#: lang/json/MOD_INFO_from_json.py
+msgid "Higher dex increases your speed."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "debug monster"
msgstr ""
@@ -44520,7 +46438,7 @@ msgstr ""
#. ~ Description for chicken walker
#: lang/json/MONSTER_from_json.py
msgid ""
-"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a "
+"The Northrop ATSV, a massive, heavily-armed and armored robot walking on a "
"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade "
"launcher, 5.56 anti-personnel gun, and the ability to electrify itself "
"against attackers, it is an effective automated sentry, though production "
@@ -45225,7 +47143,7 @@ msgstr ""
#. ~ Description for Beagle Mini-Tank UGV
#: lang/json/MONSTER_from_json.py
msgid ""
-"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an "
+"The Northrop Beagle is a refrigerator-sized urban warfare UGV. Sporting an "
"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-"
"infantry weapons, it's designed for high-risk urban fighting."
msgstr ""
@@ -46122,6 +48040,20 @@ msgid ""
"its thorax covered in tiny holes. An ominous buzzing emanates from it."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "prototype robot"
+msgstr ""
+
+#. ~ Description for prototype robot
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"The single glowing eye of this robot surveys the landscape periodically, as "
+"it performs the endless slaughter dictated by a misinterpreted and cruel "
+"routine. Between half-built plates, you can see the machinery and cables "
+"that animate it, and yet it moves deftly as it switches between one target "
+"and the next."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "NR-031 Dispatch"
msgstr ""
@@ -46130,7 +48062,7 @@ msgstr ""
#: lang/json/MONSTER_from_json.py
msgid ""
"The Northrop Dispatch, designed for crowd control situations, carries and "
-"deployes kamikaze drones of various types, with a small onboard EMP emitter "
+"deploys kamikaze drones of various types, with a small onboard EMP emitter "
"frying them in the event of its destruction. The bright green-and-yellow "
"paint marks a low-force variant - *comparatively* low-force, anyways - "
"typically deployed as guards after an area has been cleared."
@@ -46232,45 +48164,48 @@ msgid ""
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "Blinky"
-msgid_plural "Blinkies"
-msgstr[0] ""
-msgstr[1] ""
+msgid "tiny fish"
+msgstr ""
-#. ~ Description for Blinky
+#. ~ Description for tiny fish
#: lang/json/MONSTER_from_json.py
-msgid "A strange three-eyed fish."
+msgid "A tiny fish."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "freshwater eel"
+msgid "small fish"
msgstr ""
-#. ~ Description for freshwater eel
+#. ~ Description for small fish
#: lang/json/MONSTER_from_json.py
-msgid ""
-"An American eel. Used to be quite common in these parts until the dams were "
-"built. Guess they'll get a second chance now that they aren't running."
+msgid "A small fish."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "bowfin"
+msgid "medium fish"
msgstr ""
-#. ~ Description for bowfin
+#. ~ Description for medium fish
#: lang/json/MONSTER_from_json.py
-msgid ""
-"A Bowfin. These fish are related to gar but without the huge teeth, skin "
-"rending scales, and aggression."
+msgid "A medium fish."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "bullhead"
+msgid "large fish"
+msgstr ""
+
+#. ~ Description for large fish
+#: lang/json/MONSTER_from_json.py
+msgid "A large fish."
msgstr ""
-#. ~ Description for bullhead
#: lang/json/MONSTER_from_json.py
-msgid "A bullhead, a type of catfish. Delicious battered and fried."
+msgid "huge fish"
+msgstr ""
+
+#. ~ Description for huge fish
+#: lang/json/MONSTER_from_json.py
+msgid "A huge fish."
msgstr ""
#: lang/json/MONSTER_from_json.py
@@ -46280,165 +48215,373 @@ msgstr ""
#. ~ Description for trout
#: lang/json/MONSTER_from_json.py
msgid ""
-"A trout is a trout, without a doubt. A fish made popular by father-son "
-"fishing trips, Except for the part where you have to gut it."
+"A Trout. A fish made popular by father-son fishing trips, Except for the "
+"part where you have to gut it."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "carp"
+msgid "brown trout"
msgstr ""
-#. ~ Description for carp
+#. ~ Description for brown trout
#: lang/json/MONSTER_from_json.py
msgid ""
-"A golden-yellow common carp. Some people think they don't taste great, but "
-"you can't afford to be choosy in the cataclysm."
+"A Brown Trout. A fish made popular by father-son fishing trips, Except for "
+"the part where you have to gut it."
msgstr ""
-#. ~ Description for pike
+#: lang/json/MONSTER_from_json.py
+msgid "brook trout"
+msgstr ""
+
+#. ~ Description for brook trout
#: lang/json/MONSTER_from_json.py
msgid ""
-"A pike. Pike can be a pretty aggressive fish, careful around those teeth."
+"A Brook Trout. A fish made popular by father-son fishing trips, Except for "
+"the part where you have to gut it."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "bluegill"
+msgid "lake trout"
msgstr ""
-#. ~ Description for bluegill
+#. ~ Description for lake trout
#: lang/json/MONSTER_from_json.py
msgid ""
-"A bluegill, an invasive species in Japan. Commonly gutted and cooked whole."
+"A Lake trout. A fish made popular by father-son fishing trips, Except for "
+"the part where you have to gut it."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "smallmouth bass"
-msgid_plural "smallmouth bass"
-msgstr[0] ""
-msgstr[1] ""
+msgid "rainbow trout"
+msgstr ""
-#. ~ Description for smallmouth bass
+#. ~ Description for rainbow trout
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A Rainbow Trout. A fish made popular by father-son fishing trips, Except "
+"for the part where you have to gut it."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "steelhead trout"
+msgstr ""
+
+#. ~ Description for steelhead trout
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A Steelhead Trout. A fish made popular by father-son fishing trips, Except "
+"for the part where you have to gut it."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "salmon"
+msgstr ""
+
+#. ~ Description for salmon
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"An Atlantic Salmon. A very fatty, nutritious fish. Tastes great smoked."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "kokanee salmon"
+msgstr ""
+
+#. ~ Description for kokanee salmon
+#: lang/json/MONSTER_from_json.py
+msgid "A Kokanee Salmon. A very fatty, nutritious fish. Tastes great smoked."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "chinook salmon"
+msgstr ""
+
+#. ~ Description for chinook salmon
+#: lang/json/MONSTER_from_json.py
+msgid "A Chinook Salmon. A very fatty, nutritious fish. Tastes great smoked."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "coho salmon"
+msgstr ""
+
+#. ~ Description for coho salmon
+#: lang/json/MONSTER_from_json.py
+msgid "A Coho Salmon. A very fatty, nutritious fish. Tastes great smoked."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "whitefish"
+msgstr ""
+
+#. ~ Description for whitefish
#: lang/json/MONSTER_from_json.py
msgid ""
-"A Smallmouth bass. Being intolerant to pollution in the water, smallmouth "
-"bass are a good indicator of how clean it is. Just because you see them "
-"though, doesn't mean you can drink the water without boiling it first."
+"A whitefish, closely related to salmon. One can assume they are just as "
+"nice when cooked with smoke."
msgstr ""
#: lang/json/MONSTER_from_json.py
msgid "largemouth bass"
-msgid_plural "largemouth bass"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
#. ~ Description for largemouth bass
#: lang/json/MONSTER_from_json.py
-msgid "A largemouth bass. Very popular with sports fishermen."
+msgid "A Largemouth Bass. Very popular with sports fishermen."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "smallmouth bass"
+msgstr ""
+
+#. ~ Description for smallmouth bass
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A Smallmouth Bass. Being intolerant to pollution in the water, smallmouth "
+"bass are a good indicator of how clean it is."
msgstr ""
#: lang/json/MONSTER_from_json.py
msgid "striped bass"
-msgid_plural "striped bass"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
#. ~ Description for striped bass
#: lang/json/MONSTER_from_json.py
msgid ""
-"A striped bass. Mostly a salt water fish, they migrate to fresher water to "
+"A Striped Bass. Mostly a salt water fish, they migrate to fresher water to "
"spawn."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "white bass"
+msgstr ""
+
+#. ~ Description for white bass
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A White Bass. Common to the region, a slab-sided and spiny-rayed little "
+"fish."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "perch"
-msgid_plural "perches"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
#. ~ Description for perch
#: lang/json/MONSTER_from_json.py
msgid ""
-"A small spritely perch. A very bony fish, still got some tasty meat on it "
+"A small spritely Perch. A very bony fish, still got some tasty meat on it "
"though."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "salmon"
+msgid "walleye"
msgstr ""
-#. ~ Description for salmon
+#. ~ Description for walleye
#: lang/json/MONSTER_from_json.py
-msgid "A salmon. A very fatty, nutritious fish. Tastes great smoked."
+msgid "A Walleye, a green-brown medium-sized fish with a white belly."
msgstr ""
#: lang/json/MONSTER_from_json.py
msgid "sunfish"
-msgid_plural "sunfish"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
#. ~ Description for sunfish
#: lang/json/MONSTER_from_json.py
+msgid "A Sunfish. A small fish related to bass or bluegill."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "pumpkinseed sunfish"
+msgstr ""
+
+#. ~ Description for pumpkinseed sunfish
+#: lang/json/MONSTER_from_json.py
+msgid "A Pumpkinseed Sunfish. A small fish related to bass or bluegill."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "bluegill"
+msgstr ""
+
+#. ~ Description for bluegill
+#: lang/json/MONSTER_from_json.py
msgid ""
-"A sunfish. No, not the giant tropical thing. This one is a small fish "
-"related to bass or bluegill."
+"A Bluegill, an invasive species in Japan. Commonly gutted and cooked whole."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "whitefish"
-msgid_plural "whitefish"
-msgstr[0] ""
-msgstr[1] ""
+msgid "redbreast sunfish"
+msgstr ""
-#. ~ Description for whitefish
+#. ~ Description for redbreast sunfish
+#: lang/json/MONSTER_from_json.py
+msgid "A Redbreast Sunfish. A small fish related to bass or bluegill."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "green sunfish"
+msgstr ""
+
+#. ~ Description for green sunfish
+#: lang/json/MONSTER_from_json.py
+msgid "A Green Sunfish. A small fish related to bass or bluegill."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "longear sunfish"
+msgstr ""
+
+#. ~ Description for longear sunfish
+#: lang/json/MONSTER_from_json.py
+msgid "A Longear Sunfish. A small fish related to bass or bluegill."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "redear sunfish"
+msgstr ""
+
+#. ~ Description for redear sunfish
+#: lang/json/MONSTER_from_json.py
+msgid "A Redear Sunfish. A small fish related to bass or bluegill."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "rock bass"
+msgstr ""
+
+#. ~ Description for rock bass
#: lang/json/MONSTER_from_json.py
msgid ""
-"A whitefish, closely related to salmon. One can assume they are just as "
-"nice when cooked with smoke."
+"A Rock Bass. Related to sunfish, this tiny fish has a camoflauge-like "
+"patterning and a red eye."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "calico bass"
+msgstr ""
+
+#. ~ Description for calico bass
+#: lang/json/MONSTER_from_json.py
+msgid "A Calico Bass. A medium-sized fish also known as a 'Crappie'."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "warmouth"
+msgstr ""
+
+#. ~ Description for warmouth
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A Warmouth, similar to a rock bass, this small fish is related to the "
+"sunfish."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "bullhead"
+msgstr ""
+
+#. ~ Description for bullhead
+#: lang/json/MONSTER_from_json.py
+msgid "A Bullhead, a type of catfish. Delicious battered and fried."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "channel catfish"
+msgstr ""
+
+#. ~ Description for channel catfish
+#: lang/json/MONSTER_from_json.py
+msgid "A Channel Catfish, they have a forked tail and long whiskers."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "white catfish"
+msgstr ""
+
+#. ~ Description for white catfish
+#: lang/json/MONSTER_from_json.py
+msgid "A White Catfish, a small whiskered fish with a broad head."
+msgstr ""
+
+#. ~ Description for pike
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A Northern Pike. Pike can be a pretty aggressive fish, careful around those "
+"teeth."
msgstr ""
#: lang/json/MONSTER_from_json.py
msgid "pickerel"
-msgid_plural "pickerel"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
#. ~ Description for pickerel
#: lang/json/MONSTER_from_json.py
-msgid "A pickerel. It looks like a pike, but much smaller."
+msgid "A Pickerel. It looks like a pike, but much smaller."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "jawed terror"
+msgid "muskellunge"
msgstr ""
-#. ~ Description for jawed terror
+#. ~ Description for muskellunge
#: lang/json/MONSTER_from_json.py
msgid ""
-"A once aggressive and hungry bull shark, this jawed terror is now even more "
-"aggressive, possibly thanks to its lack of a functioning brain."
+"A Muskellunge. Closely related to pike, it shares the same aggression and "
+"sharp teeth."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "giant carp"
+msgid "white sucker"
msgstr ""
-#. ~ Description for giant carp
+#. ~ Description for white sucker
+#: lang/json/MONSTER_from_json.py
+msgid "A White Sucker. It has a streamlined body with a round mouth."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "carp"
+msgstr ""
+
+#. ~ Description for carp
#: lang/json/MONSTER_from_json.py
msgid ""
-"This thing seems like a carp, only swollen and very very angry. Death is "
-"the gift of the carp god."
+"A golden-yellow Common Carp. Some people think they don't taste great, but "
+"you can't afford to be choosy in the cataclysm."
msgstr ""
#: lang/json/MONSTER_from_json.py
-msgid "giant salmon"
+msgid "grass carp"
msgstr ""
-#. ~ Description for giant salmon
+#. ~ Description for grass carp
+#: lang/json/MONSTER_from_json.py
+msgid "A huge Grass Carp. A golden, herbivorous fish."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "bowfin"
+msgstr ""
+
+#. ~ Description for bowfin
#: lang/json/MONSTER_from_json.py
msgid ""
-"A mutated salmon, the same size as a large dog and quite dangerous to the "
-"inexperienced angler."
+"A Bowfin. These fish are related to gar but without the huge teeth, skin "
+"rending scales, and aggression."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "fallfish"
+msgstr ""
+
+#. ~ Description for fallfish
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A Fallfish. These fish are related to gar but without the huge teeth, skin "
+"rending scales, and aggression."
msgstr ""
#: lang/json/MONSTER_from_json.py
@@ -46464,6 +48607,61 @@ msgid ""
"water, and some spicy seasonings..."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "Blinky"
+msgid_plural "Blinkies"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Blinky
+#: lang/json/MONSTER_from_json.py
+msgid "A strange three-eyed fish."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "freshwater eel"
+msgstr ""
+
+#. ~ Description for freshwater eel
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"An American eel. Used to be quite common in these parts until the dams were "
+"built. Guess they'll get a second chance now that they aren't running."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "jawed terror"
+msgstr ""
+
+#. ~ Description for jawed terror
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A once aggressive and hungry bull shark, this jawed terror is now even more "
+"aggressive, possibly thanks to its lack of a functioning brain."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "giant carp"
+msgstr ""
+
+#. ~ Description for giant carp
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"This thing seems like a carp, only swollen and very very angry. Death is "
+"the gift of the carp god."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "giant salmon"
+msgstr ""
+
+#. ~ Description for giant salmon
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A mutated salmon, the same size as a large dog and quite dangerous to the "
+"inexperienced angler."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "seweranha"
msgstr ""
@@ -47548,6 +49746,24 @@ msgid ""
"decade before the Cataclysm. Lucky you."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "marloss zealot"
+msgstr ""
+
+#. ~ Description for marloss zealot
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"Her eyes lie vacant and spittle foams in her mouth, as she recites from the "
+"hymns in rapturous ecstasy."
+msgstr ""
+
+#. ~ Description for marloss zealot
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"His eyes lie vacant and spittle foams in his mouth, as he recites from the "
+"hymns in rapturous ecstasy."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "laser turret"
msgstr ""
@@ -47584,6 +49800,31 @@ msgid ""
"Atomics' TX-1 9x19mm model and an automated M4 carbine."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "experimental mutant"
+msgstr ""
+
+#. ~ Description for experimental mutant
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A deformed amalgamation of man and animal. Grotesque humanoid covered in "
+"fur and a torn jumpsuit. The sinister fangs, claws and the look of insanity "
+"in his pale yellow eyes are a testament to that he lost all of his humanity."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "evolved mutant"
+msgstr ""
+
+#. ~ Description for evolved mutant
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A towering beast that is neither human nor animal anymore. A malformed, "
+"huge creature covered in thick fur and the torn bottom part of a jumpsuit. "
+"The sinister fangs, claws and the look of insanity in his pale yellow eyes "
+"are a testament to that he lost all of his humanity."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "centipede"
msgstr ""
@@ -48066,6 +50307,18 @@ msgid ""
"clumsily."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "prisoner zombie"
+msgstr ""
+
+#. ~ Description for prisoner zombie
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"Apparently this zombie was doing time when the Cataclysm struck. It wears "
+"black and white striped prisoner clothes, and tattoos can be seen on his "
+"decaying skin."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "zombie soldier"
msgstr ""
@@ -48499,6 +50752,107 @@ msgid ""
"stinks like death."
msgstr ""
+#: lang/json/MONSTER_from_json.py
+msgid "Slasher Necromorph"
+msgstr ""
+
+#. ~ Description for Slasher Necromorph
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A horrifically twisted human body. Two massive blades have burst through its "
+"hands which are poised above its head endlessly as it stalks about with "
+"terrifying purpose."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Waster Necromorph"
+msgstr ""
+
+#. ~ Description for Waster Necromorph
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"Clad in heavy assault gear, an eerie light green glows beneath its helmet "
+"from sunken eye sockets and a gaping mouth. Strange blade like points have "
+"burst out of its arms making it a formidable force to be reckoned with."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Leaper Necromorph"
+msgstr ""
+
+#. ~ Description for Leaper Necromorph
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"This once-human body is barely recognizable, scrambling about on its abdomen "
+"as it leaps forward with immense arm strength. With elongated fangs that are "
+"can easily mutilate your flesh, the grotesque face roars incessantly. The "
+"lower body has fused together into one giant tail with a barbed spike."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Twitcher Necromorph"
+msgstr ""
+
+#. ~ Description for Twitcher Necromorph
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"With narrow blades coming out of its hands, this corpse spasmically dashes "
+"to-and-fro with surprising speed. It carries itself quite steadily when "
+"idle, further observation shows that the person before this husk was a C.R.I."
+"T S-I G.E.A.R operator."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Pack Necromorph"
+msgstr ""
+
+#. ~ Description for Pack Necromorph
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A shrieking mutated child zombie. The face is is mainly blank with eyes "
+"swollen shut and a torn-open mouth with flaps of flesh hanging to the side. "
+"A pair of seemingly purposeless appendages sprout from its shoulders before "
+"ending in its arms. Its small hands end in sharp claws."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Puker Necromorph"
+msgstr ""
+
+#. ~ Description for Puker Necromorph
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A rather mutilated corpse covered in gaping sores. Hanging arms with hands "
+"that have long corroded away reveal jagged edges that could easily pierce "
+"into your flesh. A sticky, frothing yellow sludge flows from its exposed "
+"internal organs to its unhinged jaw where it drips, hissing as it eats "
+"through material."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Animate Arm"
+msgstr ""
+
+#. ~ Description for Animate Arm
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A dismembered arm that slowly crawls forward. Occasionally, tentacles sprout "
+"out from the wound and lash about wildly."
+msgstr ""
+
+#: lang/json/MONSTER_from_json.py
+msgid "Dullahan"
+msgstr ""
+
+#. ~ Description for Dullahan
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"A headless humanoid that slowly sways. Ornate and functional armor adorn "
+"this dreadful corpse which carries itself with an unerringly terrible "
+"steadiness. A long tentacle has sprouted out of its right arm which "
+"occasionally flails about wildly."
+msgstr ""
+
#. ~ Description for shocker zombie
#: lang/json/MONSTER_from_json.py
msgid ""
@@ -49692,6 +52046,16 @@ msgid ""
"pipes weaken the robot structurally, making it somewhat fragile."
msgstr ""
+#. ~ Description for chicken walker
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"The Northrup ATSV, a massive, heavily-armed and armored robot walking on a "
+"pair of reverse-jointed legs. Armed with a 40mm anti-vehicle grenade "
+"launcher, 5.56 anti-personnel gun, and the ability to electrify itself "
+"against attackers, it is an effective automated sentry, though production "
+"was limited due to a legal dispute."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "chainsaw horror"
msgstr ""
@@ -49734,6 +52098,14 @@ msgid ""
"right mind would craft such a twisted abomination."
msgstr ""
+#. ~ Description for Beagle Mini-Tank UGV
+#: lang/json/MONSTER_from_json.py
+msgid ""
+"The Northrup Beagle is a refrigerator-sized urban warfare UGV. Sporting an "
+"anti-tank missile launcher, 40mm grenade launcher, and numerous anti-"
+"infantry weapons, it's designed for high-risk urban fighting."
+msgstr ""
+
#: lang/json/MONSTER_from_json.py
msgid "fist king"
msgstr ""
@@ -49882,6 +52254,389 @@ msgid ""
"You could put this on a friendly dog."
msgstr ""
+#: lang/json/SPELL_from_json.py
+msgid "Smite"
+msgstr ""
+
+#. ~ Description for Smite
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Evil has become pervasive throughout the world. Let your power be the light "
+"that shines in the darkness!"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Cure Light Wounds"
+msgstr ""
+
+#. ~ Description for Cure Light Wounds
+#: lang/json/SPELL_from_json.py
+msgid "Heals a little bit of damage on the target."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Pain Split"
+msgstr ""
+
+#. ~ Description for Pain Split
+#: lang/json/SPELL_from_json.py
+msgid "Evens out damage among your limbs."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Megablast"
+msgstr ""
+
+#. ~ Description for Megablast
+#: lang/json/SPELL_from_json.py
+msgid ""
+"You always wanted to fire energy beams like in the animes you watched as a "
+"kid. Now you can!"
+msgstr ""
+
+#. ~ Use action menu_text for Louisville Slaughterer.
+#. ~ Use action menu_text for candle.
+#. ~ Use action menu_text for hobo stove.
+#: lang/json/SPELL_from_json.py lang/json/TOOL_from_json.py
+#: lang/json/TOOL_from_json.py
+#: src/veh_interact.cpp
+msgid "Light"
+msgstr ""
+
+#. ~ Description for Light
+#: lang/json/SPELL_from_json.py
+msgid "Creates a magical light."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Blinding Flash"
+msgstr ""
+
+#. ~ Description for Blinding Flash
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Blind enemies for a short time with a sudden, dazzling light. Higher levels "
+"deal slightly higher damage."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Ethereal Grasp"
+msgstr ""
+
+#. ~ Description for Ethereal Grasp
+#: lang/json/SPELL_from_json.py
+msgid ""
+"A mass of spectral hands emerge from the ground, slowing everything in "
+"range. Higher levels allow a bigger AoE, and longer effect."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Aura of Protection"
+msgstr ""
+
+#. ~ Description for Aura of Protection
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Encases your whole body in a magical aura that protects you from the "
+"environment."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Template Spell"
+msgstr ""
+
+#. ~ Description for Template Spell
+#: lang/json/SPELL_from_json.py
+msgid "This is a template to show off all the available values"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Debug Stamina Spell"
+msgstr ""
+
+#. ~ Description for Debug Stamina Spell
+#: lang/json/SPELL_from_json.py
+msgid "Uses a little stamina"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Debug HP Spell"
+msgstr ""
+
+#. ~ Description for Debug HP Spell
+#: lang/json/SPELL_from_json.py
+msgid "Uses a little HP"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Debug Bionic Spell"
+msgstr ""
+
+#. ~ Description for Debug Bionic Spell
+#: lang/json/SPELL_from_json.py
+msgid "Uses a little Bionic Power"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Debug effect spell"
+msgstr ""
+
+#. ~ Description for Debug effect spell
+#: lang/json/SPELL_from_json.py
+msgid "Adds an effect to the target"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Stonefist"
+msgstr ""
+
+#. ~ Description for Stonefist
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Encases your arms and hands in a sheath of magical stone, you can punch and "
+"defend yourself with it in melee combat."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Seismic Stomp"
+msgstr ""
+
+#. ~ Description for Seismic Stomp
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Focusing mana into your leg, you stomp your foot and send out a shockwave, "
+"knocking enemies around you onto the ground."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Point Flare"
+msgstr ""
+
+#. ~ Description for Point Flare
+#: lang/json/SPELL_from_json.py
+msgid "Causes an intense heat at the location, damaging the target."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Ice Spike"
+msgstr ""
+
+#. ~ Description for Ice Spike
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Causes jagged icicles to form in the air above the target, falling and "
+"damaging it."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Fireball"
+msgstr ""
+
+#. ~ Description for Fireball
+#: lang/json/SPELL_from_json.py
+msgid ""
+"You hurl a pea-sized glowing orb that when reaches its target or an obstacle "
+"produces a pressure-less blast of searing heat."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Cone of Cold"
+msgstr ""
+
+#. ~ Description for Cone of Cold
+#: lang/json/SPELL_from_json.py
+msgid "You blast a cone of frigid air toward the target."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Burning Hands"
+msgstr ""
+
+#. ~ Description for Burning Hands
+#: lang/json/SPELL_from_json.py
+msgid ""
+"You're pretty sure you saw this in a game somewhere. You fire a short-range "
+"cone of fire."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Hoary Blast"
+msgstr ""
+
+#. ~ Description for Hoary Blast
+#: lang/json/SPELL_from_json.py
+msgid ""
+"A glowing chunk of ice bursts into being from your hand and explodes into a "
+"wave of intense cold on impact."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Frost Spray"
+msgstr ""
+
+#. ~ Description for Frost Spray
+#: lang/json/SPELL_from_json.py
+msgid ""
+"You're pretty sure you saw this in a game somewhere. You fire a short-range "
+"cone of ice and cold."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Chilling Touch"
+msgstr ""
+
+#. ~ Description for Chilling Touch
+#: lang/json/SPELL_from_json.py
+msgid "Freezes the touched target with intense cold."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Glide on Ice"
+msgstr ""
+
+#. ~ Description for Glide on Ice
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Encases your feet in a magical coating of ice, allowing you to glide along "
+"smooth surfaces faster."
+msgstr ""
+
+#. ~ Description for Hoary Blast
+#: lang/json/SPELL_from_json.py
+msgid ""
+"You project a glowing white crystal of ice and it explodes on impact into a "
+"blossom of shattering cold."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Ice Shield"
+msgstr ""
+
+#. ~ Description for Ice Shield
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Creates a magical shield of ice on your arm, you can defend yourself with it "
+"in melee combat and use it to bash."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py
+msgid "Frost Armor"
+msgstr ""
+
+#. ~ Description of effect 'Frost Armor'.
+#. ~ Description for Frost Armor
+#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py
+msgid "Covers you in a thin layer of magical ice to protect you from harm."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Magic Missile"
+msgstr ""
+
+#. ~ Description for Magic Missile
+#: lang/json/SPELL_from_json.py
+msgid "I cast Magic Missile at the darkness!"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Phase Door"
+msgstr ""
+
+#. ~ Description for Phase Door
+#: lang/json/SPELL_from_json.py
+msgid "Teleports you in a random direction a short distance."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Gravity Well"
+msgstr ""
+
+#. ~ Description for Gravity Well
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Summons a well of gravity with the epicenter at the location. Deals bashing "
+"damage to all creatures in the affected area."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Jolt"
+msgstr ""
+
+#. ~ Description for Jolt
+#: lang/json/SPELL_from_json.py
+msgid "A short ranged fan of elecricity shoots from your fingers."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Windstrike"
+msgstr ""
+
+#. ~ Description for Windstrike
+#: lang/json/SPELL_from_json.py
+msgid ""
+"A powerful blast of wind slams into anything in front of your outstretched "
+"hand."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py
+msgid "Windrunning"
+msgstr ""
+
+#. ~ Description for Windrunning
+#: lang/json/SPELL_from_json.py
+msgid ""
+"A magical wind pushes you forward as you move, easing your movements and "
+"increasing speed."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Call Stormhammer"
+msgstr ""
+
+#. ~ Description for Call Stormhammer
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Creates a crackling magical warhammer full of lightning to smite your foes "
+"with, and of course, smash things to bits!"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Bless"
+msgstr ""
+
+#. ~ Description for Bless
+#: lang/json/SPELL_from_json.py
+msgid "A spell of blessing that gives you energy and boosts your abilities."
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Holy Blade"
+msgstr ""
+
+#. ~ Description for Holy Blade
+#: lang/json/SPELL_from_json.py
+msgid "This blade of light will cut through any evil it makes contact with!"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Spiritual Armor"
+msgstr ""
+
+#. ~ Description for Spiritual Armor
+#: lang/json/SPELL_from_json.py
+msgid ""
+"Evil will not make it through your defenses if your faith is strong enough!"
+msgstr ""
+
+#: lang/json/SPELL_from_json.py
+msgid "Lamp"
+msgstr ""
+
+#. ~ Description for Lamp
+#: lang/json/SPELL_from_json.py
+msgid "Creates a magical lamp."
+msgstr ""
+
#: lang/json/TOOLMOD_from_json.py
msgid "base toolmod"
msgid_plural "base toolmods"
@@ -49997,6 +52752,7 @@ msgstr ""
#. ~ Use action need_charges_msg for mining helmet.
#. ~ Use action need_charges_msg for hazardous environment helmet.
+#. ~ Use action need_charges_msg for C.R.I.T helmet (off).
#: lang/json/TOOL_ARMOR_from_json.py
msgid "The helmet's batteries are dead."
msgstr ""
@@ -50031,6 +52787,7 @@ msgstr[1] ""
#. ~ Use action menu_text for thermal electric outfit (on).
#. ~ Use action menu_text for shooter's earmuffs.
#. ~ Use action menu_text for hazardous environment helmet (on).
+#. ~ Use action menu_text for C.R.I.T gasmask (on).
#. ~ Use action menu_text for cellphone - Flashlight.
#. ~ Use action menu_text for gasoline lantern (on).
#. ~ Use action menu_text for L-stick (on).
@@ -50047,8 +52804,8 @@ msgstr[1] ""
#. ~ Use action menu_text for power cutter (on).
#. ~ Use action menu_text for murdersaw (on).
#: lang/json/TOOL_ARMOR_from_json.py
+#: lang/json/TOOL_ARMOR_from_json.py lang/json/TOOL_from_json.py
#: lang/json/TOOL_from_json.py
-#: lang/json/TOOL_from_json.py lang/json/item_action_from_json.py
#: lang/json/item_action_from_json.py
#: lang/json/item_action_from_json.py src/iuse.cpp
msgid "Turn off"
@@ -51580,6 +54337,236 @@ msgid ""
"in UPS charging station."
msgstr ""
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T S-I G.E.A.R"
+msgid_plural "C.R.I.T S-I G.E.A.Rs"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T S-I G.E.A.R
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your "
+"spinal cord, this device improves your overall physique and provides basic "
+"information on your surroundings."
+msgstr ""
+
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T gasmask (off)"
+msgid_plural "C.R.I.T gasmask (off)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action msg for C.R.I.T gasmask (off).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.T HUD booting up..."
+msgstr ""
+
+#. ~ Use action need_charges_msg for C.R.I.T gasmask (off).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "Power levels too low for safe boot up"
+msgstr ""
+
+#. ~ Description for C.R.I.T gasmask (off)
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"This is the C.R.I.T Spec Ops modified gasmask, fitted with top-of-the-line "
+"electronics and lined with kevlar for extra protection in order to keep "
+"one's head where it should be. Various filters and other high tech wizardry "
+"allow for enhanced oxygen intake and safety even under bombardment. It has "
+"an integrated HUD and the option to turn it on for more features."
+msgstr ""
+
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T gasmask (on)"
+msgid_plural "C.R.I.T gasmask (on)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action msg for C.R.I.T gasmask (on).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.T HUD deactivating."
+msgstr ""
+
+#. ~ Description for C.R.I.T gasmask (on)
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"This is the C.R.I.T Spec Ops modified gasmask. It is currently on and "
+"draining power for the HUD, low-level nightvision and other protective "
+"elements."
+msgstr ""
+
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T EM vest (off)"
+msgid_plural "C.R.I.T EM vest (off)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action msg for C.R.I.T EM vest (off).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T EM booting up..."
+msgstr ""
+
+#. ~ Use action need_charges_msg for C.R.I.T EM vest (off).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "Power levels too low for safe bootup..."
+msgstr ""
+
+#. ~ Description for C.R.I.T EM vest (off)
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech "
+"filaments and reactive servos which protects its wearer and assists in "
+"movement at the cost high power usage. It is commonly worn by C.R.I.T Spec "
+"Ops for its ease of use and manuverability. Turn it on for extra protection "
+"and movement."
+msgstr ""
+
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T EM vest (on)"
+msgid_plural "C.R.I.T EM vest (on)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action menu_text for C.R.I.T EM vest (on).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "Turn off armor"
+msgstr ""
+
+#. ~ Use action msg for C.R.I.T EM vest (on).
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T E.M powering off..."
+msgstr ""
+
+#. ~ Description for C.R.I.T EM vest (on)
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"The C.R.I.T Spec Ops Enhanced Movement vest is embedded with high-tech "
+"filaments, reactive servos and a generator which pumps a crystallized liquid "
+"that protects its wearer from most heavy combat situations at the cost of "
+"high power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is "
+"currently in suit form and draining your UPS power at high rates."
+msgstr ""
+
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T helmet (off)"
+msgid_plural "C.R.I.T helmet (off)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action msg for C.R.I.T helmet (off).
+#: lang/json/TOOL_ARMOR_from_json.py
+#, no-python-format
+msgid "You turn the %s on."
+msgstr ""
+
+#. ~ Description for C.R.I.T helmet (off)
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"C.R.T standard-issue helmet. Protects the noggin and has a stretch of "
+"insulated steel mesh for neck warmth and protection."
+msgstr ""
+
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid "C.R.I.T helmet (on)"
+msgid_plural "C.R.I.T helmet (on)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action msg for C.R.I.T helmet (on).
+#: lang/json/TOOL_ARMOR_from_json.py
+#, no-python-format
+msgid "You turn the %s off."
+msgstr ""
+
+#. ~ Description for C.R.I.T helmet (on)
+#: lang/json/TOOL_ARMOR_from_json.py
+msgid ""
+"C.R.I.T standard-issue helmet. Protects the noggin and has a stretch of "
+"insulated steel mesh for neck warmth and protection. A tactically dim "
+"flashlight is attatched to the side. This light is currently on and drawing "
+"power."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "betavoltaic cell"
+msgid_plural "betavoltaic cells"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for betavoltaic cell
+#: lang/json/TOOL_from_json.py
+msgid ""
+"Harness the power of radiation in your own home! This looks similar to a D-"
+"cell battery, but actually contains folded layers of radioactive material "
+"inside. It can produce electricity for several years at a steady voltage... "
+"but it's barely enough to power a small LED, and these batteries were worth "
+"hundreds of dollars. Mostly they're a good way to brag to your neighbours "
+"that you have a nuclear power source in your house."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "radioisotope thermoelectric generator"
+msgid_plural "radioisotope thermoelectric generators"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for radioisotope thermoelectric generator
+#: lang/json/TOOL_from_json.py
+msgid ""
+"Did your neighbours brag about their cool beta-decay powered nightlights? "
+"Do them one better! The CuppaTech 4 radioisotope thermoelectric generator "
+"is a three kilogram chunk of metal - mostly lead - with a slug of curium-244 "
+"encased within. It is capable of generating somewhere between 100-150 Watts "
+"of thermal energy, although its electrical generation capacity is minimal at "
+"only 2 Watts. Careful! Curium is great at making heat, and also releases "
+"deadly gamma radiation. Keep away from cellular life forms."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "basecamp charcoal smoker"
+msgid_plural "basecamp charcoal smokers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for basecamp charcoal smoker
+#: lang/json/TOOL_from_json.py
+msgid "A fake charcoal smoker used for basecamps."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "basecamp fireplace"
+msgid_plural "basecamp fireplaces"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for basecamp fireplace
+#: lang/json/TOOL_from_json.py
+msgid "A fake fireplace used for basecamps."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "basecamp stove"
+msgid_plural "basecamp stoves"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for basecamp stove
+#: lang/json/TOOL_from_json.py
+msgid "A fake stove used for basecamps."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "basecamp drop hammer"
+msgid_plural "basecamp drop hammers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for basecamp drop hammer
+#: lang/json/TOOL_from_json.py
+msgid "A fake drop hammer used for basecamps."
+msgstr ""
+
#: lang/json/TOOL_from_json.py
msgid "teeth and claws"
msgid_plural "teeth and clawss"
@@ -51649,6 +54636,19 @@ msgid ""
"million dollars."
msgstr ""
+#: lang/json/TOOL_from_json.py
+msgid "prototype I/O recorder"
+msgid_plural "prototype I/O recorders"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for prototype I/O recorder
+#: lang/json/TOOL_from_json.py
+msgid ""
+"This small transparent card was attached to the prototype robot's CPU. It "
+"might contain the data the intercom spoke of."
+msgstr ""
+
#: lang/json/TOOL_from_json.py
msgid "silver gas discount card"
msgid_plural "silver gas discount cards"
@@ -52070,6 +55070,17 @@ msgid ""
"make it ready to fire. Once it is activated, it cannot be repacked."
msgstr ""
+#: lang/json/TOOL_from_json.py
+msgid "hand pump"
+msgid_plural "hand pumps"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for hand pump
+#: lang/json/TOOL_from_json.py
+msgid "This pump is suitable for pumping air into inflatable objects."
+msgstr ""
+
#. ~ Description for UPS
#: lang/json/TOOL_from_json.py
msgid ""
@@ -52241,14 +55252,6 @@ msgid_plural "Louisville Slaughterers"
msgstr[0] ""
msgstr[1] ""
-#. ~ Use action menu_text for Louisville Slaughterer.
-#. ~ Use action menu_text for candle.
-#. ~ Use action menu_text for hobo stove.
-#: lang/json/TOOL_from_json.py
-#: lang/json/TOOL_from_json.py src/veh_interact.cpp
-msgid "Light"
-msgstr ""
-
#. ~ Use action msg for Louisville Slaughterer.
#: lang/json/TOOL_from_json.py
msgid "You light the Louisville Slaughterer."
@@ -52982,24 +55985,24 @@ msgid ""
msgstr ""
#: lang/json/TOOL_from_json.py
-msgid "inactive tribot"
-msgid_plural "inactive tribots"
+msgid "inactive tripod"
+msgid_plural "inactive tripods"
msgstr[0] ""
msgstr[1] ""
-#. ~ Use action friendly_msg for inactive tribot.
+#. ~ Use action friendly_msg for inactive tripod.
#: lang/json/TOOL_from_json.py
msgid "The tribot rises to its feet and scans the area for contaminants."
msgstr ""
-#. ~ Use action hostile_msg for inactive tribot.
+#. ~ Use action hostile_msg for inactive tripod.
#: lang/json/TOOL_from_json.py
msgid ""
"The tribot glowers down at you and ignites its flamethrower. Turns out you "
"hate the smell of napalm."
msgstr ""
-#. ~ Description for inactive tribot
+#. ~ Description for inactive tripod
#: lang/json/TOOL_from_json.py
msgid ""
"This is an inactive Honda Regnal. Using this item involves placing it on the "
@@ -53438,18 +56441,31 @@ msgid ""
msgstr ""
#: lang/json/TOOL_from_json.py
-msgid "smartphone - Flashlight"
-msgid_plural "smartphones - Flashlight"
+msgid "smartphone - music"
+msgid_plural "smartphones - music"
msgstr[0] ""
msgstr[1] ""
-#. ~ Use action menu_text for smartphone - Flashlight.
+#. ~ Description for smartphone - music
+#: lang/json/TOOL_from_json.py
+msgid ""
+"This phone is playing music, steadily raising your morale. You can't hear "
+"anything else while you're listening."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "smartphone - flashlight"
+msgid_plural "smartphones - flashlight"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action menu_text for smartphone - flashlight.
#. ~ Use action menu_text for atomic smartphone - Flashlight.
#: lang/json/TOOL_from_json.py
msgid "Turn off flashlight"
msgstr ""
-#. ~ Use action msg for smartphone - Flashlight.
+#. ~ Use action msg for smartphone - flashlight.
#. ~ Use action msg for atomic smartphone - Flashlight.
#: lang/json/TOOL_from_json.py
msgid "You deactivate the flashlight app."
@@ -55589,6 +58605,23 @@ msgid ""
"container beneath it to collect water when it rains."
msgstr ""
+#: lang/json/TOOL_from_json.py
+msgid "tarp raincatcher"
+msgid_plural "tarp raincatchers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action done_message for tarp raincatcher.
+#: lang/json/TOOL_from_json.py
+msgid "You set up the raincatcher, waiting to collect water."
+msgstr ""
+
+#. ~ Description for tarp raincatcher
+#: lang/json/TOOL_from_json.py
+msgid ""
+"Some sticks and string with a tarpaulin to set up an improvised raincatcher."
+msgstr ""
+
#: lang/json/TOOL_from_json.py
msgid "metallic smoother"
msgid_plural "metallic smoothers"
@@ -56112,19 +59145,6 @@ msgid ""
"immediately!"
msgstr ""
-#: lang/json/TOOL_from_json.py
-msgid "plastic chunk"
-msgid_plural "plastic chunks"
-msgstr[0] ""
-msgstr[1] ""
-
-#. ~ Description for plastic chunk
-#: lang/json/TOOL_from_json.py
-msgid ""
-"This is a piece of plastic. It could be used to fabricate, repair, or "
-"reinforce plastic items."
-msgstr ""
-
#: lang/json/TOOL_from_json.py
msgid "pliers"
msgid_plural "pliers"
@@ -58104,71 +61124,65 @@ msgstr ""
msgid "The ember is extinguished."
msgstr ""
-#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
-msgid "military black box"
-msgid_plural "military black boxes"
+#: lang/json/TOOL_from_json.py
+msgid "pallet of wet adobe bricks"
+msgid_plural "pallets of wet adobe bricks"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for military black box
+#. ~ Use action msg for pallet of wet adobe bricks.
#: lang/json/TOOL_from_json.py
-msgid ""
-"This is a black box, seemingly pulled from some sort of military vehicle "
-"wreckage. If you can find a system to analyze this you may find something "
-"of interest."
+msgid "You test the bricks, and they're solid enough to use."
msgstr ""
-#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
-msgid "minireactor"
-msgid_plural "minireactors"
-msgstr[0] ""
-msgstr[1] ""
+#. ~ Use action not_ready_msg for pallet of wet adobe bricks.
+#: lang/json/TOOL_from_json.py
+msgid "The bricks are still too damp to bear weight."
+msgstr ""
-#. ~ Description for minireactor
+#. ~ Description for pallet of wet adobe bricks
#: lang/json/TOOL_from_json.py
-msgid "A small portable plutonium reactor. Handle with great care!"
+msgid ""
+"A pallet full of heavy mud bricks which need to dry slowly to be usable."
msgstr ""
-#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
-msgid "jumper cable"
-msgid_plural "jumper cables"
+#: lang/json/TOOL_from_json.py
+msgid "pallet of dry adobe bricks"
+msgid_plural "pallets of dry adobe bricks"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for jumper cable
+#. ~ Description for pallet of dry adobe bricks
#: lang/json/TOOL_from_json.py
msgid ""
-"A jumper cable, like you've seen many times before: it's a short multi-"
-"stranded copper cable with power leads on either end, whose purpose is to "
-"share power between vehicles."
+"A pallet of humble mud bricks that have dried for a week, while you were out "
+"risking your life. Disassemble it to retrieve your frame and building "
+"supplies."
msgstr ""
#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
-msgid "heavy-duty cable"
-msgid_plural "heavy-duty cables"
+msgid "military black box"
+msgid_plural "military black boxes"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for heavy-duty cable
+#. ~ Description for military black box
#: lang/json/TOOL_from_json.py
msgid ""
-"A long, thick, heavy-duty cable with power leads on either end. It looks "
-"like you could use it to hook up two vehicles to each other, though you "
-"expect the power loss would be noticeable."
+"This is a black box, seemingly pulled from some sort of military vehicle "
+"wreckage. If you can find a system to analyze this you may find something "
+"of interest."
msgstr ""
#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
-msgid "shiny cable"
-msgid_plural "shiny cables"
+msgid "minireactor"
+msgid_plural "minireactors"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for shiny cable
+#. ~ Description for minireactor
#: lang/json/TOOL_from_json.py
-msgid ""
-"This is the cable of the gods: 50 meters long, no power loss, light as a "
-"feather and fits in a matchbook. You're sure this wasn't supposed to exist, "
-"and the way it shimmers makes you uneasy."
+msgid "A small portable plutonium reactor. Handle with great care!"
msgstr ""
#: lang/json/TOOL_from_json.py
@@ -58287,6 +61301,19 @@ msgid ""
"excellent butchering tool."
msgstr ""
+#: lang/json/TOOL_from_json.py
+msgid "plastic chunk"
+msgid_plural "plastic chunks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for plastic chunk
+#: lang/json/TOOL_from_json.py
+msgid ""
+"This is a piece of plastic. It could be used to fabricate, repair, or "
+"reinforce plastic items."
+msgstr ""
+
#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py
msgid "brazier"
msgid_plural "braziers"
@@ -58300,6 +61327,30 @@ msgid ""
"spread to surrounding flammable objects."
msgstr ""
+#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py
+msgid "fire barrel (200L)"
+msgid_plural "fire barrels (200L)"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for fire barrel (200L)
+#. ~ Description for fire barrel (100L)
+#. ~ Description for fire barrel (200L)
+#. ~ Description for fire barrel (100L)
+#: lang/json/TOOL_from_json.py
+#: lang/json/furniture_from_json.py
+msgid ""
+"A large metal barrel used to contain a fire. It has multiple holes punched "
+"in its walls for air supply. Fires set in a fire barrel will not spread to "
+"surrounding flammable objects."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py
+msgid "fire barrel (100L)"
+msgid_plural "fire barrels (100L)"
+msgstr[0] ""
+msgstr[1] ""
+
#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py
msgid "camp chair"
msgid_plural "camp chairs"
@@ -58324,6 +61375,25 @@ msgid ""
"for easy transportation and can be deployed as a furniture."
msgstr ""
+#: lang/json/TOOL_from_json.py lang/json/vehicle_from_json.py
+msgid "inflatable boat"
+msgid_plural "inflatable boats"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Use action unfold_msg for inflatable boat.
+#: lang/json/TOOL_from_json.py
+#, no-python-format
+msgid "You painstakingly unfold, inflate, and launch the %s."
+msgstr ""
+
+#. ~ Description for inflatable boat
+#: lang/json/TOOL_from_json.py
+msgid ""
+"This rubber rowboat (oars included) is deflated for storage. Activate it "
+"(having an air pump in inventory) to inflate and launch."
+msgstr ""
+
#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py
msgid "metal smoking rack"
msgid_plural "metal smoking racks"
@@ -58981,6 +62051,48 @@ msgid ""
"you can activate it in order to destroy metal barriers."
msgstr ""
+#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
+msgid "jumper cable"
+msgid_plural "jumper cables"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for jumper cable
+#: lang/json/TOOL_from_json.py
+msgid ""
+"A jumper cable, like you've seen many times before: it's a short multi-"
+"stranded copper cable with power leads on either end, whose purpose is to "
+"share power between vehicles."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
+msgid "heavy-duty cable"
+msgid_plural "heavy-duty cables"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for heavy-duty cable
+#: lang/json/TOOL_from_json.py
+msgid ""
+"A long, thick, heavy-duty cable with power leads on either end. It looks "
+"like you could use it to hook up two vehicles to each other, though you "
+"expect the power loss would be noticeable."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py
+msgid "shiny cable"
+msgid_plural "shiny cables"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for shiny cable
+#: lang/json/TOOL_from_json.py
+msgid ""
+"This is the cable of the gods: 50 meters long, no power loss, light as a "
+"feather and fits in a matchbook. You're sure this wasn't supposed to exist, "
+"and the way it shimmers makes you uneasy."
+msgstr ""
+
#: lang/json/TOOL_from_json.py
msgid "rechargeable battery mod"
msgid_plural "rechargeable battery mods"
@@ -59069,12 +62181,6 @@ msgid_plural "atomic smartphones - Flashlight"
msgstr[0] ""
msgstr[1] ""
-#: lang/json/TOOL_from_json.py
-msgid "atomic reading light"
-msgid_plural "atomic reading lights"
-msgstr[0] ""
-msgstr[1] ""
-
#. ~ Description for atomic reading light
#: lang/json/TOOL_from_json.py
msgid ""
@@ -59271,34 +62377,107 @@ msgid ""
"way of flesh that it won't slice through easily."
msgstr ""
-#: lang/json/TOOL_from_json.py lang/json/vehicle_from_json.py
-msgid "inflatable boat"
-msgid_plural "inflatable boats"
+#: lang/json/TOOL_from_json.py
+msgid "C.R.I.T mess kit"
+msgid_plural "C.R.I.T mess kits"
msgstr[0] ""
msgstr[1] ""
-#. ~ Use action unfold_msg for inflatable boat.
+#. ~ Description for C.R.I.T mess kit
#: lang/json/TOOL_from_json.py
-#, no-python-format
-msgid "You painstakingly unfold, inflate, and launch the %s."
+msgid ""
+"C.R.I.T standard-issue mess kit designed for ease of transport. Based off of "
+"the normal military mess kit, but made to be telescopic, the parts are made "
+"from a thin sheet of a stainless superalloy composite and are insulated with "
+"ceramic. Sadly, this compact reimagining loses much of its battery life but "
+"does have a rather small solar panel installed. Also comes with an absurdly "
+"small integrated fpoon and knife spatula set!"
msgstr ""
-#. ~ Description for inflatable boat
+#: lang/json/TOOL_from_json.py
+msgid "C.R.I.T service knife"
+msgid_plural "C.R.I.T service knifes"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T service knife
#: lang/json/TOOL_from_json.py
msgid ""
-"This rubber rowboat (oars included) is deflated for storage. Activate it "
-"(having an air pump in inventory) to inflate and launch."
+"C.R.I.T standard-issue knife. Has a knuckleduster guard and a small, hooked "
+"pry bar at the bottom for opening simple things and bashing in heads. Matte "
+"black finish helps it avoid flash in dim-light situations and tanto tip "
+"allows for light-armor penetration. Blade length allows for pretty decent "
+"reach as well. Something makes you feel... connected to the knife."
msgstr ""
#: lang/json/TOOL_from_json.py
-msgid "hand pump"
-msgid_plural "hand pumps"
+msgid "C.R.I.T Knuckledusters"
+msgid_plural "C.R.I.T Knuckledusterss"
msgstr[0] ""
msgstr[1] ""
-#. ~ Description for hand pump
+#. ~ Description for C.R.I.T Knuckledusters
#: lang/json/TOOL_from_json.py
-msgid "This pump is suitable for pumping air into inflatable objects."
+msgid ""
+"C.R.I.T CQB knuckledusters. Not too different from any normal pair, but the ."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "C.R.I.T Reso-blade"
+msgid_plural "C.R.I.T Reso-blades"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T Reso-blade
+#: lang/json/TOOL_from_json.py
+msgid ""
+"C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade "
+"oddly lacks sharpness, and yet upon closer oberservation, a hum of energy "
+"thrums from within."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "Dragon Slayer"
+msgid_plural "Dragon Slayers"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for Dragon Slayer
+#: lang/json/TOOL_from_json.py
+msgid ""
+"C.R.I.T R&D's masterpiece weapon. Alien runes adorn the ridiculously "
+"oversized carbon steel blade and a hum of energy thrums from within. Merely "
+"brushing your fingers over the weapon brings a feeling of invincibility. It "
+"looks more like a raw heap of iron than a sword. The thing is... can you "
+"wield it?"
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "C.R.I.T entrenching tool"
+msgid_plural "C.R.I.T entrenching tools"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T entrenching tool
+#: lang/json/TOOL_from_json.py
+msgid ""
+"C.R.I.T standard-issue collapsible spade. A built in vibration system that "
+"is powered by the user's movement allows the smaller spade to clear soil "
+"like a larger shovel."
+msgstr ""
+
+#: lang/json/TOOL_from_json.py
+msgid "C.R.I.T night stick"
+msgid_plural "C.R.I.T night sticks"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for C.R.I.T night stick
+#: lang/json/TOOL_from_json.py
+msgid ""
+"C.R.I.T standard issue guard tonfa. The length allows for great reach and "
+"the domed tip allows for greater impact than a cylinder style baton. Blood "
+"seems to soak into the length..."
msgstr ""
#: lang/json/TOOL_from_json.py
@@ -59314,6 +62493,19 @@ msgid ""
"to a potato."
msgstr ""
+#: lang/json/TOOL_from_json.py
+msgid "wand of fireballs"
+msgid_plural "wand of fireballss"
+msgstr[0] ""
+msgstr[1] ""
+
+#. ~ Description for wand of fireballs
+#: lang/json/TOOL_from_json.py
+msgid ""
+"A classic, this wand shoots fireballs without fail. A more skilled "
+"Kelvinist could cast them more efficiently, though."
+msgstr ""
+
#: lang/json/TOOL_from_json.py
msgid "Dusk"
msgid_plural "Dusks"
@@ -61568,12 +64760,20 @@ msgstr ""
msgid "Stop communing with the trees?"
msgstr ""
+#: lang/json/activity_type_from_json.py
+msgid "Stop eating?"
+msgstr ""
+
#: lang/json/activity_type_from_json.py
msgid "Stop consuming?"
msgstr ""
#: lang/json/activity_type_from_json.py
-msgid "Stop eating?"
+msgid "Stop casting?"
+msgstr ""
+
+#: lang/json/activity_type_from_json.py
+msgid "Stop studying?"
msgstr ""
#: lang/json/activity_type_from_json.py
@@ -61584,6 +64784,10 @@ msgstr ""
msgid "Stop using drugs?"
msgstr ""
+#: lang/json/activity_type_from_json.py
+msgid "Stop using the mind splicer?"
+msgstr ""
+
#: lang/json/activity_type_from_json.py
msgid "Stop hacking console?"
msgstr ""
@@ -61839,6 +65043,10 @@ msgstr ""
msgid "compressed air"
msgstr ""
+#: lang/json/ammunition_type_from_json.py
+msgid "pulse ammo"
+msgstr ""
+
#: lang/json/ammunition_type_from_json.py
msgid "6.54x42mm"
msgstr ""
@@ -62613,17 +65821,6 @@ msgid ""
"causing increased encumbrance."
msgstr ""
-#: lang/json/bionic_from_json.py
-msgid "Internal Storage"
-msgstr ""
-
-#. ~ Description for Internal Storage
-#: lang/json/bionic_from_json.py
-msgid ""
-"Space inside your chest cavity has been surgically converted into a storage "
-"area. You may carry an extra 2 liters of volume."
-msgstr ""
-
#: lang/json/bionic_from_json.py
msgid "Muscle Augmentation"
msgstr ""
@@ -62817,6 +66014,17 @@ msgstr ""
msgid "Internal Furnace"
msgstr ""
+#: lang/json/bionic_from_json.py
+msgid "Internal Storage"
+msgstr ""
+
+#. ~ Description for Internal Storage
+#: lang/json/bionic_from_json.py
+msgid ""
+"Space inside your chest cavity has been surgically converted into a storage "
+"area. You may carry an extra 2 liters of volume."
+msgstr ""
+
#. ~ Description for Solar Panels
#: lang/json/bionic_from_json.py
msgid ""
@@ -63154,6 +66362,19 @@ msgstr ""
msgid "Certain terrain and furniture can be deconstructed without any tools."
msgstr ""
+#: lang/json/construction_from_json.py
+msgid "Make crafting spot"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid ""
+"Mark a spot for crafting. Crafting tasks next to this tile will "
+"automatically use this location instead of attempting to craft in your "
+"hands, with the usual crafting speed penalty for working on the ground. "
+"Does not prevent using a proper workbench, if available. Deconstruct or "
+"smash to remove."
+msgstr ""
+
#: lang/json/construction_from_json.py
msgid "Spike Pit"
msgstr ""
@@ -63278,6 +66499,22 @@ msgstr ""
msgid "Build Brick Wall"
msgstr ""
+#: lang/json/construction_from_json.py
+msgid "Build Concrete Floor"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Fill Pit With Dirt"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Make Woodchip Floor"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Build Wooden Floor"
+msgstr ""
+
#: lang/json/construction_from_json.py
msgid "Build Simple Concrete Wall"
msgstr ""
@@ -63483,7 +66720,15 @@ msgid "Build Straw Bed"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Bed"
+msgid "Build Bed from Scratch"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Build Bed Frame"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Add Mattress to Bed Frame"
msgstr ""
#: lang/json/construction_from_json.py
@@ -63530,6 +66775,42 @@ msgstr ""
msgid "Build Water Well"
msgstr ""
+#: lang/json/construction_from_json.py
+msgid "Place Hay Bale"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Build Desk"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Build Wardrobe"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Paint Grass White"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Paint Pavement Yellow"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Take Paint Off Pavement"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Build Wooden Railing"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Cover Manhole"
+msgstr ""
+
+#: lang/json/construction_from_json.py
+msgid "Remove Wax From Floor"
+msgstr ""
+
#: lang/json/construction_from_json.py
msgid "Paint Wall Red"
msgstr ""
@@ -63582,10 +66863,6 @@ msgstr ""
msgid "Wax Floor"
msgstr ""
-#: lang/json/construction_from_json.py
-msgid "Remove Wax From Floor"
-msgstr ""
-
#: lang/json/construction_from_json.py
msgid "Dig Downstair"
msgstr ""
@@ -63729,83 +67006,83 @@ msgid "Build Pillow Fort"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Fire Ring"
+msgid "Build Cardboard Fort"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Rammed Earth Wall"
+msgid "Build Fire Ring"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Convert Fridge Power Supply"
+msgid "Build Rammed Earth Wall"
msgstr ""
#: lang/json/construction_from_json.py
-msgid ""
-"Converts a fridge to run off of vehicle power. You can 'e'xamine it "
-"afterwards to take it down for mounting."
+msgid "Build Counter Gate"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Convert Vehicle Fridge to Freezer"
+msgid "Build Split Rail Fence Gate"
msgstr ""
#: lang/json/construction_from_json.py
-msgid ""
-"Further modifies a converted fridge to function as a freezer. You can "
-"'e'xamine it afterwards to take it down for mounting."
+msgid "Build Privacy Fence Gate"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Beans"
+msgid "Build Split Rail Fence"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Cabbage"
+msgid "Build Privacy Fence"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Carrot"
+msgid "Build Brick Wall from Adobe"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Celery"
+msgid "Build Pine Lean-To"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Corn"
+msgid "Build Tarp Lean-To"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Cucumber"
+msgid "Convert Fridge Power Supply"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Onion"
+msgid ""
+"Converts a fridge to run off of vehicle power. You can 'e'xamine it "
+"afterwards to take it down for mounting."
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Potato"
+msgid "Convert Vehicle Fridge to Freezer"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Tomato"
+msgid ""
+"Further modifies a converted fridge to function as a freezer. You can "
+"'e'xamine it afterwards to take it down for mounting."
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Hydroponics, Marijuana"
+msgid "Chop Tree Trunk Into Logs"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Pine Lean-To"
+msgid "Dig a Pit"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Tarp Lean-To"
+msgid "Makeshift Wall"
msgstr ""
#: lang/json/construction_from_json.py
-msgid "Build Tarp Rain-Catcher"
+msgid "Build Hydroponics"
msgstr ""
#: lang/json/construction_from_json.py
@@ -64587,6 +67864,70 @@ msgid ""
"will adapt and defeat them."
msgstr ""
+#: lang/json/dream_from_json.py
+msgid "You have a strange dream about the shadows."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "Your dreams give you a peculiar feeling of sinking into the dark."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You have a vivid dream of talking a midnight stroll."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You dream of drinking copious amounts of warm water."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid ""
+"You have a dream of being chased by dogs as something warm drips from your "
+"mouth."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "Snippets of stalking something in the star-lit night shakes you awake."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You dream of sinking your fangs into more and more enemies."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid ""
+"You have a lucid dream where streams of blood are slowly pooling around your "
+"feet."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You have a strange dream about the mountain forests."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "Your dreams give you a peculiar feeling of sinking into the treelines."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You have a vivid dream of strolling through the woods."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You have a dream of chasing something as a raw hunger sears your mind."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "Recollections of stalking a human shakes you awake."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You dream of tearing into more and more enemies."
+msgstr ""
+
+#: lang/json/dream_from_json.py
+msgid "You have a lucid dream where nature carefully welcomes your body."
+msgstr ""
+
#: lang/json/effects_from_json.py
msgid "Hit By Player"
msgstr ""
@@ -66707,6 +70048,103 @@ msgid ""
"This is a bug if you have it."
msgstr ""
+#: lang/json/effects_from_json.py src/character.cpp
+#: src/player.cpp
+msgid "Full"
+msgstr ""
+
+#. ~ Description of effect 'Full'.
+#: lang/json/effects_from_json.py
+msgid "This beggar in the refugee center has had something to eat recently."
+msgstr ""
+
+#: lang/json/effects_from_json.py
+msgid "Insulted"
+msgstr ""
+
+#. ~ Description of effect 'Insulted'.
+#: lang/json/effects_from_json.py
+msgid "Oh, you went there."
+msgstr ""
+
+#. ~ Description of effect 'Windrunning'.
+#: lang/json/effects_from_json.py
+msgid "You are bolstered and pushed along by the power of the wind."
+msgstr ""
+
+#. ~ Apply message for effect(s) 'Windrunning'.
+#: lang/json/effects_from_json.py
+msgid "You are bolstered and pushed along by the power of the wind"
+msgstr ""
+
+#. ~ Remove message for effect(s) 'Windrunning'.
+#: lang/json/effects_from_json.py
+msgid "The wind at your back dies down."
+msgstr ""
+
+#: lang/json/effects_from_json.py
+msgid "Ethereal Hold"
+msgstr ""
+
+#. ~ Description of effect 'Ethereal Hold'.
+#: lang/json/effects_from_json.py
+msgid "Ghostly arms are trying to hold you in place!"
+msgstr ""
+
+#. ~ Apply message for effect(s) 'Ethereal Hold'.
+#: lang/json/effects_from_json.py
+msgid "Ethereal arms shoot out of the ground and grab onto you!"
+msgstr ""
+
+#. ~ Remove message for effect(s) 'Ethereal Hold'.
+#: lang/json/effects_from_json.py
+msgid "The ghostly arms fade away."
+msgstr ""
+
+#: lang/json/effects_from_json.py
+msgid "Blessed"
+msgstr ""
+
+#. ~ Description of effect 'Blessed'.
+#: lang/json/effects_from_json.py
+msgid "You are filled with energy that improves everything you do."
+msgstr ""
+
+#. ~ Apply message for effect(s) 'Blessed'.
+#: lang/json/effects_from_json.py
+msgid "You are filled with energy that improves everything you do!"
+msgstr ""
+
+#. ~ Remove message for effect(s) 'Blessed'.
+#: lang/json/effects_from_json.py
+msgid "Your energy fades."
+msgstr ""
+
+#: lang/json/effects_from_json.py
+msgid "Enviromental Protection"
+msgstr ""
+
+#. ~ Description of effect 'Enviromental Protection'.
+#. ~ Apply message for effect(s) 'Enviromental Protection'.
+#: lang/json/effects_from_json.py
+msgid "You are protected by an energy field."
+msgstr ""
+
+#. ~ Remove message for effect(s) 'Enviromental Protection'.
+#: lang/json/effects_from_json.py
+msgid "Your energy field fades."
+msgstr ""
+
+#. ~ Apply message for effect(s) 'Frost Armor'.
+#: lang/json/effects_from_json.py
+msgid "You are protected by Frost Armor."
+msgstr ""
+
+#. ~ Remove message for effect(s) 'Frost Armor'.
+#: lang/json/effects_from_json.py
+msgid "Your Frost Armor melts away."
+msgstr ""
+
#: lang/json/effects_from_json.py
msgid "Stuck in a light snare"
msgstr ""
@@ -67205,6 +70643,18 @@ msgid ""
"drops, poor performance and mutiny may become issues."
msgstr ""
+#: lang/json/faction_from_json.py
+msgid "Hub 01"
+msgstr ""
+
+#. ~ Description for Hub 01
+#: lang/json/faction_from_json.py
+msgid ""
+"The surviving staff of Hub 01, a pre-cataclysm research lab. They rarely "
+"leave their lab, if at all, and rely on their robots and advanced technology "
+"to survive."
+msgstr ""
+
#: lang/json/faction_from_json.py src/game.cpp
msgid "The Old Guard"
msgstr ""
@@ -67249,6 +70699,17 @@ msgid ""
"materials."
msgstr ""
+#: lang/json/faction_from_json.py
+msgid "Marloss Evangelists"
+msgstr ""
+
+#. ~ Description for Marloss Evangelists
+#: lang/json/faction_from_json.py
+msgid ""
+"Diverse bands, congregations and organizations with the common goal of "
+"preaching human survival through symbiosis with fungaloids."
+msgstr ""
+
#: lang/json/faction_from_json.py src/game.cpp
msgid "The Wasteland Scavengers"
msgstr ""
@@ -67432,7 +70893,7 @@ msgstr ""
#. ~ Description for pile of rocky rubble
#: lang/json/furniture_from_json.py
-msgid "Pile of rocks. Useless."
+msgid "Pile of rocks. Useless?"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67442,8 +70903,7 @@ msgstr ""
#. ~ Description for pile of trashy rubble
#: lang/json/furniture_from_json.py
msgid ""
-"Trash topped with dirt and grass, it smells gross and but another mans "
-"trash..."
+"Trash topped with dirt and grass, it smells gross, but another man's trash..."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67474,13 +70934,14 @@ msgid "A road barricade. For barricading roads."
msgstr ""
#: lang/json/furniture_from_json.py
+#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
#: lang/json/terrain_from_json.py
-#: lang/json/terrain_from_json.py src/map.cpp
-#: src/mapdata.cpp
+#: src/map.cpp src/mapdata.cpp
msgid "smash!"
msgstr ""
#: lang/json/furniture_from_json.py
+#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
#: lang/json/terrain_from_json.py
msgid "whump."
msgstr ""
@@ -67531,12 +70992,15 @@ msgstr ""
#. ~ Description for bulletin board
#: lang/json/furniture_from_json.py
-msgid "Pin some notes for other survivors to read."
+msgid ""
+"A big, cork bulletin board capable of sporting various notices. Pin some "
+"notes for other survivors to read."
msgstr ""
#: lang/json/furniture_from_json.py
+#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
#: lang/json/terrain_from_json.py
-#: lang/json/terrain_from_json.py src/iuse.cpp
+#: src/iuse.cpp
msgid "crunch!"
msgstr ""
@@ -67564,7 +71028,37 @@ msgstr ""
#. ~ Description for bed
#: lang/json/furniture_from_json.py
-msgid "Quite comfortable to sleep in."
+msgid ""
+"This is a bed. A luxury in these times. Quite comfortable to sleep in."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "bed frame"
+msgstr ""
+
+#. ~ Description for bed frame
+#: lang/json/furniture_from_json.py
+msgid ""
+"This is an empty bed frame. With a mattress on it, it would be a nice place "
+"to sleep. Sleeping on it right now wouldn't be great."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "whack."
+msgstr ""
+
+#. ~ Description for mattress
+#: lang/json/furniture_from_json.py
+msgid ""
+"A comfortable mattress has been tossed on the floor for sleeping here. It's "
+"not quite as comfy as a real bed, but it's pretty close."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
+#: lang/json/terrain_from_json.py
+#: src/map.cpp
+msgid "rrrrip!"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67573,7 +71067,9 @@ msgstr ""
#. ~ Description for toilet
#: lang/json/furniture_from_json.py
-msgid "Emergency water source, from the tank, and provider of relief."
+msgid ""
+"A porcelain throne. Emergency water source, from the tank, and provider of "
+"relief."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67608,7 +71104,8 @@ msgstr ""
#. ~ Description for sink
#: lang/json/furniture_from_json.py
-msgid "Emergency relief provider. Water isn't running, so no water."
+msgid ""
+"Emergency relief provider. Water isn't running, so it's basically useless."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67619,7 +71116,8 @@ msgstr ""
#: lang/json/furniture_from_json.py
msgid ""
"Used for heating and cooking food with electricity. Doesn't look like it's "
-"working, although it still has parts."
+"working, although it still has parts. It might be safe to light a fire "
+"inside of it, if you had to."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67641,7 +71139,7 @@ msgstr ""
#. ~ Description for wood stove
#: lang/json/furniture_from_json.py
msgid ""
-"Wood stove for heating and cooking. Much more effective than an open flame."
+"Wood stove for heating and cooking. Much more efficient than an open flame."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67652,11 +71150,11 @@ msgstr ""
#: lang/json/furniture_from_json.py
msgid ""
"Ah. The relaxation of sitting in front of a fire as the world around you "
-"crumbles."
+"crumbles. Towards the End, you could also get this service on your "
+"television."
msgstr ""
#: lang/json/furniture_from_json.py
-#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
#: lang/json/terrain_from_json.py
#: src/map.cpp
msgid "crash!"
@@ -67733,7 +71231,7 @@ msgstr ""
#. ~ Description for trash can
#: lang/json/furniture_from_json.py
-msgid "One man's trash is another mans dinner."
+msgid "One man's trash is another man's dinner."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67751,7 +71249,7 @@ msgstr ""
#. ~ Description for desk
#: lang/json/furniture_from_json.py
-msgid "Sit down at it, and, if up to, work on it."
+msgid "Sit down at it or work on it."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67760,7 +71258,9 @@ msgstr ""
#. ~ Description for exercise machine
#: lang/json/furniture_from_json.py
-msgid "Typically used for, well, exercising. You're not up for it."
+msgid ""
+"Typically used for, well, exercising. You're getting quite enough of that; "
+"running for your life."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67769,7 +71269,10 @@ msgstr ""
#. ~ Description for ball machine
#: lang/json/furniture_from_json.py
-msgid "Remember when baseball was a thing?"
+msgid ""
+"An unpowered machine that seems like it could've been used to launch various "
+"balls for different types of sports. It's only good for parts now if "
+"disassembled."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67778,7 +71281,7 @@ msgstr ""
#. ~ Description for bench
#: lang/json/furniture_from_json.py
-msgid "Hobo bed. Use at your own risk."
+msgid "Hobo bed. Airy. Use at your own risk."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67817,13 +71320,26 @@ msgstr ""
msgid "Read it. Warnings ahead."
msgstr ""
+#: lang/json/furniture_from_json.py
+msgid "warning sign"
+msgstr ""
+
+#. ~ Description for warning sign
+#: lang/json/furniture_from_json.py
+msgid ""
+"A triangle-shaped sign on a post meant to indicate something important or "
+"hazard."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "mailbox"
msgstr ""
#. ~ Description for mailbox
#: lang/json/furniture_from_json.py
-msgid "A metal box attached to the top of a wooden post. You've got mail."
+msgid ""
+"A metal box attached to the top of a wooden post. Mail delivery hasn't come "
+"for awhile. Doesn't look like it's coming again anytime soon."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67844,6 +71360,28 @@ msgstr ""
msgid "Affixed to the wall or found in kitchens or stores."
msgstr ""
+#: lang/json/furniture_from_json.py
+msgid "closed counter gate"
+msgstr ""
+
+#. ~ Description for closed counter gate
+#: lang/json/furniture_from_json.py
+msgid ""
+"A commercial quality swining door made of wood that allows passage behind "
+"counters."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "open counter gate"
+msgstr ""
+
+#. ~ Description for open counter gate
+#: lang/json/furniture_from_json.py
+msgid ""
+"A commercial quality swinging door made of wood that allows passage behind "
+"counters."
+msgstr ""
+
#: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py
msgid "refrigerator"
msgstr ""
@@ -67852,7 +71390,8 @@ msgstr ""
#: lang/json/furniture_from_json.py
msgid ""
"Freeze your food with the amazing science of electricity! Oh wait, none is "
-"flowing."
+"flowing. Well, as long as you don't open it, maybe it'll stay cool for "
+"awhile."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67861,7 +71400,8 @@ msgstr ""
#. ~ Description for glass door fridge
#: lang/json/furniture_from_json.py
-msgid "Wow! See INTO your fridge before you open it!"
+msgid ""
+"Wow! See INTO your fridge before you open it and discover it's not working!"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67870,7 +71410,7 @@ msgstr ""
#. ~ Description for dresser
#: lang/json/furniture_from_json.py
-msgid "Dress yourself for the prom, or other occasions."
+msgid "Dress yourself for the zombie prom, or other occasions."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67891,14 +71431,13 @@ msgstr ""
msgid "Display your items."
msgstr ""
-#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
-#: lang/json/terrain_from_json.py
-msgid "book case"
+#: lang/json/furniture_from_json.py
+msgid "bookcase"
msgstr ""
-#. ~ Description for book case
+#. ~ Description for bookcase
#: lang/json/furniture_from_json.py
-msgid "Stores books. Y'know, Those things. Who reads books anymore?"
+msgid "Stores books. Y'know, those things. Who reads books anymore?"
msgstr ""
#. ~ Description for washing machine
@@ -67912,7 +71451,7 @@ msgstr ""
#. ~ Description for dryer
#: lang/json/furniture_from_json.py
-msgid "Dry your clothes!"
+msgid "'Dry your clothes!' would be what you'd do if electricity was running."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67921,7 +71460,7 @@ msgstr ""
#. ~ Description for standing mirror
#: lang/json/furniture_from_json.py
-msgid "Lookin' good- is that blood?"
+msgid "Lookin' good - is that blood?"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67966,7 +71505,9 @@ msgstr ""
#. ~ Description for broken vending machine
#: lang/json/furniture_from_json.py
-msgid "Ponder if you could buy stuff, as it's broken."
+msgid ""
+"Ponder if you could buy stuff, as it's broken. Maybe if you broke it more, "
+"you wouldn't need to pay at all!"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67975,7 +71516,7 @@ msgstr ""
#. ~ Description for dumpster
#: lang/json/furniture_from_json.py
-msgid "Stores your trash."
+msgid "Stores trash. Doesn't get picked up anymore. Note the smell."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -67993,7 +71534,7 @@ msgstr ""
#. ~ Description for coffin
#: lang/json/furniture_from_json.py
-msgid "Holds the bodies of the countless you kill."
+msgid "Holds the bodies of the countless killed in the Cataclysm."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68007,7 +71548,9 @@ msgstr ""
#. ~ Description for open coffin
#: lang/json/furniture_from_json.py
-msgid "Look at the bodies of the countless you've killed."
+msgid ""
+"You can only hope you'll look good enough for one of these, when the time "
+"comes."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68016,7 +71559,9 @@ msgstr ""
#. ~ Description for crate
#: lang/json/furniture_from_json.py
-msgid "What's inside? Find out!"
+msgid ""
+"What's inside? Pry it open to find out! Or just smash it, but you might "
+"break the contents."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68034,27 +71579,58 @@ msgstr ""
#: lang/json/furniture_from_json.py
#: lang/json/terrain_from_json.py
-#: lang/json/terrain_from_json.py src/map.cpp
-msgid "rrrrip!"
+msgid "slap!"
msgstr ""
#: lang/json/furniture_from_json.py
-#: lang/json/terrain_from_json.py
-msgid "slap!"
+msgid "canvas flap"
msgstr ""
+#. ~ Description for canvas flap
#: lang/json/furniture_from_json.py
-msgid "canvas flap"
+msgid "This canvas flap door could be pulled aside."
msgstr ""
#: lang/json/furniture_from_json.py
msgid "open canvas flap"
msgstr ""
+#. ~ Description for open canvas flap
+#: lang/json/furniture_from_json.py
+msgid "This canvas flap door has been pulled aside."
+msgstr ""
+
+#. ~ Description for canvas flap
+#: lang/json/furniture_from_json.py
+msgid "This heavy canvas flap door could be pulled aside."
+msgstr ""
+
+#. ~ Description for open canvas flap
+#: lang/json/furniture_from_json.py
+msgid "This heavy canvas flap door has been pulled aside."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "groundsheet"
msgstr ""
+#. ~ Description for groundsheet
+#: lang/json/furniture_from_json.py
+msgid "This plastic groundsheet could keep you dry."
+msgstr ""
+
+#. ~ Description for groundsheet
+#: lang/json/furniture_from_json.py
+msgid "This large plastic groundsheet could keep you dry."
+msgstr ""
+
+#. ~ Description for groundsheet
+#: lang/json/furniture_from_json.py
+msgid ""
+"This plastic government-issue groundsheet could keep you dry, but was made "
+"by the lowest bidder."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "animalskin wall"
msgstr ""
@@ -68068,14 +71644,29 @@ msgstr ""
msgid "animalskin flap"
msgstr ""
+#. ~ Description for animalskin flap
+#: lang/json/furniture_from_json.py
+msgid "This animal skin flap could be pulled aside."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "open animalskin flap"
msgstr ""
+#. ~ Description for open animalskin flap
+#: lang/json/furniture_from_json.py
+msgid "This animal skin flap has been pulled aside."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "animalskin floor"
msgstr ""
+#. ~ Description for animalskin floor
+#: lang/json/furniture_from_json.py
+msgid "This animal skin groundsheet could keep you dry."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "mutated poppy flower"
msgstr ""
@@ -68091,6 +71682,7 @@ msgid ""
msgstr ""
#: lang/json/furniture_from_json.py
+#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
#: lang/json/terrain_from_json.py
msgid "crunch."
msgstr ""
@@ -68186,18 +71778,41 @@ msgstr ""
msgid "seed"
msgstr ""
+#. ~ Description for seed
+#: lang/json/furniture_from_json.py
+msgid ""
+"A humble planted seed. Actions are the seed of fate deeds grow into destiny."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "seedling"
msgstr ""
+#. ~ Description for seedling
+#: lang/json/furniture_from_json.py
+msgid "This plant is just getting started."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "mature plant"
msgstr ""
+#. ~ Description for mature plant
+#: lang/json/furniture_from_json.py
+msgid "This plant has matured."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "harvestable plant"
msgstr ""
+#. ~ Description for harvestable plant
+#: lang/json/furniture_from_json.py
+msgid ""
+"This plant is ready for harvest. Examine it more closely to identify how to "
+"harvest the plant appropriately."
+msgstr ""
+
#: lang/json/furniture_from_json.py src/vehicle_use.cpp
msgid "planter"
msgstr ""
@@ -68261,7 +71876,7 @@ msgstr ""
#. ~ Description for wooden keg
#: lang/json/furniture_from_json.py
-msgid "A keg made mostly of wood. Holds liquids, preferably beer."
+msgid "A keg made mostly of wood. Holds liquids, preferably alcoholic."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68270,7 +71885,7 @@ msgstr ""
#. ~ Description for statue
#: lang/json/furniture_from_json.py
-msgid "A carved statue made of stone.."
+msgid "A carved statue made of stone."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68283,7 +71898,9 @@ msgstr ""
#. ~ Description for mannequin
#: lang/json/furniture_from_json.py
-msgid "Put clothes on it and wish you looked as good."
+msgid ""
+"Put clothes on it, talk to it. Who's around to judge you? Wait... did it "
+"just move?"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68341,7 +71958,7 @@ msgstr ""
#. ~ Description for TV antenna
#: lang/json/furniture_from_json.py
-msgid "The television antenna improves reception for televisions."
+msgid "The television antenna improved reception for televisions."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68380,6 +71997,11 @@ msgstr ""
msgid "A metal shooting target in the rough shape of a human."
msgstr ""
+#. ~ Description for datura
+#: lang/json/furniture_from_json.py
+msgid "A pretty moonflower."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "marloss flower"
msgstr ""
@@ -68392,8 +72014,9 @@ msgid ""
"and... delicious?"
msgstr ""
+#. ~ Description for chamomile
#: lang/json/furniture_from_json.py
-msgid "chamomile"
+msgid "Ahh, soothing chamomile tea."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68404,10 +72027,24 @@ msgstr ""
msgid "cattails"
msgstr ""
+#. ~ Description for cattails
+#: lang/json/furniture_from_json.py
+msgid ""
+"This useful plant is available all year round. Many parts of the plant are "
+"edible."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "lilypad"
msgstr ""
+#. ~ Description for lilypad
+#: lang/json/furniture_from_json.py
+msgid ""
+"These lilypads don't look they'd support the weight of the things you've "
+"heard croaking in the swamp."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "forge"
msgstr ""
@@ -68433,21 +72070,49 @@ msgstr ""
msgid "spider egg sack"
msgstr ""
+#. ~ Description for spider egg sack
+#: lang/json/furniture_from_json.py
+msgid ""
+"Much too large, off-white egg sack. Kind of icky. Something IS moving in "
+"there."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "splat!"
msgstr ""
+#. ~ Description for spider egg sack
+#: lang/json/furniture_from_json.py
+msgid ""
+"Bulbous mass of spider eggs. More than kind of icky. Something IS moving "
+"in there."
+msgstr ""
+
+#. ~ Description for spider egg sack
+#: lang/json/furniture_from_json.py
+msgid ""
+"A horrifyingly oversized egg sack. Something IS moving in there. If you're "
+"seeing this, you're already too close to it."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "ruptured egg sack"
msgstr ""
+#. ~ Description for ruptured egg sack
+#: lang/json/furniture_from_json.py
+msgid "Super icky. Spider stuff's spilling out."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "reinforced vending machine"
msgstr ""
#. ~ Description for reinforced vending machine
#: lang/json/furniture_from_json.py
-msgid "A bit tougher to crack open than regular vending machines."
+msgid ""
+"A bit tougher to crack open than regular vending machines. That just makes "
+"it all the sweeter a target, doesn't it?"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68456,7 +72121,10 @@ msgstr ""
#. ~ Description for arcade machine
#: lang/json/furniture_from_json.py
-msgid "Play stupid games, win stupid prizes."
+msgid ""
+"Play stupid games, win stupid prizes. That was the idea, anyway. Now, "
+"without power, it's just stupid. Smarter to disassemble for all kinds of "
+"useful electronic parts."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68466,8 +72134,9 @@ msgstr ""
#. ~ Description for pinball machine
#: lang/json/furniture_from_json.py
msgid ""
-"Most underrated game of the 20th century. Press buttons so it doesn't go in "
-"the hole."
+"Most underrated game of the 20th century. Press buttons so the ball doesn't "
+"go in the hole. It doesn't seem to be working without electricity. Could "
+"be disassembled for various electronic parts."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68486,7 +72155,9 @@ msgstr ""
#. ~ Description for treadmill
#: lang/json/furniture_from_json.py
-msgid "Used for training leg muscles. It'll be hard without power."
+msgid ""
+"Used for training leg muscles. It'll be extra hard without power. Could be "
+"taken apart for its... parts."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68495,7 +72166,7 @@ msgstr ""
#. ~ Description for display case
#: lang/json/furniture_from_json.py
-msgid "Display your stuff. Securely."
+msgid "Display your stuff fancily and securely."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68522,7 +72193,9 @@ msgstr ""
#. ~ Description for heavy punching bag
#: lang/json/furniture_from_json.py
-msgid "Punch Punch! Exercise those arms!"
+msgid ""
+"Punch Punch! Exercise those arms! Main selling point: it doesn't fight "
+"back!"
msgstr ""
#: lang/json/furniture_from_json.py
@@ -68561,7 +72234,16 @@ msgstr ""
msgid "robotic arm"
msgstr ""
+#. ~ Description for robotic arm
+#: lang/json/furniture_from_json.py
+msgid ""
+"Automation! Science! Industry! Make a better horse! This robot arm "
+"promises to do it all. Except it's currently unpowered. You could remove "
+"the casing and retrieve the electronics through disassembly."
+msgstr ""
+
#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
+#: lang/json/terrain_from_json.py
msgid "thunk."
msgstr ""
@@ -68569,10 +72251,20 @@ msgstr ""
msgid "automated gas console"
msgstr ""
+#. ~ Description for automated gas console
+#: lang/json/furniture_from_json.py
+msgid "Automated gas flow control console."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "broken automated gas console"
msgstr ""
+#. ~ Description for broken automated gas console
+#: lang/json/furniture_from_json.py
+msgid "Automated gas flow control console. Broken. This is not a good thing."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "smoking rack"
msgstr ""
@@ -68659,6 +72351,13 @@ msgstr ""
msgid "manacles"
msgstr ""
+#. ~ Description for manacles
+#: lang/json/furniture_from_json.py
+msgid ""
+"Chain serfs in your dungeon. All you need now is an iron ball to chain to "
+"it."
+msgstr ""
+
#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py
#: lang/json/terrain_from_json.py
msgid "crack."
@@ -68695,14 +72394,29 @@ msgstr ""
msgid "obelisk"
msgstr ""
+#. ~ Description for obelisk
+#: lang/json/furniture_from_json.py
+msgid "Monument to pride."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "thunk!"
msgstr ""
+#. ~ Description for brazier
+#: lang/json/furniture_from_json.py
+msgid "A raised metal dish in which to safely burn things."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "fire ring"
msgstr ""
+#. ~ Description for fire ring
+#: lang/json/furniture_from_json.py
+msgid "A ring of stones to safely contain a fire."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "Autodoc Mk. XI"
msgstr ""
@@ -68791,6 +72505,25 @@ msgid ""
"but it's more valuable as a butchery appliance as it does not soak in blood."
msgstr ""
+#: lang/json/furniture_from_json.py
+msgid "plastic groundsheet"
+msgstr ""
+
+#. ~ Description for plastic groundsheet
+#: lang/json/furniture_from_json.py
+msgid ""
+"A large sheet of thick plastic has been tossed on the ground here. It would "
+"be a useful place to do some butchery, perhaps."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "whuff!"
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "crinkle."
+msgstr ""
+
#. ~ Description for fiber mat
#: lang/json/furniture_from_json.py
msgid ""
@@ -68805,17 +72538,60 @@ msgstr ""
#. ~ Description for pillow fort
#: lang/json/furniture_from_json.py
-msgid "A comfy place to hide from the world."
+msgid "A comfy place to hide from the world. Not very defensible, though."
msgstr ""
#: lang/json/furniture_from_json.py
msgid "paf!"
msgstr ""
+#: lang/json/furniture_from_json.py
+msgid "cardboard fort"
+msgstr ""
+
+#. ~ Description for cardboard fort
+#: lang/json/furniture_from_json.py
+msgid ""
+"A fort built by tipping a cardboard box on its side, lining it with "
+"blankets, and partly weather sealing it with a plastic sheet."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "crumple!"
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+#: src/ballistics.cpp
+msgid "thud."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "cardboard wall"
+msgstr ""
+
+#. ~ Description for cardboard wall
+#: lang/json/furniture_from_json.py
+msgid ""
+"This is a pile of cardboard boxes that have been filled with rags and junk "
+"and stacked together like bricks to form a wall."
+msgstr ""
+
+#. ~ Description for large cardboard box
+#: lang/json/furniture_from_json.py
+msgid ""
+"A large cardboard box: this could be used to store things, or as a hiding "
+"place."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "beaded curtain"
msgstr ""
+#. ~ Description for beaded curtain
+#: lang/json/furniture_from_json.py
+msgid "This beaded curtain could be pulled aside."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "clickity clack...clack...clack"
msgstr ""
@@ -68828,6 +72604,11 @@ msgstr ""
msgid "open beaded curtain"
msgstr ""
+#. ~ Description for open beaded curtain
+#: lang/json/furniture_from_json.py
+msgid "This beaded curtain has been pulled aside."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "clickity clack...clack...clack!"
msgstr ""
@@ -68859,7 +72640,9 @@ msgstr ""
#. ~ Description for piano
#: lang/json/furniture_from_json.py
-msgid "The ol' ebony and ivory."
+msgid ""
+"The ol' ebony and ivory. Really classes up the place. You could take it "
+"apart if you wanted... you monster."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -69370,8 +73153,8 @@ msgstr ""
#: lang/json/furniture_from_json.py
msgid ""
"This metal box used to spray hot water and soap at dirty dishes to make them "
-"clean and to save people an unpleasant chore. Now, with the power off and "
-"it sitting for a while, it is starting to smell a bit off."
+"clean and to save people an unpleasant chore. Now, with the power gone and "
+"it sitting for a while, it's starting to smell a bit off."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -69384,13 +73167,14 @@ msgid "This fake workbench holds the stats for working on a wielded item."
msgstr ""
#: lang/json/furniture_from_json.py
-msgid "fake workbench ground"
+msgid "ground crafting spot"
msgstr ""
-#. ~ Description for fake workbench ground
+#. ~ Description for ground crafting spot
#: lang/json/furniture_from_json.py
msgid ""
-"This fake workbench holds the stats for working on a item on the ground."
+"A cleared spot on the ground for crafting. Slower than using a workbench or "
+"holding a project in your hands, but readily available."
msgstr ""
#: lang/json/furniture_from_json.py
@@ -69415,6 +73199,59 @@ msgid ""
"temperature. You'll need to take it down first."
msgstr ""
+#: lang/json/furniture_from_json.py
+msgid "hydroponics unit"
+msgstr ""
+
+#. ~ Description for hydroponics unit
+#: lang/json/furniture_from_json.py
+msgid "This is a self-contained hydroponics unit used to grow crops indoors."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "hydroponics unit with seed"
+msgstr ""
+
+#. ~ Description for hydroponics unit with seed
+#: lang/json/furniture_from_json.py
+msgid ""
+"This is a self-contained hydroponics unit used to grow crops indoors. This "
+"one contains a planted seed"
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "hydroponics unit with seedling"
+msgstr ""
+
+#. ~ Description for hydroponics unit with seedling
+#: lang/json/furniture_from_json.py
+msgid ""
+"This is a self-contained hydroponics unit used to grow crops indoors. This "
+"one contains a planted seedling"
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "hydroponics unit with mature plant"
+msgstr ""
+
+#. ~ Description for hydroponics unit with mature plant
+#: lang/json/furniture_from_json.py
+msgid ""
+"This is a self-contained hydroponics unit used to grow crops indoors. This "
+"one contains a mature plant."
+msgstr ""
+
+#: lang/json/furniture_from_json.py
+msgid "hydroponics unit with harvestable plant"
+msgstr ""
+
+#. ~ Description for hydroponics unit with harvestable plant
+#: lang/json/furniture_from_json.py
+msgid ""
+"This is a self-contained hydroponics unit used to grow crops indoors. This "
+"one contains a mature plant that is ready for harvest."
+msgstr ""
+
#: lang/json/furniture_from_json.py
msgid "krash!"
msgstr ""
@@ -69829,7 +73666,7 @@ msgstr ""
#: lang/json/gun_from_json.py
#: lang/json/gunmod_from_json.py
-#: src/item.cpp
+#: lang/json/gunmod_from_json.py src/item.cpp
msgctxt "gun_type_type"
msgid "pistol"
msgstr ""
@@ -69899,6 +73736,7 @@ msgid ""
msgstr ""
#: lang/json/gun_from_json.py
+#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py
#: lang/json/gunmod_from_json.py
msgctxt "gun_type_type"
msgid "smg"
@@ -70010,6 +73848,7 @@ msgid ""
msgstr ""
#: lang/json/gun_from_json.py
+#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py
#: lang/json/gunmod_from_json.py
msgctxt "gun_type_type"
msgid "launcher"
@@ -70519,8 +74358,8 @@ msgid ""
msgstr ""
#: lang/json/gun_from_json.py
-msgid "H&K 416A5"
-msgid_plural "H&K 416A5s"
+msgid "HK416 A5"
+msgid_plural "HK416 A5s"
msgstr[0] ""
msgstr[1] ""
@@ -70575,7 +74414,7 @@ msgid ""
msgstr ""
#: lang/json/gun_from_json.py
-#: lang/json/gun_from_json.py src/item_factory.cpp
+#: src/item_factory.cpp
msgid "semi-auto"
msgstr ""
@@ -70769,7 +74608,8 @@ msgstr[1] ""
#: 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."
+"detachable magazines or STANAG magazines, this is one of the better homemade "
+"weapons."
msgstr ""
#: lang/json/gun_from_json.py
@@ -71050,6 +74890,44 @@ msgid ""
"detachable telescopic sight and other accessories."
msgstr ""
+#: lang/json/gun_from_json.py
+msgid "HK417 A2"
+msgid_plural "HK417 A2s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"A German battle rifle with a 13\" barrel and telescopic stock. It is a gas "
+"operated, rotating bolt rifle with a short-stroke piston design similar to "
+"that of the G36."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "M110A1"
+msgid_plural "M110A1s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"A derivative of H&K's G28 with an aluminium upper reciever to meet US Army "
+"weight requirements. It is a gas operated, rotating bolt rifle accurate to "
+"1.5 MOA with standard ammunition."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "AR-10"
+msgid_plural "AR-10s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Somewhat similar to the later AR-15, the AR-10 is a gas operated, rotating "
+"bolt rifle chambered for 7.62x51mm rounds."
+msgstr ""
+
#: lang/json/gun_from_json.py
msgid "SIG Sauer P230"
msgid_plural "SIG Sauer P230"
@@ -72009,6 +75887,18 @@ msgid ""
"military."
msgstr ""
+#: lang/json/gun_from_json.py
+msgid "AT4"
+msgid_plural "AT4s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Mil-Spec rocket launcher. An 84-mm unguided, portable, single-shot "
+"recoilless smoothbore weapon used primarily by the US military."
+msgstr ""
+
#: lang/json/gun_from_json.py
msgid "RM103A automagnum"
msgid_plural "RM103A automagnums"
@@ -73010,6 +76900,146 @@ msgid ""
"powered with rechargeable batteries."
msgstr ""
+#: lang/json/gun_from_json.py
+msgid "C.R.I.T .5 LP"
+msgid_plural "C.R.I.T .5 LPs"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Experimental low power sidearm under development in C.R.I.T R&D, the .5 LP "
+"is a relatively weak but accurate laser pistol. The double-barrel design "
+"compensates for the lack of raw power and yet the gun manages to be "
+"relatively easy to aim and lightweight due to the superalloy construction."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "C.R.I.T Chain Laser"
+msgid_plural "C.R.I.T Chain Lasers"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"A tried and true favorite from the bowels of R&D hell. Based off of a "
+"researcher's video on three taped-together .5 LPs on a hand held power "
+"drill, this gun is a relatively light weapon for the amount of UPS and "
+"destruction it can cause."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "burst"
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "C.R.I.T Laser Carbine"
+msgid_plural "C.R.I.T Laser Carbines"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"A lightweight laser gun developed by C.R.I.T R&D. Mainly developed to test "
+"out a new breakthrough in laser weapons."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "C.R.I.T Fire Glove"
+msgid_plural "C.R.I.T Fire Gloves"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid "Experimental CQB weapon system under development in C.R.I.T R&D."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "blast"
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "pellet gun"
+msgid_plural "pellet guns"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"A surprisingly powerful airgun that can reliably hunt small game. The small "
+"lead or alloy pellets that can be chambered provide it decent powet in every "
+"shot. It's fairly accurate and can be somewhat as damaging as a .22 short, "
+"but the break action charging system requires some arm strength to load a "
+"pellet."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "Plasma Cutter"
+msgid_plural "Plasma Cutters"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Experimental cutting tool under development in C.R.I.T R&D. It fires an "
+"extremely hot wave of plasma that slices into materials."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "Rivet Driver"
+msgid_plural "Rivet Drivers"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Experimental double purpose tool under development in C.R.I.T R&D. It takes "
+"a regular nail and then enlongates it within a fraction of a second before "
+"firing it out, upon reaching a target, the fragile stake explodes into "
+"shards."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "Line Gun"
+msgid_plural "Line Guns"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Experimental high power cutting tool under development in C.R.I.T R&D. It "
+"fires plasma in a wide line for slicing into dense materials."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "Pulse Rifle"
+msgid_plural "Pulse Rifles"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Experimental tri-barrel sub-sonic rifle under development in C.R.I.T R&D. "
+"Great for enclosed spaces and mobs of enemies. Shoots alloy rounds which "
+"instantly mushroom out upon impact."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "Ripper"
+msgid_plural "Rippers"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gun_from_json.py
+msgid ""
+"Experimental EM saw under development in C.R.I.T R&D. Great for distance "
+"cutting of material."
+msgstr ""
+
+#: lang/json/gun_from_json.py
+msgid "em field saw"
+msgstr ""
+
#: lang/json/gun_from_json.py
msgid ""
"A powerful ion energy generator is implanted on your chest. Fires a "
@@ -75966,6 +79996,68 @@ msgid ""
"accuracy and damage."
msgstr ""
+#: lang/json/gunmod_from_json.py
+msgid "Underslung flare launcher"
+msgid_plural "Underslung flare launchers"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gunmod_from_json.py
+msgid ""
+"A small barrel which launches signal flares. However, due to its awkward "
+"position, it has lower accuracy compared to an actual flaregun."
+msgstr ""
+
+#: lang/json/gunmod_from_json.py
+msgid "butt hook stock"
+msgid_plural "butt hook stocks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gunmod_from_json.py
+msgid ""
+", A military-grade stock which folds reducing the guns volume. The weight "
+"and the pivoting hook which latches onto your forearm allows for greater "
+"stability. "
+msgstr ""
+
+#: lang/json/gunmod_from_json.py
+msgid "diffracting lens"
+msgid_plural "diffracting lenss"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gunmod_from_json.py
+msgid ""
+"A set of optics made to fit on laser weapons, which will diffract the laser "
+"beam into several lower powered beams. This slightly increases point-blank "
+"damage and makes it difficult to not hit, but reduces range"
+msgstr ""
+
+#: lang/json/gunmod_from_json.py
+msgid "tactical flashlight"
+msgid_plural "tactical flashlights"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gunmod_from_json.py
+msgid ""
+"A compact flashlight which is mounted to the side of your weapon, not "
+"powerful, but good enough for tight hallways."
+msgstr ""
+
+#: lang/json/gunmod_from_json.py
+msgid "tactical flashlight (on)"
+msgid_plural "tactical flashlight (on)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: lang/json/gunmod_from_json.py
+msgid ""
+"A compact flashlight which is attatched to the side of your weapon, not "
+"powerful, but good enough for tight hallways."
+msgstr ""
+
#: lang/json/gunmod_from_json.py
msgid "5.45 caliber conversion kit"
msgid_plural "5.45 caliber conversion kits"
@@ -77557,6 +81649,10 @@ msgstr ""
msgid "Create a moving hologram"
msgstr ""
+#: lang/json/item_action_from_json.py
+msgid "Extract data from memory banks"
+msgstr ""
+
#: lang/json/item_action_from_json.py
msgid "Hack a robot"
msgstr ""
@@ -77601,6 +81697,14 @@ msgstr ""
msgid "Start countdown"
msgstr ""
+#: lang/json/item_action_from_json.py
+msgid "Learn spell"
+msgstr ""
+
+#: lang/json/item_action_from_json.py
+msgid "Cast spell"
+msgstr ""
+
#: lang/json/item_action_from_json.py
msgid "Use holster"
msgstr ""
@@ -77759,6 +81863,14 @@ msgstr ""
msgid "Mop"
msgstr ""
+#: lang/json/item_action_from_json.py
+msgid "Play music"
+msgstr ""
+
+#: lang/json/item_action_from_json.py
+msgid "Turn off music"
+msgstr ""
+
#: lang/json/item_action_from_json.py
msgid "Prepare to use"
msgstr ""
@@ -77804,7 +81916,8 @@ msgstr ""
msgid "Measure radiation"
msgstr ""
-#: lang/json/item_action_from_json.py lang/json/talk_topic_from_json.py
+#: lang/json/item_action_from_json.py
+#: lang/json/mission_def_from_json.py lang/json/talk_topic_from_json.py
#: lang/json/talk_topic_from_json.py
#: lang/json/talk_topic_from_json.py src/game_inventory.cpp
msgid "..."
@@ -78056,6 +82169,12 @@ msgid ""
"discharges."
msgstr ""
+#. ~ Please leave anything in unchanged.
+#: lang/json/json_flag_from_json.py
+msgid ""
+"This item disappears as soon as its timer runs out whether it is food or not."
+msgstr ""
+
#. ~ Please leave anything in unchanged.
#: lang/json/json_flag_from_json.py
msgid "You can wear only one."
@@ -78261,6 +82380,13 @@ msgid ""
"info>."
msgstr ""
+#. ~ Please leave anything in unchanged.
+#: lang/json/json_flag_from_json.py
+msgid ""
+"This gear requires careful balance to use. Being hit while wearing it could "
+"make you fall down."
+msgstr ""
+
#. ~ Please leave anything in unchanged.
#: lang/json/json_flag_from_json.py
msgid "This item can be used to communicate with radio waves."
@@ -79585,6 +83711,10 @@ msgstr ""
msgid "View Scentmap"
msgstr ""
+#: lang/json/keybinding_from_json.py
+msgid "View Temperature Map"
+msgstr ""
+
#: lang/json/keybinding_from_json.py
msgid "Switch Sidebar Style"
msgstr ""
@@ -79721,6 +83851,10 @@ msgstr ""
msgid "Movement Mode Menu"
msgstr ""
+#: lang/json/keybinding_from_json.py
+msgid "Spellcasting"
+msgstr ""
+
#: lang/json/keybinding_from_json.py src/game_inventory.cpp
msgid "Compare"
msgstr ""
@@ -81466,6 +85600,33 @@ msgstr ""
msgid "Bonus dodges and increased to-hit"
msgstr ""
+#: lang/json/martial_art_from_json.py
+msgid "Pankration"
+msgstr ""
+
+#. ~ Description for martial art 'Pankration'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"An ancient Greek martial art, combining boxing and wrestling techniques to "
+"create a brutal sport, though modern revival of the art is less of no-holds-"
+"barred in nature."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Grappling"
+msgstr ""
+
+#. ~ Description of buff 'Grappling' for martial art 'Pankration'
+#: lang/json/martial_art_from_json.py
+msgid "I have you now!"
+msgstr ""
+
+#. ~ Description of buff 'Counter Chance' for martial art 'Pankration'
+#. ~ Description of buff 'Displacement' for martial art 'Medieval Swordsmanship'
+#: lang/json/martial_art_from_json.py
+msgid "The enemy has presented an opening in their defense."
+msgstr ""
+
#: lang/json/martial_art_from_json.py
msgid "Taekwondo"
msgstr ""
@@ -81550,6 +85711,7 @@ msgid "Silat Stance"
msgstr ""
#. ~ Description of buff 'Silat Stance' for martial art 'Silat'
+#. ~ Description of buff 'Schatten Folgen' for martial art 'Panzer Kunst'
#: lang/json/martial_art_from_json.py
msgid "+1 dodge"
msgstr ""
@@ -81967,47 +86129,152 @@ msgid "You've lured 'em in! Your next attack will be a Viper Bite."
msgstr ""
#: lang/json/martial_art_from_json.py
-msgid "Medieval Swordsmanship"
+msgid "C.R.I.T Blade-work"
msgstr ""
-#. ~ Description for martial art 'Medieval Swordsmanship'
+#. ~ Description for martial art 'C.R.I.T Blade-work'
#: lang/json/martial_art_from_json.py
msgid ""
-"The art of the longsword and other weapons, preceding the later development "
-"of fencing. Designed for combat both unarmored and in armor, it includes "
-"grappling as well as defensive and offensive sword techniques, plus "
-"familiarity with other weapons like polearms."
+"An offensive style that is centered around rapid slashes and prodding. Each "
+"attack landed increases your speed by 3 and offers other combat bonuses"
msgstr ""
#: lang/json/martial_art_from_json.py
-msgid "Displacement"
+msgid "C.R.I.T Intensity"
msgstr ""
-#. ~ Description of buff 'Displacement' for martial art 'Medieval Swordsmanship'
-#. ~ Description of buff 'Counter Chance' for martial art 'Pankration'
+#. ~ Description of buff 'C.R.I.T Intensity' for martial art 'C.R.I.T Blade-work'
#: lang/json/martial_art_from_json.py
-msgid "The enemy has presented an opening in their defense."
+msgid ""
+"+3 Atk Speed and other small bonuses per stack. Bash damage decreases by 10 "
+"percent per stack. Max of 10 stacks"
msgstr ""
#: lang/json/martial_art_from_json.py
-msgid "Pankration"
+msgid "C.R.I.T Calculation"
msgstr ""
-#. ~ Description for martial art 'Pankration'
+#. ~ Description of buff 'C.R.I.T Calculation' for martial art 'C.R.I.T Blade-work'
#: lang/json/martial_art_from_json.py
msgid ""
-"An ancient Greek martial art, combining boxing and wrestling techniques to "
-"create a brutal sport, though modern revival of the art is less of no-holds-"
-"barred in nature."
+"DEX provides accuracy and minor cut and stab damage with slight piercing "
+"capability."
msgstr ""
#: lang/json/martial_art_from_json.py
-msgid "Grappling"
+msgid "C.R.I.T Enforcement"
msgstr ""
-#. ~ Description of buff 'Grappling' for martial art 'Pankration'
+#. ~ Description for martial art 'C.R.I.T Enforcement'
#: lang/json/martial_art_from_json.py
-msgid "I have you now!"
+msgid ""
+"A defensive style that is centered around stunning swings, knockback and "
+"grounding enemies. Each attack landed increases your armor by 0.125 and "
+"offers other combat bonuses based on stats."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "C.R.I.T Endurance"
+msgstr ""
+
+#. ~ Description of buff 'C.R.I.T Endurance' for martial art 'C.R.I.T Enforcement'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"+0.05 armor, +0.1 bash and other small bonuses per stack. Max of 10 stacks"
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "C.R.I.T Guard"
+msgstr ""
+
+#. ~ Description of buff 'C.R.I.T Guard' for martial art 'C.R.I.T Enforcement'
+#: lang/json/martial_art_from_json.py
+msgid "+1 armor. STR provides accuracy and minor bash damage and arpen."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "C.R.I.T CQB"
+msgstr ""
+
+#. ~ Description for martial art 'C.R.I.T CQB'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"A defensive style centered around rapid paralyzing strikes and piercing "
+"jabs. Each attack landed increases your speed by 0.5 along with a slew of "
+"combat bonuses. 25 percent bash damage."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "C.R.I.T Tenacity"
+msgstr ""
+
+#. ~ Description of buff 'C.R.I.T Tenacity' for martial art 'C.R.I.T CQB'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"+0.5 Atk Speed and other small bonuses based on DEX per stack. Max of 100 "
+"stacks"
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "C.R.I.T Initiative"
+msgstr ""
+
+#. ~ Description of buff 'C.R.I.T Initiative' for martial art 'C.R.I.T CQB'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"DEX provides dodge ability, accuracy and minor cut /stab damage with slight "
+"piercing capability. 25 Percent Bash Damage that slightly increases per hit "
+"stack."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Panzer Kunst"
+msgstr ""
+
+#. ~ Description for martial art 'Panzer Kunst'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"A futuristic martial art devised for cyborgs fighting in zero-gravity "
+"environments."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Verschlag"
+msgstr ""
+
+#. ~ Description of buff 'Verschlag' for martial art 'Panzer Kunst'
+#: lang/json/martial_art_from_json.py
+msgid "You have imparted a powerful shockwave to your enemy"
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Schatten Folgen"
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Einsatzrhythmen"
+msgstr ""
+
+#. ~ Description of buff 'Einsatzrhythmen' for martial art 'Panzer Kunst'
+#: lang/json/martial_art_from_json.py
+msgid "Perception increases dodging ability, +1 block"
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Medieval Swordsmanship"
+msgstr ""
+
+#. ~ Description for martial art 'Medieval Swordsmanship'
+#: lang/json/martial_art_from_json.py
+msgid ""
+"The art of the longsword and other weapons, preceding the later development "
+"of fencing. Designed for combat both unarmored and in armor, it includes "
+"grappling as well as defensive and offensive sword techniques, plus "
+"familiarity with other weapons like polearms."
+msgstr ""
+
+#: lang/json/martial_art_from_json.py
+msgid "Displacement"
msgstr ""
#: lang/json/material_from_json.py src/bionics.cpp
@@ -82389,6 +86656,10 @@ msgstr ""
msgid "Titanium"
msgstr ""
+#: lang/json/material_from_json.py
+msgid "Rubber"
+msgstr ""
+
#: lang/json/material_from_json.py
msgid "Bronze"
msgstr ""
@@ -83556,16 +87827,373 @@ msgstr ""
msgid "Find Antibiotics Before You Die!"
msgstr ""
+#: lang/json/mission_def_from_json.py
+msgid "Locate Commo Team"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "We need help..."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"My communications team went to secure the radio control room after we "
+"breached the facility. I haven't heard from them since, I need you to "
+"locate them. Their first objective was to record all active channels that "
+"were transmitting information on other survivors or facilities. Find them "
+"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."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"I don't know why you would bother wasting your time down here if you can't "
+"handle a few small tasks..."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "We were briefed that the communications array was on this level."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "How is the search going?"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Thanks, let me know when you need another tasking."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Cull Nightmares"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"Your assistance is greatly appreciated, we need to clear out the more "
+"ruthless monsters that are wandering up from the lower levels. If you could "
+"cull twenty or so of what we refer to as 'nightmares' my men would be much "
+"safer. If you've cleared out most of this floor then the lower levels "
+"should be your next target. "
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Good luck, finding a clear passage to the second level may be tricky."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "These creatures can swing their appendages surprisingly far."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "How is the hunt going?"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Fabricate Repeater Mod"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"My chief responsibility is to monitor radio traffic and locate potential "
+"targets to secure or rescue. The majority of radio repeaters are down and "
+"those that are working have only emergency power. If you have a basic "
+"understanding of electronics you should be able to fabricate the 'radio "
+"repeater mod' found in these plans. When this mod is attached to a radio "
+"station's main terminal, all short range radio traffic on emergency channels "
+"is boosted so we can pick it up at much longer ranges. I really need you "
+"make me one."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"Thanks, I know the labs on the other side of the complex have electronic "
+"parts sitting around."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "I'm sure the motorpool has a truck battery you could salvage."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Have you had any luck fabricating it?"
+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 ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"I guess I could use your skills once again. There are small transmitters "
+"located in the nearby evacuation shelters; if we don't separate them from "
+"the power grid their power systems will rapidly deteriorate over the next "
+"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 ""
+"Thanks, I should be ready for you to install the radio repeater mods by the "
+"time you get back."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Try searching on the outskirts of towns."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Have you had any luck severing the connection?"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "We are good to go! The last of the gear is powering up now."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"Most of my essential gear has been brought back online so it is time for you "
+"to install your first radio repeater mod. Head topside and locate the "
+"nearest radio station. Install the mod on the backup terminal and return to "
+"me so that I can verify that everything was successful. Radio towers must "
+"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 ""
+
+#: 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 ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Have you had any luck finding a radio station?"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "That's one down."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"I could always use you to put another repeater mod up. I don't have to "
+"remind you but every one that goes up extends our response area just a "
+"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 ""
+
+#: 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 ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"I'll try and update the captain with any signals that I need investigated."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Return Field Data"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"No, I said ... [*You hear a short, muffled conversation from across the "
+"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you "
+"are likely to die, but if you complete it we will allow you limited access "
+"to our resources."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"One of our scientists recently left the lab to perform a field test on a "
+"prototype robot, but failed to return, and has not been heard of since. "
+"Investigate the test and return with her and the prototype. Failing that, "
+"return with the data recorder that was attached to our prototype."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "We appreciate your help, good luck."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Don't expect our help then."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"If the robot remains operational don’t try to fight it head on, because it "
+"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use "
+"those to disable the robot."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Don't you have a job to do?"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"Unfortunate only the data was salvageable, but you have our thanks for "
+"returning it nonetheless."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Simply useless..."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Steal a dead man's mind"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"When the portal storms started, the Government issued an evacuation order "
+"for critical XEDRA personnel and sent convoys to retrieve them, with our "
+"head of AI research among the recalled. We recently discovered that he died "
+"when the convoy transferring him was ambushed in the initial chaos, but his "
+"corpse and memory bionic might remain intact enough for us to extract "
+"valuable knowledge. We want you to travel to the location, make a copy of "
+"his Bionic Memory Unit, and return it to us."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"Remember, do extraction /exactly/ as specified, otherwise the bionic will "
+"self-destruct."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+"Yes, we recognize that our request is exceptional. Return if you change "
+"your mind."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid ""
+" You do know what a memory unit looks like, right? Matte gray, pill-sized, "
+"right in front of the corpus callosum. We suggest a forceps through the eye "
+"socket, shaking slightly, then slowly and carefully..."
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "Do you have the scan?"
+msgstr ""
+
+#: lang/json/mission_def_from_json.py
+msgid "You have our thanks and payment."
+msgstr ""
+
#: lang/json/mission_def_from_json.py
msgid "Reach Refugee Center"
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Clear Back Bay"
+msgid "Bring Jenny a motor for her compressor."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "We need help..."
+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/mission_def_from_json.py
+msgid "Clear Back Bay"
msgstr ""
#: lang/json/mission_def_from_json.py
@@ -83664,18 +88292,19 @@ msgid ""
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Find 25 Plutonium Cells"
+msgid "Find 25 Plutonium Fuel Cells"
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
"We are starting to build new infrastructure here and would like to get a few "
"new electrical systems online... unfortunately our existing system relies on "
-"an array of something called RTGs. From what I understand they work like "
-"giant batteries of sorts. We can expand our power system but to do so we "
-"would need enough plutonium. With 25 plutonium cells we would be able to "
-"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."
+"an array of something called RTGs. Running generators isn't a viable option "
+"underground, of course. The military was using some kind of high density "
+"energy batteries for experimental weaponry before the cataclysm, and I'm "
+"told that we can use those for a temporary solution, and when we burn "
+"through the high density part our eggheads say they might be able to reuse "
+"the plutonium core to build more RTGs. It's a big job."
msgstr ""
#: lang/json/mission_def_from_json.py
@@ -83683,11 +88312,10 @@ msgid "If you can do this for us our survival options would vastly increase."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Can't help you much, I've never even seen a plutonium battery."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "How is the search going?"
+msgid ""
+"Can't help you much, I've never even seen one of these plutonium "
+"batteries... or whatever they are, I keep getting a lecture whenever I call "
+"them that."
msgstr ""
#: lang/json/mission_def_from_json.py
@@ -83731,150 +88359,6 @@ msgid ""
"side."
msgstr ""
-#: lang/json/mission_def_from_json.py
-msgid "Kill Bandits"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"I don't like sending untested men into the field but if you have stayed "
-"alive so far you might have some skills. There are at least a pair of "
-"bandits squatting in a local cabin, anyone who preys upon civilians meets a "
-"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."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "The States will remain a wasteland unless good men choose to save it."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "They might suspect you are coming, keep an eye out for traps."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Have you completed your mission?"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"The Old Guard thanks you for eliminating the criminals. You won't be "
-"forgotten."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Deal with Informant"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"This task is going to require a little more persuasive skill. I believe the "
-"Hell's Raiders have an informant here to monitor who comes and goes. I need "
-"you to find out who it is and deal with them without letting anyone else "
-"know of my suspicions. We normally allow the Free Merchants to govern "
-"themselves so I would hate to offend them."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Thank you, please keep this discreet."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Come back when you get a chance, we could use a few good men."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "If they draw first blood their friends are less likely to blame you..."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "You deal with the rat?"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Thank you, I'll do the explaining if anyone else asks about it."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Kill ???"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"There is another monster troubling the merchants but this time it isn't "
-"human... at least I don't think. Guy just disappeared while walking behind "
-"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 ""
-
-#: 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 ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Great work, wasn't sure what I was sending you after."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Kill Raider Leader"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"I've located a Hell's Raiders encampment in the region that appears to be "
-"coordinating operations against the Free Merchants. We know almost nothing "
-"about the command structure in the 'gang' so I need to send someone in to "
-"decapitate the leadership. The raid will be held under orders of the U.S. "
-"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 ""
-"Now repeat after me... I do solemnly swear that I will support and defend "
-"the Constitution of the United States against all enemies, foreign and "
-"domestic...... that I will bear true faith and allegiance to the same...... "
-"that I take this obligation freely, without any mental reservation or "
-"purpose of evasion...... and that I will well and faithfully discharge the "
-"duties of the office on which I am about to enter. To establish justice, "
-"insure domestic tranquility, provide for the common defense, promote the "
-"general welfare and secure the blessings of liberty. So help me God. "
-"Congratulations Marshal, don't forget your badge and gun. As a marshal all "
-"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 ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Has the leadership been dealt with?"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"Marshal, you continue to impress us. If you are interested, I recently "
-"received a message that a unit was deploying into our AO. I don't have the "
-"exact coordinates but they said they were securing an underground facility "
-"and may require assistance. The bird dropped them off next to a pump "
-"station. Can't tell you much more. If you could locate the captain in "
-"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 ""
"We don't have the equipment for real analysis here so it'll need to be done "
@@ -83917,6 +88401,10 @@ msgid ""
"a USB drive."
msgstr ""
+#: lang/json/mission_def_from_json.py
+msgid "Have you completed your mission?"
+msgstr ""
+
#: lang/json/mission_def_from_json.py
msgid ""
"Thanks! This data looks damaged, but maybe I can make something out of it."
@@ -84014,174 +88502,143 @@ msgid ""
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Locate Commo Team"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid ""
-"My communications team went to secure the radio control room after we "
-"breached the facility. I haven't heard from them since, I need you to "
-"locate them. Their first objective was to record all active channels that "
-"were transmitting information on other survivors or facilities. Find them "
-"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."
+msgid "Kill Bandits"
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
-"I don't know why you would bother wasting your time down here if you can't "
-"handle a few small tasks..."
+"I don't like sending untested men into the field but if you have stayed "
+"alive so far you might have some skills. There are at least a pair of "
+"bandits squatting in a local cabin, anyone who preys upon civilians meets a "
+"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 "We were briefed that the communications array was on this level."
+msgid "Contractor, I welcome you aboard."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Thanks, let me know when you need another tasking."
+msgid "The States will remain a wasteland unless good men choose to save it."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Cull Nightmares"
+msgid "They might suspect you are coming, keep an eye out for traps."
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
-"Your assistance is greatly appreciated, we need to clear out the more "
-"ruthless monsters that are wandering up from the lower levels. If you could "
-"cull twenty or so of what we refer to as 'nightmares' my men would be much "
-"safer. If you've cleared out most of this floor then the lower levels "
-"should be your next target. "
+"The Old Guard thanks you for eliminating the criminals. You won't be "
+"forgotten."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Good luck, finding a clear passage to the second level may be tricky."
+msgid "Deal with Informant"
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "These creatures can swing their appendages surprisingly far."
+msgid ""
+"This task is going to require a little more persuasive skill. I believe the "
+"Hell's Raiders have an informant here to monitor who comes and goes. I need "
+"you to find out who it is and deal with them without letting anyone else "
+"know of my suspicions. We normally allow the Free Merchants to govern "
+"themselves so I would hate to offend them."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "How is the hunt going?"
+msgid "Thank you, please keep this discreet."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Fabricate Repeater Mod"
+msgid "Come back when you get a chance, we could use a few good men."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid ""
-"My chief responsibility is to monitor radio traffic and locate potential "
-"targets to secure or rescue. The majority of radio repeaters are down and "
-"those that are working have only emergency power. If you have a basic "
-"understanding of electronics you should be able to fabricate the 'radio "
-"repeater mod' found in these plans. When this mod is attached to a radio "
-"station's main terminal, all short range radio traffic on emergency channels "
-"is boosted so we can pick it up at much longer ranges. I really need you "
-"make me one."
+msgid "If they draw first blood their friends are less likely to blame you..."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid ""
-"Thanks, I know the labs on the other side of the complex have electronic "
-"parts sitting around."
+msgid "You deal with the rat?"
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "I'm sure the motorpool has a truck battery you could salvage."
+msgid "Thank you, I'll do the explaining if anyone else asks about it."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Have you had any luck fabricating it?"
+msgid "Kill ???"
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."
+"There is another monster troubling the merchants but this time it isn't "
+"human... at least I don't think. Guy just disappeared while walking behind "
+"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 ""
-"I guess I could use your skills once again. There are small transmitters "
-"located in the nearby evacuation shelters; if we don't separate them from "
-"the power grid their power systems will rapidly deteriorate over the next "
-"few weeks. The task is rather simple but the shelters offer us a place to "
-"redirect refugees until this vault can be secured. "
+msgid "Thanks, keeping the people safe is what we try and do."
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
-"Thanks, I should be ready for you to install the radio repeater mods by the "
-"time you get back."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Try searching on the outskirts of towns."
+"Search the bushes for any trace? I'm not an expert tracker but you should "
+"be able to find something."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "Have you had any luck severing the connection?"
+msgid "Great work, wasn't sure what I was sending you after."
msgstr ""
#: lang/json/mission_def_from_json.py
-msgid "We are good to go! The last of the gear is powering up now."
+msgid "Kill Raider Leader"
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
-"Most of my essential gear has been brought back online so it is time for you "
-"to install your first radio repeater mod. Head topside and locate the "
-"nearest radio station. Install the mod on the backup terminal and return to "
-"me so that I can verify that everything was successful. Radio towers must "
-"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."
+"I've located a Hell's Raiders encampment in the region that appears to be "
+"coordinating operations against the Free Merchants. We know almost nothing "
+"about the command structure in the 'gang' so I need to send someone in to "
+"decapitate the leadership. The raid will be held under orders of the U.S. "
+"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 ""
-"If you could make some sort of directional antenna, it might help locating "
-"the radio stations."
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "Have you had any luck finding a radio station?"
-msgstr ""
-
-#: lang/json/mission_def_from_json.py
-msgid "That's one down."
+"Now repeat after me... I do solemnly swear that I will support and defend "
+"the Constitution of the United States against all enemies, foreign and "
+"domestic...... that I will bear true faith and allegiance to the same...... "
+"that I take this obligation freely, without any mental reservation or "
+"purpose of evasion...... and that I will well and faithfully discharge the "
+"duties of the office on which I am about to enter. To establish justice, "
+"insure domestic tranquility, provide for the common defense, promote the "
+"general welfare and secure the blessings of liberty. So help me God. "
+"Congratulations Marshal, don't forget your badge and gun. As a marshal all "
+"men or women assisting you are considered deputy marshals so keep them in "
+"line."
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
-"I could always use you to put another repeater mod up. I don't have to "
-"remind you but every one that goes up extends our response area just a "
-"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."
+"I'd recommend having two deputies... it would be a death trap if a single "
+"man got surrounded."
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."
+msgid "Has the leadership been dealt with?"
msgstr ""
#: lang/json/mission_def_from_json.py
msgid ""
-"I'll try and update the captain with any signals that I need investigated."
+"Marshal, you continue to impress us. If you are interested, I recently "
+"received a message that a unit was deploying into our AO. I don't have the "
+"exact coordinates but they said they were securing an underground facility "
+"and may require assistance. The bird dropped them off next to a pump "
+"station. Can't tell you much more. If you could locate the captain in "
+"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
@@ -85112,97 +89569,6 @@ msgstr ""
msgid "Do you have the Molotov cocktails?"
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!"
@@ -85505,6 +89871,7 @@ msgid "Hoarder"
msgstr ""
#: lang/json/morale_type_from_json.py lang/json/mutation_from_json.py
+#: lang/json/mutation_from_json.py
msgid "Stylish"
msgstr ""
@@ -86239,6 +90606,68 @@ msgctxt "memorial_female"
msgid "Found the cheese."
msgstr ""
+#. ~ Mutation class name
+#: lang/json/mutation_category_from_json.py
+msgid "Vampire"
+msgstr ""
+
+#. ~ Mutation class: Vampire mutagen_message
+#: lang/json/mutation_category_from_json.py
+msgid ""
+"Nearby shadows seem to bend towards you for a moment and then reality warps "
+"back into place."
+msgstr ""
+
+#. ~ Mutation class: Vampire iv_message
+#: lang/json/mutation_category_from_json.py
+msgid ""
+"You twitch and pant randomly as your desire to slake your thirst becomes "
+"overwhelming."
+msgstr ""
+
+#. ~ Mutation class: Vampire Male memorial messsage
+#: lang/json/mutation_category_from_json.py
+msgctxt "memorial_male"
+msgid "Dispersed into the shadows."
+msgstr ""
+
+#. ~ Mutation class: Vampire Female memorial messsage
+#: lang/json/mutation_category_from_json.py
+msgctxt "memorial_female"
+msgid "Dispersed into the shadows."
+msgstr ""
+
+#. ~ Mutation class name
+#: lang/json/mutation_category_from_json.py
+msgid "Wendigo"
+msgstr ""
+
+#. ~ Mutation class: Wendigo mutagen_message
+#: lang/json/mutation_category_from_json.py
+msgid ""
+"Nearby plants seem to bend towards you for a moment and then they shift back "
+"into place."
+msgstr ""
+
+#. ~ Mutation class: Wendigo iv_message
+#: lang/json/mutation_category_from_json.py
+msgid ""
+"A serene feeling of terror grips you as become acutely aware of the flora "
+"and fauna beckoning towards you."
+msgstr ""
+
+#. ~ Mutation class: Wendigo Male memorial messsage
+#: lang/json/mutation_category_from_json.py
+msgctxt "memorial_male"
+msgid "Reclaimed by nature."
+msgstr ""
+
+#. ~ Mutation class: Wendigo Female memorial messsage
+#: lang/json/mutation_category_from_json.py
+msgctxt "memorial_female"
+msgid "Reclaimed by nature."
+msgstr ""
+
#: lang/json/mutation_from_json.py
msgid "Venom Mob Protege"
msgstr ""
@@ -87490,7 +91919,7 @@ msgstr ""
#: lang/json/mutation_from_json.py
msgid ""
"You have received some martial arts training at a local dojo. You start "
-"with your choice of Karate, Judo, Aikido, Tai Chi, or Taekwondo."
+"with your choice of Karate, Judo, Aikido, Tai Chi, Taekwondo, or Pankration."
msgstr ""
#: lang/json/mutation_from_json.py
@@ -88771,7 +93200,44 @@ msgstr ""
msgid ""
"All the hair on your body has turned to long, grass-like leaves. Apart from "
"being physically striking, these provide you with a minor amount of "
-"nutrition while in sunlight. Slightly reduces wet effects."
+"nutrition while in sunlight when your head is uncovered. Slightly reduces "
+"wet effects."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Lush Leaves"
+msgstr ""
+
+#. ~ Description for Lush Leaves
+#: lang/json/mutation_from_json.py
+msgid ""
+"Your leaves have grown in size and prominence, with additional leaves "
+"sprouting along your arms. While your arms and head are uncovered, you will "
+"photosynthesize additional nutrients while in sunlight. Reduces wet effects."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Verdant Leaves"
+msgstr ""
+
+#. ~ Description for Verdant Leaves
+#: lang/json/mutation_from_json.py
+msgid ""
+"You leaves are vibrant, large, and green, and have become a major source of "
+"nutrition for your body. Whenever your arms and head are uncovered you will "
+"gain a large amount of nutrition by standing in the sunlight. Reduces wet "
+"effects."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Transpiration"
+msgstr ""
+
+#. ~ Description for Transpiration
+#: lang/json/mutation_from_json.py
+msgid ""
+"You body has begun moving nutrients via the evaporation of water. This "
+"increases your thrist when it's hot, but reduces it when it's cold."
msgstr ""
#: lang/json/mutation_from_json.py
@@ -89778,6 +94244,7 @@ msgid ""
"fates upon them."
msgstr ""
+#: lang/json/mutation_from_json.py
#: lang/json/mutation_from_json.py lang/json/npc_class_from_json.py
#: lang/json/npc_from_json.py
msgid "Hunter"
@@ -92226,6 +96693,15 @@ msgid ""
"have it."
msgstr ""
+#: lang/json/mutation_from_json.py
+msgid "mycus friend"
+msgstr ""
+
+#. ~ Description for mycus friend
+#: lang/json/mutation_from_json.py
+msgid "NPC trait that makes fungaloid monsters see this NPC as a friend."
+msgstr ""
+
#: lang/json/mutation_from_json.py
msgid "mute"
msgstr ""
@@ -92719,11 +97195,309 @@ msgstr ""
msgid "Genetic defects have made your body incredibly strong. Strength + 7."
msgstr ""
-#. ~ Description for Martial Arts Training
+#: lang/json/mutation_from_json.py
+msgid "C.R.I.T Melee Training"
+msgstr ""
+
+#. ~ Description for C.R.I.T Melee Training
#: lang/json/mutation_from_json.py
msgid ""
-"You have received some martial arts training at a local dojo. You start "
-"with your choice of Karate, Judo, Aikido, Tai Chi, Taekwondo, or Pankration."
+"You have received some defensive training. For every hit you land, gain "
+"various miniscule combat bonuses that scale off of your stats."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Shadow Meld"
+msgstr ""
+
+#. ~ Description for Shadow Meld
+#: lang/json/mutation_from_json.py
+msgid ""
+"The light around you bends strangely, making it harder for enemies to notice "
+"you."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Moon-lit Grace"
+msgstr ""
+
+#. ~ Description for Moon-lit Grace
+#: lang/json/mutation_from_json.py
+msgid ""
+"Aside from your appearances, your movements are incredibly graceful and "
+"allow you to seemingly glide through every task."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Red Iris"
+msgstr ""
+
+#. ~ Description for Red Iris
+#: lang/json/mutation_from_json.py
+msgid ""
+"You eyes are a pleasant shade of hypnotic scarlet. People feel mildly "
+"persuaded by you."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Night Walker"
+msgstr ""
+
+#. ~ Description for Night Walker
+#: lang/json/mutation_from_json.py
+msgid ""
+"Emerge from the grave of the old world, and become the night once again."
+msgstr ""
+
+#. ~ Description for Jittery
+#: 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."
+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 "
+"skills will erode slightly slower than usual, and you can remember more "
+"terrain."
+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."
+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 "
+"kindly to you."
+msgstr ""
+
+#. ~ Description for Glorious
+#: lang/json/mutation_from_json.py
+msgid ""
+"You are incredibly beautiful. People cannot help themselves for your "
+"charms, and will do whatever they can to please you."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Silent Movement"
+msgstr ""
+
+#. ~ Description for Silent Movement
+#: lang/json/mutation_from_json.py
+msgid "You know how to move completely silently."
+msgstr ""
+
+#. ~ Description for Poor Healer
+#: 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."
+msgstr ""
+
+#. ~ Description for Prey Animal
+#: lang/json/mutation_from_json.py
+msgid ""
+"Natural animals like dogs and wolves see you as prey or a threat, and are "
+"liable to attack you on sight."
+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."
+msgstr ""
+
+#. ~ Description for Culler
+#: lang/json/mutation_from_json.py
+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."
+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. "
+"Additionally, combat skills, which you use to hunt, are easier to learn and "
+"maintain."
+msgstr ""
+
+#. ~ Description for Deformed
+#: lang/json/mutation_from_json.py
+msgid ""
+"You're minorly deformed. Some people will react badly to your appearance."
+msgstr ""
+
+#. ~ Description for Albino
+#: 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 "
+"sun."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Forest Guardian"
+msgstr ""
+
+#. ~ Description for Forest Guardian
+#: lang/json/mutation_from_json.py
+msgid ""
+"The forests have longed for your help, and this last cry shook the world."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Nature's Boon"
+msgstr ""
+
+#. ~ Description for Nature's Boon
+#: lang/json/mutation_from_json.py
+msgid ""
+"Your very prescence is masked by nature itself. You are slightly harder to "
+"detect."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Slashers"
+msgstr ""
+
+#. ~ Description for Slashers
+#: lang/json/mutation_from_json.py
+msgid ""
+"Your torso has an extra set of appendages that have burst out of your back, "
+"they are tipped with massive bone blades at the end, and look like they can "
+"do some serious damage with the thick acid that they secrete."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+#, no-python-format
+msgid "You tear into %s with your blades"
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+#, no-python-format
+msgid "%1$s tears into %2$s with their blades"
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Künstler"
+msgstr ""
+
+#. ~ Description for Künstler
+#: lang/json/mutation_from_json.py
+msgid ""
+"You have lingering memories of training to fight cyborgs and war machines in "
+"zero gravity using the obscure Panzer Kunst."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Magus"
+msgstr ""
+
+#. ~ Description for Magus
+#: lang/json/mutation_from_json.py
+msgid ""
+"A tradition as old as magic, the magus focuses on binding and shaping the "
+"energy of the universe to their will."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Animist"
+msgstr ""
+
+#. ~ Description for Animist
+#: lang/json/mutation_from_json.py
+msgid ""
+"The animist tradition is a relatively new school of magical thought, formed "
+"through combination of many older ways that focus on harmony and connection "
+"to the natural world. This does not mean that animists are passive: the "
+"natural world is a savage place."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Kelvinist"
+msgstr ""
+
+#. ~ Description for Kelvinist
+#: lang/json/mutation_from_json.py
+msgid ""
+"Disciples of the great Archwizard Lord Kelvin. Kelvinists focus their magic "
+"on manipulation and control of the temperature of their environment, leading "
+"to spectacularly powerful explosions or bone-chilling cold."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Stormshaper"
+msgstr ""
+
+#. ~ Description for Stormshaper
+#: lang/json/mutation_from_json.py
+msgid ""
+"Stormshapers follow ancient arcane disciplines of meditation and harmony "
+"with the winds and tides that shape the planet. Through their deep "
+"connection to these forces, they can request powerful changes."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Technomancer"
+msgstr ""
+
+#. ~ Description for Technomancer
+#: lang/json/mutation_from_json.py
+msgid ""
+"Technomancers are the new breed of modern magician, blending their arcane "
+"might with their advanced knowledge of the fundamental nature of the "
+"universe. They use technology to enhance their magic and vice versa."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Earthshaper"
+msgstr ""
+
+#. ~ Description for Earthshaper
+#: lang/json/mutation_from_json.py
+msgid ""
+"Earthshapers have allowed their minds to sink deep within the stones and "
+"metals of the planet, and become one with its secrets. To a master "
+"Earthshaper, spells can be as permanent as the stones they are created from, "
+"and time is measured in geological eras."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Biomancer"
+msgstr ""
+
+#. ~ Description for Biomancer
+#: lang/json/mutation_from_json.py
+msgid ""
+"The Biomancer focuses on manipulating and even absorbing flesh; their own, "
+"and that of other living or dead things. Most other wizards find their "
+"powers gross and disturbing, but no one can question the potency of their "
+"abilities, and certainly not their adaptability to any situation."
+msgstr ""
+
+#: lang/json/mutation_from_json.py
+msgid "Druid"
+msgstr ""
+
+#. ~ Description for Druid
+#: lang/json/mutation_from_json.py
+msgid ""
+"Druids follow a wild tradition of allegiance and rebirth within the world of "
+"nature, especially the cycle of death and rebirth that is the plant world. "
+"A powerful druid is as much a part of that world as the human one."
msgstr ""
#. ~ Description for Melee Weapon Training
@@ -92751,18 +97525,13 @@ msgid "I'm helping you test the game."
msgstr ""
#: lang/json/npc_class_from_json.py
-#: lang/json/npc_from_json.py
-msgid "Merchant"
+msgid "Shopkeep"
msgstr ""
#: lang/json/npc_class_from_json.py
msgid "I'm a local shopkeeper."
msgstr ""
-#: lang/json/npc_class_from_json.py
-msgid "Shopkeep"
-msgstr ""
-
#: lang/json/npc_class_from_json.py
msgid "Hacker"
msgstr ""
@@ -92804,6 +97573,14 @@ msgstr ""
msgid "Just looking for some wrongs to right."
msgstr ""
+#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py
+msgid "Marloss Voice"
+msgstr ""
+
+#: lang/json/npc_class_from_json.py
+msgid "I spread the Hymns so that peace and unity return to our world."
+msgstr ""
+
#: lang/json/npc_class_from_json.py
msgid "Scientist"
msgstr ""
@@ -92904,6 +97681,16 @@ msgstr ""
msgid "Beggar"
msgstr ""
+#: lang/json/npc_class_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
+msgid "Merchant"
+msgstr ""
+
#: lang/json/npc_class_from_json.py
msgid "Mercenary"
msgstr ""
@@ -92912,9 +97699,12 @@ msgstr ""
msgid "Fighting for the all-mighty dollar."
msgstr ""
+#: lang/json/npc_class_from_json.py lang/json/terrain_from_json.py
+msgid "intercom"
+msgstr ""
+
#: lang/json/npc_class_from_json.py
-#: lang/json/npc_from_json.py
-msgid "Refugee"
+msgid "Reading this line is a bug"
msgstr ""
#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py
@@ -93153,175 +97943,179 @@ msgid "Tester"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Representative"
+msgid "CPT"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "CPT"
+msgid "SFC"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "SFC"
+msgid "Bandit"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Broker"
+msgid "Psycho"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Guard"
+msgid "chef"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Foreman"
+msgid "officer"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Carpenter"
+msgid "beggar"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Lumberjack"
+msgid "Reena Sandhu"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Woodworker"
+msgid "Dino Dave"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Crop Overseer"
+msgid "Luo Meizhen"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Farmer"
+msgid "Brandon Garder"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Laborer"
+msgid "Yusuke Taylor"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Nurse"
+msgid "refugee"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Scrapper"
+msgid "Aleesha Seward"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Scavenger Boss"
+msgid "Alonso Lautrec"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Barber"
+msgid "Boris Borichenko"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Merc"
+msgid "Dana Nunez"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Makayla Sanchez"
+msgid "Draco Dune"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Bandit"
+msgid "Garry Villeneuve"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Psycho"
+msgid "Guneet Singh"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "beggar"
+msgid "Jenny Forcette"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Reena Sandhu"
+msgid "John Clemens"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Dino Dave"
+msgid "Mandeep Singh"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Luo Meizhen"
+msgid "Mangalpreet Singh"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Brandon Garder"
+msgid "Pablo Nunez"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Yusuke Taylor"
+msgid "Stan Borichenko"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "chef"
+msgid "Vanessa Toby"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "officer"
+msgid "Broker"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "refugee"
+msgid "Guard"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Aleesha Seward"
+msgid "Makayla Sanchez"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Alonso Lautrec"
+msgid "Representative"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Boris Borichenko"
+msgid "Merc"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Dana Nunez"
+msgid "the intercom"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Draco Dune"
+msgid "Barber"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Garry Villeneuve"
+msgid "Carpenter"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Guneet Singh"
+msgid "Crop Overseer"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Jenny Forcette"
+msgid "Farmer"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "John Clemens"
+msgid "Foreman"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Mandeep Singh"
+msgid "Nurse"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Mangalpreet Singh"
+msgid "Scavenger Boss"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Pablo Nunez"
+msgid "Scrapper"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Stan Borichenko"
+msgid "Laborer"
msgstr ""
#: lang/json/npc_from_json.py
-msgid "Vanessa Toby"
+msgid "Lumberjack"
+msgstr ""
+
+#: lang/json/npc_from_json.py
+msgid "Woodworker"
msgstr ""
#: lang/json/npc_from_json.py
@@ -93695,6 +98489,14 @@ msgstr ""
msgid "garage"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "boat rental"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "riverside dwelling"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "forest"
msgstr ""
@@ -93995,6 +98797,50 @@ msgstr ""
msgid "tree farm"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "carriage house"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "carriage house roof"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "horse stable"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "horse stable hayloft"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "horse stable roof"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "green house"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "green house roof"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "chicken coop"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "chicken coop roof"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "farm house 2nd floor"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "farm house roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "gas station"
msgstr ""
@@ -94073,6 +98919,10 @@ msgstr ""
msgid "clothing store"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "clothing store roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "bookstore"
msgstr ""
@@ -94329,6 +99179,10 @@ msgstr ""
msgid "sex shop"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "sex shop roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "internet cafe"
msgstr ""
@@ -94357,6 +99211,10 @@ msgstr ""
msgid "tire shop"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "tire shop roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "Head Shop"
msgstr ""
@@ -94975,10 +99833,26 @@ msgstr ""
msgid "silo"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "silo cap"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "barn roof"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "garage roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "ranch"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "ranch roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "pool"
msgstr ""
@@ -95167,10 +100041,19 @@ msgstr ""
msgid "private park"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "private park roof"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "public art piece"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+#: lang/json/terrain_from_json.py
+msgid "dock"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "duplex"
msgstr ""
@@ -95207,6 +100090,14 @@ msgstr ""
msgid "river bank"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "hub 01"
+msgstr ""
+
+#: lang/json/overmap_terrain_from_json.py
+msgid "hub 01 parking space"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "highway"
msgstr ""
@@ -95403,18 +100294,6 @@ msgstr ""
msgid "town hall"
msgstr ""
-#: lang/json/overmap_terrain_from_json.py
-msgid "Bankrupt Pizzeria"
-msgstr ""
-
-#: lang/json/overmap_terrain_from_json.py
-msgid "boat rental"
-msgstr ""
-
-#: lang/json/overmap_terrain_from_json.py
-msgid "riverside dwelling"
-msgstr ""
-
#: lang/json/overmap_terrain_from_json.py
msgid "municipal reactor"
msgstr ""
@@ -95435,6 +100314,10 @@ msgstr ""
msgid "reactor room"
msgstr ""
+#: lang/json/overmap_terrain_from_json.py
+msgid "Bankrupt Pizzeria"
+msgstr ""
+
#: lang/json/overmap_terrain_from_json.py
msgid "wildlife field office"
msgstr ""
@@ -96454,6 +101337,34 @@ msgid ""
"next hit."
msgstr ""
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "K9 Officer"
+msgstr ""
+
+#. ~ Profession (male K9 Officer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You spent your career busting drug smugglers with your faithful canine "
+"companion. Now the world has ended and none of that matters anymore. But "
+"at least you have a loyal friend."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "K9 Officer"
+msgstr ""
+
+#. ~ Profession (female K9 Officer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You spent your career busting drug smugglers with your faithful canine "
+"companion. Now the world has ended and none of that matters anymore. But "
+"at least you have a loyal friend."
+msgstr ""
+
#: lang/json/professions_from_json.py
msgctxt "profession_male"
msgid "Police Officer"
@@ -99894,6 +104805,512 @@ msgid ""
"cash card."
msgstr ""
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T ROTC Member"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T ROTC Member) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were training ahead of time to become a C.R.I.T officer in the upcoming "
+"war. Your call to arms arrived dead on arrival and already plastered in the "
+"all-too vibrant gore of your squadmates. In the midst of panic, you snatched "
+"up what you could and bugged out before you joined the still-moving remnants "
+"of your friends. Now it's up to your wits and years of training to keep you "
+"alive in this Cataclysm."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T ROTC Member"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T ROTC Member) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were training ahead of time to become a C.R.I.T officer in the upcoming "
+"war. Your call to arms arrived dead on arrival and already plastered in the "
+"all-too vibrant gore of your squadmates. In the midst of panic, you snatched "
+"up what you could and bugged out before you joined the still-moving remnants "
+"of your friends. Now it's up to your wits and years of training to keep you "
+"alive in this Cataclysm."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Janitor"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Janitor) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"*Sigh* Your life has been a wreck. Hopping place to place you finally found "
+"a job at C.R.I.T... as a janitor of sorts. The pay was good and you at least "
+"got to see some pretty cool stuff. After all non essential personel were "
+"purged (as in you, because you merely cleaned stuff or were the errand boy "
+"and were not privy to anything remotely important) you found yourself stuck "
+"with nothing but the uniform they gave you and your equipment."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Janitor"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Janitor) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"*Sigh* Your life has been a wreck. Hopping place to place you finally found "
+"a job at C.R.I.T... as a janitor of sorts. The pay was good and you at least "
+"got to see some pretty cool stuff. After all non essential personel were "
+"purged (as in you, because you merely cleaned stuff or were the errand boy "
+"and were not privy to anything remotely important) you found yourself stuck "
+"with nothing but the uniform they gave you and your equipment."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T NCO"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T NCO) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were a senior NCO, relaying orders to your squad was an everyday task. "
+"When the cataclysm struck, your expertise helped save everyone time and time "
+"again until it all fell to chaos."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T NCO"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T NCO) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were a senior NCO, relaying orders to your squad was an everyday task. "
+"When the cataclysm struck, your expertise helped save everyone time and time "
+"again until it all fell to chaos."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Grunt"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Grunt) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were part of the infantry; first to hit the ground running, clear a "
+"forward operating base for use and then come back to relax peacefully with "
+"your squadmates. Those days ended when the cataclysm reared its ugly head. "
+"The infected tore through your lines like wet paper when the otherworldy "
+"abominations arived. Now alone and fleeing, will you have what it takes to "
+"survive or is this hellish landcape just a macabre metaphor of death's row?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Grunt"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Grunt) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were part of the infantry; first to hit the ground running, clear a "
+"forward operating base for use and then come back to relax peacefully with "
+"your squadmates. Those days ended when the cataclysm reared its ugly head. "
+"The infected tore through your lines like wet paper when the otherworldy "
+"abominations arived. Now alone and fleeing, will you have what it takes to "
+"survive or is this hellish landcape just a macabre metaphor of death's row?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Combat Medic"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Combat Medic) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were a combat medic taught how to engage an anomaly. However, your main "
+"focus was the burden that was keeping your squadmates in one piece. For "
+"weeks, you crossed through hell and back to ensure this true mission was "
+"fufilled. During a one-sided firefight between the undead and the rogue ai "
+"that has now run rampant through government robots, you were singled out and "
+"overtaken. Forced to flee without your comrades in tow, will you have what "
+"it takes to survive or will your unforgivable sin come back to haunt you?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Combat Medic"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Combat Medic) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were a combat medic taught how to engage an anomaly. However, your main "
+"focus was the burden that was keeping your squadmates in one piece. For "
+"weeks, you crossed through hell and back to ensure this true mission was "
+"fufilled. During a one-sided firefight between the undead and the rogue ai "
+"that has now run rampant through government robots, you were singled out and "
+"overtaken. Forced to flee without your comrades in tow, will you have what "
+"it takes to survive or will your unforgivable sin come back to haunt you?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Automatic Rifleman"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Automatic Rifleman) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were assigned the billet of specializing in creating dead zones and "
+"providing supressing fire. When the cataclysm struck, your trusty m240 "
+"couldn't keep the veritable tide of undead from overtaking your squad. Now "
+"alone and fleeing, will you have what it takes to survive or is this hellish "
+"landcape something you just can't suppress?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Automatic Rifleman"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Automatic Rifleman) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were assigned the billet of specializing in creating dead zones and "
+"providing supressing fire. When the cataclysm struck, your trusty m240 "
+"couldn't keep the veritable tide of undead from overtaking your squad. Now "
+"alone and fleeing, will you have what it takes to survive or is this hellish "
+"landcape something you just can't suppress?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Commanding Officer"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Commanding Officer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"As a top-ranking CO, you didn't see much in the way of combat other than "
+"when you felt like it. but your charisma and sharp intellect helped you "
+"climb up the ranks and provide support to allies in need. Now that "
+"everything went down the drain, will it help you again?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Commanding Officer"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Commanding Officer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"As a top-ranking CO, you didn't see much in the way of combat other than "
+"when you felt like it. but your charisma and sharp intellect helped you "
+"climb up the ranks and provide support to allies in need. Now that "
+"everything went down the drain, will it help you again?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Enforcer"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Enforcer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"STR 12 recommended. You were a guard granted the authority of a U.S Marshal. "
+"Others ribbed at you and joked about you being nothing more than a mall cop "
+"with a fancy badge. Knowingly, you laughed it off as they were merely "
+"jealous of what you could do and have been doing undercover as your double "
+"stood in at base. While you mainly spent time at base, you honed your skills "
+"and got special implants to do your job easier at the low low cost of "
+"serving as a \"guard\" forever. Time to do your job, albeit mission "
+"parameters look like they've expanded quite a bit."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Enforcer"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Enforcer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"STR 12 recommended. You were a guard granted the authority of a U.S Marshal. "
+"Others ribbed at you and joked about you being nothing more than a mall cop "
+"with a fancy badge. Knowingly, you laughed it off as they were merely "
+"jealous of what you could do and have been doing undercover as your double "
+"stood in at base. While you mainly spent time at base, you honed your skills "
+"and got special implants to do your job easier at the low low cost of "
+"serving as a \"guard\" forever. Time to do your job, albeit mission "
+"parameters look like they've expanded quite a bit."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Lone Wolf"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Lone Wolf) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"STR 14 recommended. You are fully armored badass granted the full authority "
+"of a U.S Marshal. Sent in as the one man army capable of handling anything, "
+"you stalked into a warzone and laid out entire battalions by yourself, be it "
+"through cunning strategy or brute force. Time to hang them all."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Lone Wolf"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Lone Wolf) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"STR 14 recommended. You are fully armored badass granted the full authority "
+"of a U.S Marshal. Sent in as the one man army capable of handling anything, "
+"you stalked into a warzone and laid out entire battalions by yourself, be it "
+"through cunning strategy or brute force. Time to hang them all."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Spec Ops"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Spec Ops) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"STR 10 recommended. You were an elite member of the Catastrophe Response/"
+"Research & Investigation Team. A looming spectre which responded to secular "
+"threats which allowed your faction to leap decades in front of other world "
+"powers. Your squad was the first to be deployed into the New England region, "
+"ground zero, to contain the impending outbreak and gain information to relay "
+"back to command. Good luck soldier."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Spec Ops"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Spec Ops) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"STR 10 recommended. You were an elite member of the Catastrophe Response/"
+"Research & Investigation Team. A looming spectre which responded to secular "
+"threats which allowed your faction to leap decades in front of other world "
+"powers. Your squad was the first to be deployed into the New England region, "
+"ground zero, to contain the impending outbreak and gain information to relay "
+"back to command. Good luck soldier."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Survivalist"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Survivalist) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were an elite recon of the C.R.I.T. You were hailed as a top survivalist "
+"after being stuck for weeks behind enemy lines and having to survive with "
+"nothing but some rocks, sticks and plants. However, after a few too many "
+"drinks (20) at the local bar and getting into a fight (knocking them out) "
+"with one of your commanding officers during a drunken bout you were stripped "
+"of your rank and sent off into the forests with your current gear to run a "
+"trial by survival. After an hour of scouting about in the forest for a good "
+"shelter, your radio rang and you were briefed over the fact that the world "
+"was suddenly ending. Of course, no one has time to pick your sorry ass up, "
+"so cheers. Staying away from drinks might be a good idea; at least you got "
+"some real tools this time!"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Survivalist"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Survivalist) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were an elite recon of the C.R.I.T. You were hailed as a top survivalist "
+"after being stuck for weeks behind enemy lines and having to survive with "
+"nothing but some rocks, sticks and plants. However, after a few too many "
+"drinks (20) at the local bar and getting into a fight (knocking them out) "
+"with one of your commanding officers during a drunken bout you were stripped "
+"of your rank and sent off into the forests with your current gear to run a "
+"trial by survival. After an hour of scouting about in the forest for a good "
+"shelter, your radio rang and you were briefed over the fact that the world "
+"was suddenly ending. Of course, no one has time to pick your sorry ass up, "
+"so cheers. Staying away from drinks might be a good idea; at least you got "
+"some real tools this time!"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Recruit"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Recruit) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were scheduled for some survival training in New England when the "
+"Cataclysm broke out and your instructor never showed up for the next lesson. "
+"Now stuck in the quarantine zone with your standard issue training "
+"equipment, you wish you had a better gun. Looks like you'll definitely learn "
+"a thing or two about survival though!"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Recruit"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Recruit) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were scheduled for some survival training in New England when the "
+"Cataclysm broke out and your instructor never showed up for the next lesson. "
+"Now stuck in the quarantine zone with your standard issue training "
+"equipment, you wish you had a better gun. Looks like you'll definitely learn "
+"a thing or two about survival though!"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Employee"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Employee) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"Like many others, you had requested to join the C.R.I.T organization's admin-"
+"offices to escape from bitter memories and past traumas after valiantly "
+"protecting your comrades for years. After you completed the readjustment "
+"program, your skills may have rusted considerably since your last deployment "
+"to battle, but the drilled muscle memories have not worn away. As your "
+"comrades' screams once again ring in your ears and repressed memories of "
+"abhorrent nature resurface, can you find it within yourself to overcome the "
+"looming terror which paralyzes you?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Employee"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Employee) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"Like many others, you had requested to join the C.R.I.T organization's admin-"
+"offices to escape from bitter memories and past traumas after valiantly "
+"protecting your comrades for years. After you completed the readjustment "
+"program, your skills may have rusted considerably since your last deployment "
+"to battle, but the drilled muscle memories have not worn away. As your "
+"comrades' screams once again ring in your ears and repressed memories of "
+"abhorrent nature resurface, can you find it within yourself to overcome the "
+"looming terror which paralyzes you?"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Engineer"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Engineer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You were scheduled to fix the several of the lab facilities in New England "
+"and show other researchers the new weapons you were working on. When the "
+"Cataclysm broke out, it made it so testing was easier to do, but then again "
+"nothing seems to making that much sense. Time to bug-out!"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Engineer"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Engineer) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You were scheduled to fix the several of the lab facilities in New England "
+"and show other researchers the new weapons you were working on. When the "
+"Cataclysm broke out, it made it so testing was easier to do, but then again "
+"nothing seems to making that much sense. Time to bug-out!"
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "C.R.I.T Night Walker"
+msgstr ""
+
+#. ~ Profession (male C.R.I.T Night Walker) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"Your base in New England fell to the unholy onslaught of the Cataclysm. "
+"However, as a a top researcher in the R&D department, you had chosen to "
+"slowly mutate yourself into something more than human. Even if the concotion "
+"was less than perfect, your old flimsy body feels empowered. With the new "
+"flesh that is now your own, bare your fangs and fight until the next dawn."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "C.R.I.T Night Walker"
+msgstr ""
+
+#. ~ Profession (female C.R.I.T Night Walker) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"Your base in New England fell to the unholy onslaught of the Cataclysm. "
+"However, as a a top researcher in the R&D department, you had chosen to "
+"slowly mutate yourself into something more than human. Even if the concotion "
+"was less than perfect, your old flimsy body feels empowered. With the new "
+"flesh that is now your own, bare your fangs and fight until the next dawn."
+msgstr ""
+
#: lang/json/professions_from_json.py
msgctxt "profession_male"
msgid "Rookie"
@@ -99942,6 +105359,54 @@ msgctxt "prof_desc_female"
msgid "You're a merely competent survivor so far. Let's change that, yeah?"
msgstr ""
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "Battle Angel"
+msgstr ""
+
+#. ~ Profession (male Battle Angel) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid "A combat-ready cyborg once salvaged from an obscure junkyard..."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "Battle Angel"
+msgstr ""
+
+#. ~ Profession (female Battle Angel) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid "A combat-ready cyborg once salvaged from an obscure junkyard..."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_male"
+msgid "Would-be Wizard"
+msgstr ""
+
+#. ~ Profession (male Would-be Wizard) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_male"
+msgid ""
+"You found a pamphlet with bright colors claiming you can be a Wizard, oddly "
+"serene with the world falling down around you."
+msgstr ""
+
+#: lang/json/professions_from_json.py
+msgctxt "profession_female"
+msgid "Would-be Wizard"
+msgstr ""
+
+#. ~ Profession (female Would-be Wizard) description
+#: lang/json/professions_from_json.py
+msgctxt "prof_desc_female"
+msgid ""
+"You found a pamphlet with bright colors claiming you can be a Wizard, oddly "
+"serene with the world falling down around you."
+msgstr ""
+
#: lang/json/professions_from_json.py
msgctxt "profession_male"
msgid "Brave of the King"
@@ -101254,6 +106719,10 @@ msgstr ""
msgid "Stuff THE MAN doesn't want you to know"
msgstr ""
+#: lang/json/recipe_from_json.py
+msgid "We need to survey the base site first."
+msgstr ""
+
#: lang/json/recipe_from_json.py
msgid ""
"The first thing we are going to need is a command tent to manage and task "
@@ -101535,19 +107004,19 @@ msgid "Blacksmith Shop"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Meat, Cooked"
+msgid " Craft: Tinder"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Fish, Cooked"
+msgid " Cook: Meat, Cooked"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Veggy, Cooked"
+msgid " Cook: Fish, Cooked"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Offal, Cooked"
+msgid " Cook: Veggy, Cooked"
msgstr ""
#: lang/json/recipe_group_from_json.py
@@ -101599,43 +107068,43 @@ msgid " Cook: Cornmeal"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Meat Pie"
+msgid " Cook: Meat, Smoked"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Meat, Smoked"
+msgid " Cook: Fish, Smoked"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Veggy Pie"
+msgid " Cook: Mushroom, Dried"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Fish, Smoked"
+msgid " Cook: Fruit, Dehydrated"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Sugar"
+msgid " Cook: Sausage"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Mushroom, Dried"
+msgid " Cook: Sausage, Wasteland"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Fruit, Dehydrated"
+msgid " Cook: Meat Pie"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Sausage"
+msgid " Cook: Veggy Pie"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Hardtack"
+msgid " Cook: Sugar"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Cook: Sausage, Wasteland"
+msgid " Cook: Hardtack"
msgstr ""
#: lang/json/recipe_group_from_json.py
@@ -101703,23 +107172,27 @@ msgid " Craft: Steel, Chunk"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Craft: Knife, Copper"
+msgid " Craft: Crucible"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Craft: Sword, Crude"
+msgid " Craft: Anvil"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Craft: Pot, Copper"
+msgid " Craft: Steel, Lump"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Craft: Anvil"
+msgid " Craft: Knife, Copper"
msgstr ""
#: lang/json/recipe_group_from_json.py
-msgid " Craft: Steel, Lump"
+msgid " Craft: Sword, Crude"
+msgstr ""
+
+#: lang/json/recipe_group_from_json.py
+msgid " Craft: Pot, Copper"
msgstr ""
#: lang/json/recipe_group_from_json.py
@@ -102389,6 +107862,42 @@ msgctxt "start_name"
msgid "Prison"
msgstr ""
+#. ~ Name for scenario 'Challenge-Island Prison Break' for a male character
+#: lang/json/scenario_from_json.py
+msgctxt "scenario_male"
+msgid "Challenge-Island Prison Break"
+msgstr ""
+
+#. ~ Name for scenario 'Challenge-Island Prison Break' for a female character
+#: lang/json/scenario_from_json.py
+msgctxt "scenario_female"
+msgid "Challenge-Island Prison Break"
+msgstr ""
+
+#. ~ Description for scenario 'Challenge-Island Prison Break' for a male character.
+#: lang/json/scenario_from_json.py
+msgctxt "scen_desc_male"
+msgid ""
+"You were delivered to some high-security prison right before the Cataclysm. "
+"You almost managed to escape the walls of a prison... Too bad it's located "
+"on a remote island, and now you need to find out how to escape it too."
+msgstr ""
+
+#. ~ Description for scenario 'Challenge-Island Prison Break' for a female character.
+#: lang/json/scenario_from_json.py
+msgctxt "scen_desc_female"
+msgid ""
+"You were delivered to some high-security prison right before the Cataclysm. "
+"You almost managed to escape the walls of a prison... Too bad it's located "
+"on a remote island, and now you need to find out how to escape it too."
+msgstr ""
+
+#. ~ Starting location for scenario 'Challenge-Island Prison Break'.
+#: lang/json/scenario_from_json.py
+msgctxt "start_name"
+msgid "Island prison"
+msgstr ""
+
#. ~ Name for scenario 'Experiment' for a male character
#: lang/json/scenario_from_json.py
msgctxt "scenario_male"
@@ -102865,6 +108374,44 @@ msgctxt "start_name"
msgid "Camping"
msgstr ""
+#. ~ Name for scenario 'Apartment Rooftop' for a male character
+#: lang/json/scenario_from_json.py
+msgctxt "scenario_male"
+msgid "Apartment Rooftop"
+msgstr ""
+
+#. ~ Name for scenario 'Apartment Rooftop' for a female character
+#: lang/json/scenario_from_json.py
+msgctxt "scenario_female"
+msgid "Apartment Rooftop"
+msgstr ""
+
+#. ~ Description for scenario 'Apartment Rooftop' for a male character.
+#: lang/json/scenario_from_json.py
+msgctxt "scen_desc_male"
+msgid ""
+"Seeking safety and rescue amidst the chaos you rushed to the rooftop of an "
+"apartment building. The passing helicopters are long gone and the screams "
+"echoing in the distance have faded. Now you’re left alone with the undead "
+"closing in."
+msgstr ""
+
+#. ~ Description for scenario 'Apartment Rooftop' for a female character.
+#: lang/json/scenario_from_json.py
+msgctxt "scen_desc_female"
+msgid ""
+"Seeking safety and rescue amidst the chaos you rushed to the rooftop of an "
+"apartment building. The passing helicopters are long gone and the screams "
+"echoing in the distance have faded. Now you’re left alone with the undead "
+"closing in."
+msgstr ""
+
+#. ~ Starting location for scenario 'Apartment Rooftop'.
+#: lang/json/scenario_from_json.py
+msgctxt "start_name"
+msgid "Apartment Rooftop"
+msgstr ""
+
#. ~ Name for scenario 'Scavenger' for a male character
#: lang/json/scenario_from_json.py
msgctxt "scenario_male"
@@ -103404,6 +108951,18 @@ msgstr ""
msgid "weapon"
msgstr ""
+#: lang/json/skill_from_json.py
+msgid "spellcraft"
+msgstr ""
+
+#. ~ Description for spellcraft
+#: lang/json/skill_from_json.py
+msgid ""
+"Your skill in the arcane. Represents magic theory and all that entails. A "
+"higher skill increases how quickly you can learn spells, and decreases their "
+"spell failure chance. You learn this skill by studying books or spells."
+msgstr ""
+
#: lang/json/snippet_from_json.py
msgid "Fires can spread easily, especially with abundance of fuel."
msgstr ""
@@ -109932,6 +115491,43 @@ msgstr ""
msgid "Thanks, !"
msgstr ""
+#: lang/json/snippet_from_json.py
+msgid "Hey! I saw you take that ! Drop it. Now."
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid "You best be dropping what you just picked up right now ."
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid "I've got eyes, you thief!"
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid "Hey! That belongs to us! Drop it."
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid ", I've seen a thief!"
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid "I saw that! Drop what you just stole!"
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid "Thieves will not last long around me , please drop that."
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid ""
+"Consider this a warning , thieves will not be tolerated, drop it."
+msgstr ""
+
+#: lang/json/snippet_from_json.py
+msgid "You think I'm blind ? Don't touch our stuff."
+msgstr ""
+
#: lang/json/snippet_from_json.py
msgid "content"
msgstr ""
@@ -112916,13 +118512,93 @@ msgid "a static hissing sound."
msgstr ""
#: lang/json/speech_from_json.py
-msgid "That creepy abandoned post-apocalyptic lab complex looks safe..."
+msgid "\"That creepy abandoned post-apocalyptic lab complex looks safe...\""
msgstr ""
#: lang/json/speech_from_json.py
msgid ""
-"Don't worry, it isn't like anything could teleport out of the containment "
-"cells."
+"\"Don't worry, it isn't like anything could teleport out of the containment "
+"cells.\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"Burning... from the inside...\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"This smell... Don't know...\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "heavy breathing."
+msgstr ""
+
+#: lang/json/speech_from_json.py src/game.cpp src/grab.cpp
+msgid "a scraping noise."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"No... Stop the burning!\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"Hrgm... Blood... Hungry...\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"Hunger... Must eat...\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"Run... Chase... Eat...\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "hysterical laughing."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "coughing."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "growling."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "wheezing."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"WHY THE FUCK are you doing this to me?\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"LEAVE! NOW!\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"I TOLD YOU TO GET OUT OF HERE!\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"WHAT THE FUCK DO YOU WANT FROM ME?!\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"STOP!\""
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "indistinct shouting."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "screaming."
+msgstr ""
+
+#: lang/json/speech_from_json.py
+msgid "\"MEAT!\""
msgstr ""
#: lang/json/speech_from_json.py
@@ -112998,7 +118674,7 @@ msgid "\"I have done what you asked. Please let me go!\""
msgstr ""
#: lang/json/speech_from_json.py
-msgid "Screems of pain."
+msgid "screams of pain."
msgstr ""
#: lang/json/speech_from_json.py
@@ -114432,6 +120108,10 @@ msgstr ""
msgid "Prison"
msgstr ""
+#: lang/json/start_location_from_json.py
+msgid "Island prison"
+msgstr ""
+
#: lang/json/start_location_from_json.py
msgid "Hermit Shack"
msgstr ""
@@ -114468,6 +120148,10 @@ msgstr ""
msgid "Golf course clubhouse"
msgstr ""
+#: lang/json/start_location_from_json.py
+msgid "Apartment Rooftop"
+msgstr ""
+
#: lang/json/start_location_from_json.py
msgid "Scavenger Bunker"
msgstr ""
@@ -114835,139 +120519,6 @@ msgstr ""
msgid "Thanks. I have some things for you to do."
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 "Hi there, ."
msgstr ""
@@ -114978,6 +120529,10 @@ msgid ""
"anymore..."
msgstr ""
+#: lang/json/talk_topic_from_json.py
+msgid "What are you doing here?"
+msgstr ""
+
#: lang/json/talk_topic_from_json.py
msgid "Wanna get outta here?"
msgstr ""
@@ -115157,8 +120712,10 @@ msgid "Change your bionic power recharge rules..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-#: src/activity_handlers.cpp src/crafting.cpp src/game.cpp
+#: src/activity_handlers.cpp src/avatar.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/handle_liquid.cpp
#: src/handle_liquid.cpp src/iexamine.cpp
@@ -115169,7 +120726,7 @@ msgstr ""
#: src/iuse_actor.cpp
#: src/monexamine.cpp src/pickup.cpp
#: src/player.cpp
-#: src/player.cpp src/veh_interact.cpp
+#: src/veh_interact.cpp
msgid "Never mind."
msgstr ""
@@ -115668,6 +121225,10 @@ msgstr ""
msgid "I can't leave the shelter without equipment."
msgstr ""
+#: lang/json/talk_topic_from_json.py
+msgid "Well, bye."
+msgstr ""
+
#: lang/json/talk_topic_from_json.py
msgid "I don't know, look for supplies and other survivors I guess."
msgstr ""
@@ -115930,6 +121491,50 @@ msgstr ""
msgid "Thanks, see you later!"
msgstr ""
+#: lang/json/talk_topic_from_json.py
+msgid "You picked up something that does not belong to you..."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Okay, okay, this is all a misunderstanding. Sorry, I'll drop it now."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "No, I'm keeping it. Try and take it off me, I dare you."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Look, I really need this. Please let me have it."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "What, this? It's not the same one, you are mistaken."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "I'm sorry. Look, I already dropped it, okay?"
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Don't try and talk yourself out of this, drop it now."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Okay, I'm dropping it..."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Just this once, you can keep it. Don't tell anyone else."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Right... I don't want any trouble."
+msgstr ""
+
+#: lang/json/talk_topic_from_json.py
+msgid "Smart choice."
+msgstr ""
+
#: lang/json/talk_topic_from_json.py
msgid ", and if you ask again, !"
msgstr ""
@@ -116080,5956 +121685,6669 @@ msgid "Suit yourself."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hello marshal."
-msgstr ""
-
-#: lang/json/talk_topic_from_json.py
-msgid "What is this place?"
+msgid "What about faction camps?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Can I join you guys?"
+msgid "Tell me how faction camps work."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Anything I can do for you?"
+msgid "Tell me how faction camps have changed."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "See you later."
+msgid "I want you to build a camp here."
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 "Nothing. Let's talk about something else."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "So are you with the government or something?"
+msgid "Never mind, let's talk about other things you can do"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What do you trade?"
+msgid "Nothing. Lets' get back to work."
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."
+"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 "Oh, okay. I'll go look for him"
+msgid "Go on."
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."
+msgid "Never mind, let's go back to talking about camps."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'll go talk to them later."
+msgid "Never mind, let's talk about other things you can do."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Will do, thanks!"
+msgid "Never mind, let's talk about something else."
msgstr ""
#: lang/json/talk_topic_from_json.py
-#: src/npctalk.cpp
-msgid "Nope."
+msgid "Forget it. Let's go."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "That's pretty blunt!"
+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 "Death is pretty blunt."
+msgid "Wait, repeat what you said."
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 ""
+"Each faction camp has a bulletin board associated with it. You can "
+"'e'xamine the bulletin board to get a list of tasks that can be done and "
+"that are currently complete at the camp. You can select a task and choose "
+"an allied NPC to perform the task. \n"
+"The task list shows tasks for the central camp. If you have expansions, you "
+"can hit 'TAB' to move between the central camp and each expansion and see "
+"the tasks for the expansions. \n"
+"If you have a two way radio, you can use it to assign tasks remotely to any "
+"friendly NPC who also has a two way radio."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I don't like your attitude."
+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. You need a "
+"friendly NPC to perform tasks at the camp."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Well alright then."
+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]"
+"color> 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 "Then leave, you have two feet."
+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 "I think I'd rather rearrange your face instead!"
+msgid "Thanks, let's go back to talking about camps."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I will."
+msgid ""
+"\n"
+"1. Faction camps used to require a second NPC to act as overseer and camp "
+"manager, but that's been replaced by the bulletin board and two-way radio.\n"
+"2. It used to be impossible to upgrade faction camps if there was a "
+"vehicle, even a cart, on the same map. You can now upgrade camps even if "
+"there is a vehicle on the map, as long as the upgrade doesn't change the "
+"area under the vehicle.\n"
+"3. Faction camps used to upgrade by completely redrawing the map. Damage "
+"to the camp would be replaced when the camp was upgraded. Now upgrades only "
+"change the actual area being upgraded, and you will have to repair damage to "
+"the camp yourself.\n"
+"4. There used to be a single path for upgrading the main camp. Now, after "
+"you have completed the first tent, you will have many options for your next "
+"upgrade, and you can have different companions working on different upgrades "
+"of the main camp at the same time."
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"Depends on what you want. Go talk to a merchant if you have anything to "
-"sell. Otherwise the Old Guard liaison might have something, if you can find "
-"him. But if you're just looking for someone to put a good word in, I might "
-"have something for you."
+"Hey boss. I was thinking, you don't really need me sitting in this tent and "
+"not really contributing to the camp. it's a cushy job, but I could do more. "
+"We could put up a bulletin board and you could write up what you want done "
+"there. What do you say?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Alright then."
+msgid "What needs to be done?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "A good word might be helpful. What do you need?"
+msgid "Yes, set up the bulletin board and then go back to normal duties."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Old Guard huh, I'll go talk to him!"
+msgid ""
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Who are the Old Guard?"
+msgid "Mind if we just chat for a bit?"
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."
+"Are you sure? This doesn't seem like a particularly safe place for small "
+"talk..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Whatever, I had another question."
+msgid "It's fine, we've got a moment."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Okay, I'll go look for him then."
+msgid "Good point, let's find a more appropriate place."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"Stay safe out there. Hate to have to kill you after you've already died."
+msgid "You're right. Forget I said anything, let's get moving."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hello."
+msgid "What did you want to talk about?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I am actually new."
+msgid "Actually, never mind."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Are there any rules I should follow while inside?"
+msgid "Yes, friend?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "So who is everyone around here?"
+msgid "Your travels be fruitful, friend."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Lets trade!"
+msgid "May you find your peace, traveler."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Is there anything I can do to help?"
+msgid "We might have lost everything, but hope remains."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Thanks! I will be on my way."
+msgid "May the earth flourish beneath our paths."
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."
+msgid "Unity of spirit, of mind, and body..."
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."
+msgid "Look for the bonds which define you, and act in accord."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Ok, thanks."
+msgid ""
+"I don't know what kind of heresy you are spreading, but I'm putting an end "
+"to it!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "So uhhh, why not?"
+msgid "This place is dangerous, what are you doing here?"
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."
+msgid "Who are you?"
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."
+"Dangerous? It may look different, but this land cares and provides for us. "
+"We are celebrating with a feast, in fact. Do you care to join us?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Thanks for the heads-up."
+msgid "Well, sure."
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."
+msgid "I'd... rather not."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Keep to yourself and you won't find any problems."
+msgid "I'm sorry... I have places to be."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What do you do around here?"
+msgid ""
+"I'm a priest or guide of a sort. I sing the hymns along my companions so "
+"that we may learn to live in unity, both with each other and with our ailing "
+"world."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Got tips for avoiding trouble?"
+msgid "Alright."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Have you seen anyone who might be hiding something?"
+msgid "Can I join you?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Bye..."
+msgid "Understood. Can I join you?"
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."
+msgid "Well, I gotta go."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Keep your head down and stay out of my way."
+msgid "Oh, but you already have."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "OK..."
+msgid "Yes... yes I have."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Like what?"
+msgid "Join us then, eat from this meal with us."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm not sure..."
+msgid "[Take marloss berry] Thank you."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Like they could be working for someone else?"
+msgid "I have changed my mind, thank you."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You're new here, who the hell put you up to this crap?"
+msgid "I'm joining no stinking cult! Take your berry and shove it!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Get bent, traitor!"
+msgid "About the mission..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Got something to hide?"
+msgid "About one of those missions..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Sorry, I didn't mean to offend you..."
+msgid "Hello, marshal."
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."
+msgid "Marshal, I'm afraid I can't talk now."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Sorry."
+msgid "I'm not in charge here, marshal."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "That's it, you're dead!"
+msgid "I'm supposed to direct all questions to my leadership, marshal."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I didn't mean it!"
+msgid "Hey, citizen... I'm not sure you belong here."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You must really have a death wish!"
+msgid "You should mind your own business, nothing to see here."
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."
+msgid "If you need something you'll need to talk to someone else."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I thought I smelled a pig. I jest... please don't arrest me."
+msgid "Sir."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Huh, thought I smelled someone new. Can I help you?"
+msgid "Dude, if you can hold your own you should look into enlisting."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You... smelled me?"
+msgid "Ma'am"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Got anything for sale?"
+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 "Got any survival advice?"
+msgid "Don't mind me..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Goodbye."
+msgid "Marshal, I hope you're here to assist us."
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."
+"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 "O..kay..?"
+msgid ""
+"Ma'am, I don't know how the hell you got down here but if you have any sense "
+"you'll get out while you can."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"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."
+msgid "What are you doing down here?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Interesting."
+msgid "Can you tell me about this facility?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Oh, so you hunt?"
+msgid "What do you need done?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Not really, just trying to lead my life."
+msgid "I've got to go..."
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!"
+"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 "Great, now my mouth is watering..."
+msgid "Seems like a decent plan..."
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'."
+"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 ""
#: 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."
+msgid "Whatever they did it must have worked since we are still alive..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Spot your prey before something nastier spots you."
+msgid "Marshal, I'm rather surprised to see you here."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I've heard that cougars sometimes leap. Maybe it's just a myth."
+msgid "Sir you are not authorized to be here... you should leave."
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 "Ma'am you are not authorized to be here... you should leave."
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 "[MISSION] The captain sent me to get a frequency list from you."
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 "Do you need any help?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Smoke crack to get more shit done."
+msgid "I should be going"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Watch your back out there."
+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 "Welcome marshal..."
+msgid "I'll try and find your commander then..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Welcome..."
+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 "I'm actually new..."
+msgid "Hey, I didn't expect to live long enough to see another living human!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Can I do anything for the center?"
+msgid "I've been here since shit went down. Just my luck I had to work."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I figured you might be looking for some help..."
+msgid "How are you alive?"
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."
+msgid "What did you do before the cataclysm?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "No rest for the weary..."
+msgid ""
+"Well, the dishwasher made a break for it three days after things got weird. "
+"He was ripped to shreds before he made it to the street. I figure this "
+"place has gotta be safer than my apartment, and at least I've got all this "
+"food here."
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"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."
+"I... um... hid. I was in the kitchen, preparing another masterpiece when I "
+"heard glass shattering followed by screaming. I ran over to the serving "
+"window to see what happened, assuming a guest had fallen and broke "
+"something. What I witnessed was the most awful thing I've ever seen. I'm "
+"not even sure I could go over it again."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "It's just as bad out here, if not worse."
+msgid "What happened next?"
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."
-msgstr ""
-
-#: lang/json/talk_topic_from_json.py
-msgid "Guess shit's a mess everywhere..."
+"Some lunatic covered in a film of goo, black as oil, had fallen through one "
+"of the large glass windows. There were glass shards stuck in its head and "
+"neck. I thought the poor guy, girl-thing-whatever was dead. People began "
+"to crowd around it, some were taking pictures."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"[INT 12] Wait, six buses and refugees... how many people do you still have "
-"crammed in here?"
+msgid "Horrible. Did you get any pictures yourself?"
msgstr ""
#: 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."
+"No! I figured the thing dead until it started writhing and spazzing out for "
+"a moment. Everyone jumped back, a few screamed, and one curious stranger "
+"stepped in closer, kneeling a little... it attacked him!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Guess it works for you..."
+msgid "What'd you do?"
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."
+"I ran to the back of the kitchen and hid as best I could. People outside "
+"were screaming and I could hear them running. Suddenly I heard more glass "
+"shatter and something skitter out of the restaurant. I waited a moment and "
+"then went and checked the dining area. Both the stranger and the thing were "
+"gone. People were running in the streets, some even had guns so I locked "
+"all the doors and blocked the windows with what I could and barricaded "
+"myself in here."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Thanks for the tip."
+msgid "Crazy, so you have been here ever since?"
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."
+"Yeah, it was awhile before it was quiet again. I heard all kinds of sounds: "
+"explosions, jets flying by, helicopters, screaming, and rapid gunfire. I "
+"swear I even heard what sounded like a freaking tank drive by at one time! "
+"I've been hiding here since."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Thanks, I'll keep an eye out."
+msgid ""
+"I've been a cook since forever, this wasn't the best joint, but management "
+"was cool."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm sorry, not a risk we are willing to take right now."
+msgid "This is a test conversation that shouldn't appear in the game."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Fine..."
+msgid "This is a basic test response."
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."
+msgid "This is a strength test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Fine... *coughupyourscough*"
+msgid "This is a dexterity test response."
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."
+msgid "This is an intelligence test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm sure I can do something to change your mind *wink*"
+msgid "This is a perception test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I can pull my own weight!"
+msgid "This is a low strength test response."
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 "This is a low dexterity test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "[STR 11] I punch things in face real good!"
+msgid "This is a low intelligence test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I guess I'll look somewhere else..."
+msgid "This is a low perception test response."
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 "This is a trait test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hordes?"
+msgid "This is a short trait test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Heard of anything better than the odd gun cache?"
+msgid "This is a wearing test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Was hoping for something more..."
+msgid "This is a npc trait test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What about faction camps?"
+msgid "This is a npc short trait test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Tell me how faction camps work."
+msgid "This is a trait flags test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Tell me how faction camps have changed."
+msgid "This is a npc trait flags test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I want you to build a camp here."
+msgid "This is an npc effect test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Nothing. Let's talk about something else."
+msgid "This is a player effect test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Never mind, let's talk about other things you can do"
+msgid "This is a cash test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Nothing. Lets' get back to work."
+msgid "This is an npc service test response."
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 "This is an npc available test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Go on."
+msgid "This is a om_location_field test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Never mind, let's go back to talking about camps."
+msgid "This is a faction camp any test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Never mind, let's talk about other things you can do."
+msgid "This is a nearby role test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Never mind, let's talk about something else."
+msgid "This is a class test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Forget it. Let's go."
+msgid "This is a npc allies 1 test response."
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."
+msgid "This an error! npc allies 2 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Wait, repeat what you said."
+msgid "This is a npc engagement rule test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"Each faction camp has a bulletin board associated with it. You can "
-"'e'xamine the bulletin board to get a list of tasks that can be done and "
-"that are currently complete at the camp. You can select a task and choose "
-"an allied NPC to perform the task. \n"
-"The task list shows tasks for the central camp. If you have expansions, you "
-"can hit 'TAB' to move between the central camp and each expansion and see "
-"the tasks for the expansions. \n"
-"If you have a two way radio, you can use it to assign tasks remotely to any "
-"friendly NPC who also has a two way radio."
+msgid "This is a npc aim rule test response."
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. You need a "
-"friendly NPC to perform tasks at the camp."
+msgid "This is a npc rule test response."
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]"
-"color> 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 "This is a npc thirst test response."
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."
+msgid "This is a npc hunger test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Thanks, let's go back to talking about camps."
+msgid "This is a npc fatigue test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"\n"
-"1. Faction camps used to require a second NPC to act as overseer and camp "
-"manager, but that's been replaced by the bulletin board and two-way radio. \n"
-"2. It used to be impossible to upgrade faction camps if there was a "
-"vehicle, even a cart, on the same map. You can now upgrade camps even if "
-"there is a vehicle on the map, as long as the upgrade doesn't change the "
-"area under the vehicle. \n"
-"3. Faction camps used to upgrade by completely redrawing the map. Damage "
-"to the camp would be replaced when the camp was upgraded. Now upgrades only "
-"change the actual area being upgraded, and you will have to repair damage to "
-"the camp yourself."
+msgid "This is a mission goal test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"Hey boss. I was thinking, you don't really need me sitting in this tent and "
-"not really contributing to the camp. it's a cushy job, but I could do more. "
-"We could put up a bulletin board and you could write up what you want done "
-"there. What do you say?"
+msgid "This is a season spring test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What needs to be done?"
+msgid "This is a days since cataclysm 30 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Yes, set up the bulletin board and then go back to normal duties."
+msgid "This is a season summer test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
+msgid "This is a days since cataclysm 120 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgctxt "npc:f"
-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."
+msgid "This is a season autumn test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgctxt "npc:m"
-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."
+msgid "This is a days since cataclysm 210 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgctxt "npc:n"
-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."
+msgid "This is a season winter test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Why cornmeal, jerky, and fruit wine?"
+msgid "This is a days since cataclysm 300 test response."
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."
+msgid "This is a is day test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Are you looking to buy anything else?"
+msgid "This is a is night test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Very well..."
+msgid "This is an switch 1 test response."
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."
+msgid "This is an switch 2 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Interesting..."
+msgid "This is an switch default 1 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hope you're here to trade."
+msgid "This is an switch default 2 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Who are you?"
+msgid "This is another basic test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Mind if we just chat for a bit?"
+msgid "This is an or trait test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
-"Are you sure? This doesn't seem like a particularly safe place for small "
-"talk..."
+msgid "This is an and cash, available, trait test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "It's fine, we've got a moment."
+msgid "This is a complex nested test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Good point, let's find a more appropriate place."
+msgid "This is a conditional trial response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You're right. Forget I said anything, let's get moving."
+msgid "This is a u_add_effect - infection response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What did you want to talk about?"
+msgid "This is a npc_add_effect - infection response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Actually, never mind."
+msgid "This is a u_lose_effect - infection response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm not in charge here, you're looking for someone else..."
+msgid "This is a npc_lose_effect - infection response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Keep civil or I'll bring the pain."
+msgid "This is a u_add_trait - FED MARSHALL response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Just on watch, move along."
+msgid "This is a npc_add_trait - FED MARSHALL response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Sir."
+msgid "This is a u_lose_trait - FED MARSHALL response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Rough out there, isn't it?"
+msgid "This is a npc_lose_trait - FED MARSHALL response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Ma'am"
+msgid "This is a u_buy_item bottle of beer response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Ma'am, you really shouldn't be traveling out there."
+msgid "This is a u_buy_item plastic bottle response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Don't mind me..."
+msgid "This is a u_spend_cash response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "About the mission..."
+msgid "This is a multi-effect response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "About one of those missions..."
+msgid "This is an opinion response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hello, marshal."
+msgid "This is a u_sell_item plastic bottle response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Marshal, I'm afraid I can't talk now."
+msgid "This is a npc_consume_item beer response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm not in charge here, marshal."
+msgid "This is a u_buy_item beer response again"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm supposed to direct all questions to my leadership, marshal."
+msgid "This is a u_consume_item beer response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hey, citizen... I'm not sure you belong here."
+msgid "This is a npc_class_change response"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You should mind your own business, nothing to see here."
+msgid "This is a u_has_item beer 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 u_has_item bottle_glass 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 u_has_items beer 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 "Test failure! This is a u_has_items test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Marshal, I hope you're here to assist us."
+msgid "This is a u_has_item_category books 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 u_has_item_category books count 2 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 "Failure! This is a u_has_item_category books count 3 test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What are you doing down here?"
+msgid "This is a u_add_var test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Can you tell me about this facility?"
+msgid "This is a npc_add_var test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What do you need done?"
+msgid "This is a u_has_var, u_remove_var test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I've got to go..."
+msgid "This is a npc_has_var, npc_remove_var test response."
msgstr ""
#: 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 u_has_bionics bio_ads test response."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Seems like a decent plan..."
+msgid "Failure! This is a npc_has_bionics bio_ads test response."
msgstr ""
#: 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 a npc_has_bionics ANY 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 an example of mapgen_update effect variations"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Marshal, I'm rather surprised to see you here."
+msgid "Please test some simple remote mapgen"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Sir you are not authorized to be here... you should leave."
+msgid "Please test mapgen_update multiples"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Ma'am you are not authorized to be here... you should leave."
+msgid "Please test mapgen_update linked"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "[MISSION] The captain sent me to get a frequency list from you."
+msgid ""
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Do you need any help?"
+msgid "How did you come to be a merc working for the Free Merchants, anyway?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I should be going"
+msgid "So, you got your whisky. Tell me that story."
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."
-msgstr ""
-
-#: lang/json/talk_topic_from_json.py
-msgid "I'll try and find your commander then..."
+"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 ""
-"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 "So, did you evacuate?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Marshal..."
+msgid ""
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Citizen..."
+msgid ""
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Is there any way I can join the 'Old Guard'?"
+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 "Does the Old Guard need anything?"
+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 ""
-"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."
+"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 "So what are you actually doing here?"
+msgid "Okay, please continue."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Never mind..."
+msgid "On second thought, let's talk about something else."
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."
+"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 "Is there a catch?"
+msgid "Fireflies. Got it."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Anything more to it?"
+msgid "How does this relate to what I asked you?"
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 "I need to get going."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hmmm..."
+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 ""
-"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 "18 gauge, the dog. Got it."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "The 2nd Fleet?"
+msgid "I think I see some zombies coming. We should cut this short."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Tell me about the footholds."
+msgid "Shut up, you old fart."
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."
+"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 ""
-"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."
+"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 ""
-"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 "What did you see?"
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?"
+msgid "We really, really have to go."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Please, help me. I need food."
+msgid "For fuck's sake, shut UP!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Get away from me."
+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 ""
-"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."
+"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 "Why don't you scavenge your own food?"
+msgid "I catch your drift."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What did you do before the cataclysm?"
+msgid "Are you done yet? Seriously!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm sorry, I can't help you."
+msgid "For the love of all that is holy, PLEASE shut the hell up!"
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?"
+"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 ""
-"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."
+msgid "Thanks for the story!"
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."
+msgid "."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Have I told you about cardboard, friend? Do you have any?"
+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 "Cardboard?"
+msgid "Huh."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Why are you sitting out here?"
+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 "Are you seriously wearing a dinosaur costume?"
+msgid "What happened?"
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."
+"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 "Why cardboard?"
+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 "I think I have to get going..."
+msgid "But you did get out."
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."
+"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 ""
-"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."
+"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 "Building a house?"
+msgid "What did you do when you found out about the cataclysm?"
msgstr ""
-#: lang/json/talk_topic_from_json.py src/handle_action.cpp
-msgid "No."
+#: 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 that about cardboard?"
+msgid "What was it like, surviving out there with an injury?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Don't bother with these assholes."
+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 "What's up?"
+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 "Ok... see ya."
+msgid "Lucky you. How did you get away?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "They're 'too full'. Won't share fuck-all."
+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 "Why are you living here then?"
+msgid "How did you keep from getting arrested?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'd better get going."
+msgid "What were you in for in the first place?"
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."
+"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 "Hey, are you a big fan of survival of the fittest?"
+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 "Why do you ask?"
-msgstr ""
-
-#: lang/json/talk_topic_from_json.py
-msgid "Sorry, not interested."
+msgid "What were you saying before?"
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?"
+"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 "They won't let you in because you're sick?"
+msgid "Woah, lucky for you. How did you find out about ?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "How did you even get here if you're so sick?"
+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 "Why are you camped out here if they won't let you in?"
+msgid "Something must have driven you out of there."
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."
+"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 ""
-"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."
+msgid "Got any tips about the boss zombie?"
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."
+"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 ""
-"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."
+"Oh God... *Zzzzt* I... I don't know what ha-happened. *BEEEEEEP* They told "
+"me I was going to become the very b-best! And then I c-can only remember "
+"pain and screams. P-Please don't *Zzzt* leave me here!"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hey there, friend."
+msgid "You're okay it's over now."
msgstr ""
-#: lang/json/talk_topic_from_json.py src/player.cpp
-msgid "What are you doing out here?"
+#: 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 "I couldn't help but notice, you're covered in fur."
+msgid "What were your dreams?"
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."
+"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 "Why live out here?"
+msgid "OK, that doesn't seem that unusual though."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You seem like you can hold your own. Why not travel with me?"
+msgid "Wow, crazy, I can't believe you really dreamed ."
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."
+"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 ""
-"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."
+msgid "That is kinda strange."
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?"
+"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 "Morning sir, how can I help you?"
+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 "Morning ma'am, how can I help you?"
+msgid "Tell me some more of your weird dreams."
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."
+"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 "What's your job here?"
+msgid "I think we all have dreams like that now."
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."
+"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 ""
-"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 "Poor Filthy Dan. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "How many refugees are you expecting?"
+msgid "Thanks for telling me that stuff. "
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."
+"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 "Hopefully moving out here was worth it..."
+msgid "How did you survive on the run?"
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 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 "I'll keep that in mind."
+msgid "And that's it? You spent months just living off the land?"
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..."
+"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 "
+"traveling 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 "Howdy."
+msgid "Complacent?"
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 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 beastie 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 "You need something?"
+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 "I'd like to hire your services."
+msgid "What happened to your original crew?"
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."
+"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 "Oh."
+msgid "What do you think happened? You see them around anywhere?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Come back later, I need to take care of a few things first."
+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 ""
-"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 "How did you survive after that?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "[$2000, 1d] 10 logs"
+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 "[$12000, 7d] 100 logs"
+msgid "What got you out of the subway?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'll be back later."
+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 "Don't have much time to talk."
+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 "What is your job here?"
+msgid "I didn't meet you in the subway though. You left."
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"I turn the logs that laborers bring in into lumber to expand the outpost. "
-"Maintaining the saw is a chore but breaks the monotony."
+"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 ""
-"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."
+"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 ""
-"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."
+"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 ""
-"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 "Giant bees? Tell me more."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "You mind?"
+msgid "But bees aren't usually aggressive..."
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."
+"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 "It could be worse..."
+msgid "But bees aren't usually aggressive... Do you mean wasps?"
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"I've got no time for you. If you want to make a trade or need a job look "
-"for the foreman or crop overseer."
+"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 "I'll talk with them then..."
+msgid "Sorry. Could you tell me more about them?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I hope you are here to do business."
+msgid "Right. Sorry."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm interested in investing in agriculture..."
+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 ""
-"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."
+"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 "Please leave me alone..."
+msgid "Tell me more about that FEMA camp."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What's wrong?"
+msgid "How did you get out?"
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"I was just a laborer till they could find me something a bit more permanent "
-"but being constantly sick has prevented me from doing much of anything."
+"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 "That's sad."
+msgid "What happened after that?"
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"I don't know what you could do. I've tried everything. Just give me time..."
-msgstr ""
-
-#: lang/json/talk_topic_from_json.py
-msgid "OK."
+"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 ""
-"I keep getting sick! At first I thought it was something I ate but now it "
-"seems like I can't keep anything down..."
+"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 "Uhm."
+msgid "Maybe another time. I don't really like thinking about it."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "How can I help you?"
+msgid "Sorry. Tell me more about that FEMA camp."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I could use your medical assistance."
+msgid "Sorry for asking. "
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."
+msgid "Sorry for asking. "
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."
+"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."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What kind of jobs do you have for me?"
+msgid "What did you do next?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Not now."
+msgid "What were you studying?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I can take a look at you or your companions if you are injured."
+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 "[$200, 30m] I need you to patch me up."
+msgid "Something must have driven you out of the motel."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "[$500, 1h] I need you to patch me up."
+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 should be fine."
+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
-msgid "That's the best I can do on short notice."
+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 "I'm sorry, I don't have time to see you at the moment."
+msgid "How did that go?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "For the right price could I borrow your services?"
+msgid "Cool. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I imagine we might be able to work something out."
+msgid "Cool. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I was wondering if you could install a cybernetic implant..."
+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 "I need help removing an implant..."
+msgid "Figured what out?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Don't mind me."
+msgid "Never mind. "
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."
+msgid "Never mind. "
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."
+"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 "Welcome to the junk shop."
+msgid "It's good you found your calling. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Let's see what you've managed to find."
+msgid "It's good you found your calling. "
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."
+"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 ""
-"Are you interested in the scavenging runs or one of the other tasks that I "
-"might have for you?"
+"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 more about the scavenging runs."
+msgid "Tell me about your son."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What kind of tasks do you have for me?"
+msgid "So, you went to one of the FEMA camps?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "No, thanks."
+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 "Want a drink?"
+msgid "What was it you said before?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I'm looking for information."
+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 "Let me see what you keep behind the counter."
+msgid "Where did you go then?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What do you have on tap?"
+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 "I'll be going..."
+msgid "That's quite a story. "
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."
+msgid "That's quite a story. "
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."
+"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 "Thanks for nothing."
+msgid "Where did things go from there?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Our selection is a bit limited at the moment."
+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 "[$8] I'll take a beer"
+msgid "Did you get home?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "[$10] I'll take a shot of brandy"
+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 "[$10] I'll take a shot of rum"
+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 "[$12] I'll take a shot of whiskey"
+msgid "What happened on your sick day?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "On second thought, don't bother."
+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 "Can I interest you in a trim?"
+msgid "Did you get evacuated?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "[$5] I'll have a shave"
+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 "[$10] I'll get a haircut"
+msgid "Something must have happened to drive you out?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Maybe another time..."
+msgid ""
+"The military happened. 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 ""
-"What? I'm a barber... I cut hair. There's demand for cheap cuts and a "
-"shave out here."
+msgid "I just can't talk about that right now. I can't."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I can't imagine what I'd need your assistance with."
+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 "Stand still while I get my clippers..."
+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 "Thanks..."
+msgid "It might help to get it off your chest."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I haven't done anything wrong..."
+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 "Any tips for surviving?"
+msgid "What was it that 'broke' you?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What would it cost to hire you?"
+msgid "No. I can't. Just, no."
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."
+msgid "Sorry... I'll let you be."
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."
+"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 "I suppose I should hire a party then?"
+msgid "How did you get out of there?"
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."
+"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 "[$8000] You have a deal."
+msgid "What finally brought you down?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I guess you're the boss."
+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 "Glad to have you aboard."
+msgid "What did you see, up there on the roof?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Can I trade for supplies?"
+msgid "Thanks for telling me all that. "
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."
+"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, traveling 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 "So what are you doing right now?"
+msgid "How did you get down?"
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."
+"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 "What kind of news?"
+msgid "Where was that?"
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."
+"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 "Good luck with that..."
+msgid "Clearly you escaped at some point."
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."
+"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 ""
-"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?"
+msgid "Thanks for telling me that. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Hey, I didn't expect to live long enough to see another living human!"
+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 "I've been here since shit went down. Just my luck I had to work."
+msgid "A demon?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "How are you alive?"
+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 ""
-"Well, the dishwasher made a break for it three days after things got weird. "
-"He was ripped to shreds before he made it to the street. I figure this "
-"place has gotta be safer than my apartment, and at least I've got all this "
-"food here."
+"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 ""
-"I... um... hid. I was in the kitchen, preparing another masterpiece when I "
-"heard glass shattering followed by screaming. I ran over to the serving "
-"window to see what happened, assuming a guest had fallen and broke "
-"something. What I witnessed was the most awful thing I've ever seen. I'm "
-"not even sure I could go over it again."
+"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 "What happened next?"
+msgid "Oh, no."
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"Some lunatic covered in a film of goo, black as oil, had fallen through one "
-"of the large glass windows. There were glass shards stuck in its head and "
-"neck. I thought the poor guy, girl-thing-whatever was dead. People began "
-"to crowd around it, some were taking pictures."
+"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 "Horrible. Did you get any pictures yourself?"
+msgid "Did you keep running?"
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"No! I figured the thing dead until it started writhing and spazzing out for "
-"a moment. Everyone jumped back, a few screamed, and one curious stranger "
-"stepped in closer, kneeling a little... it attacked him!"
+"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 "What'd you do?"
+msgid "Thanks for telling me your story. "
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"I ran to the back of the kitchen and hid as best I could. People outside "
-"were screaming and I could hear them running. Suddenly I heard more glass "
-"shatter and something skitter out of the restaurant. I waited a moment and "
-"then went and checked the dining area. Both the stranger and the thing were "
-"gone. People were running in the streets, some even had guns so I locked "
-"all the doors and blocked the windows with what I could and barricaded "
-"myself in here."
+"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 ""
#: lang/json/talk_topic_from_json.py
-msgid "Crazy, so you have been here ever since?"
+msgid "I don't see where this is going."
msgstr ""
#: lang/json/talk_topic_from_json.py
msgid ""
-"Yeah, it was awhile before it was quiet again. I heard all kinds of sounds: "
-"explosions, jets flying by, helicopters, screaming, and rapid gunfire. I "
-"swear I even heard what sounded like a freaking tank drive by at one time! "
-"I've been hiding here since."
+"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 ""
-"I've been a cook since forever, this wasn't the best joint, but management "
-"was cool."
+msgid "Okay..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a test conversation that shouldn't appear in the game."
+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 "This is a basic test response."
+msgid "Was there anything else of use in that email?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a strength test response."
+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 "This is a dexterity test response."
+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 "This is an intelligence test response."
+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 "This is a perception test response."
+msgid "Come on, don't leave me hanging."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a low strength test response."
+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 "This is a low dexterity test response."
+msgid "What happened when you went out?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a low intelligence test response."
+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 "
+"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."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a low perception test response."
+msgid "Thanks for telling me all that. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a trait test response."
+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 "This is a short trait test response."
+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 "This is a wearing test response."
+msgid "I'm sorry to hear it."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc trait test response."
+msgid "Tell me about those plant monsters."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc short trait test response."
+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 "This is a trait flags test response."
+msgid "No, that's messed up."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc trait flags test response."
+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 "This is an npc effect test response."
+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 "This is a player effect test response."
+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 "This is a cash test response."
+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 "This is an npc service test response."
+msgid "I'm sorry you lost someone."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an npc available test response."
+msgid ""
+"I said, I don't wanna talk about it. How are you not understanding this?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a om_location_field test response."
+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 "This is a faction camp any test response."
+msgid "Just another tale of love and loss. Not one I like to tell."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a nearby role test response."
+msgid "You said you lost someone."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a class test response."
+msgid "Never mind. Sorry I brought it up."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc allies 1 test response."
+msgid "I appreciate the sentiment, but I don't think it would. Drop it."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This an error! npc allies 2 test response."
+msgid "OK."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc engagement rule test response."
+msgid "Oh, . This doesn't have anything to do with you, or with us."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc aim rule test response."
+msgid "All right, fine. I had someone. I lost him."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc rule test response."
+msgid "All right, fine. I had someone. I lost her."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc thirst test response."
+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 "This is a npc hunger test response."
+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 "This is a npc fatigue test response."
+msgid "You must have seen some shit."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a mission goal test response."
+msgid "I take it home was bad."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a season spring test response."
+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 "This is a days since cataclysm 30 test response."
+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 "This is a season summer test response."
+msgid "You must have seen some shit on the way there."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a days since cataclysm 120 test response."
+msgid "Did you make it into the house?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a season autumn test response."
+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 delirious by the time I found him. I "
+"couldn't get him out, so I gave him food and water and just stayed with him "
+"and held his hand until he passed. And then... well, then I did what you "
+"have to do to the dead now. And then I packed up the last few fragments of "
+"my life, and I try to never look back."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a days since cataclysm 210 test response."
+msgid ""
+"I did. Took a few hours to get an opening. And you wanna know the fucked "
+"up part? Like, out of all this? My wife was still alive. She'd been in "
+"the basement the whole time, pinned under a collapsed piece of floor. And "
+"she'd lost a ton of blood, she was delirious by the time I found her. I "
+"couldn't get her out, so I gave her food and water and just stayed with her "
+"and held her hand until she passed. And then... well, then I did what you "
+"have to do to the dead now. And then I packed up the last few fragments of "
+"my life, and I try to never look back."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a season winter test response."
+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 "This is a days since cataclysm 300 test response."
+msgid "How did you survive school?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a is day test response."
+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 "This is a is night test response."
+msgid "What about your parents?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an switch 1 test response."
+msgid "What got you out of there?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an switch 2 test response."
+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 "This is an switch default 1 test response."
+msgid "What got you out of the house?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an switch default 2 test response."
+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 "This is another basic test response."
+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 "This is an or trait test response."
+msgid "I can respect that."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an and cash, available, trait test response."
+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 a complex nested test response."
+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 "This is a conditional trial response."
+msgid "What do you think happened?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_add_effect - infection response"
+msgid "That does sound a little crazy..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc_add_effect - infection response"
+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 "This is a u_lose_effect - infection response"
+msgid "Are you trying to get your memory back then?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc_lose_effect - infection response"
+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 "This is a u_add_trait - FED MARSHALL response"
+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 "This is a npc_add_trait - FED MARSHALL response"
+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 "This is a u_lose_trait - FED MARSHALL response"
+msgid "What happened to you after that?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc_lose_trait - FED MARSHALL response"
+msgid "It can't be healthy to abandon your past like that..."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_buy_item bottle of beer response"
+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 "This is a u_buy_item plastic bottle response"
+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 "This is a u_spend_cash response"
+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 "This is a multi-effect response"
+msgid "I can respect that. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an opinion response"
+msgid "Fair enough. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_sell_item plastic bottle response"
+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 "This is a npc_consume_item beer response"
+msgid "How did you survive outside?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_buy_item beer response again"
+msgid "What did you see in those first few days?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_consume_item beer response"
+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 "This is a npc_class_change response"
+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 "This is a u_has_item beer test response."
+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 "This is a u_has_item bottle_glass test response."
+msgid "What happened after the acid mist?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_has_items beer test response."
+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 "Test failure! This is a u_has_items test response."
+msgid "What happened to your friend?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_has_item_category books test response."
+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 "This is a u_has_item_category books count 2 test response."
+msgid "I guess they didn't know."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Failure! This is a u_has_item_category books count 3 test response."
+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 "This is a u_add_var test response."
+msgid "She was dead?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc_add_var test response."
+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 "This is a u_has_var, u_remove_var test response."
+msgid "That's awful. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc_has_var, npc_remove_var test response."
+msgid "That's awful. "
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a u_has_bionics bio_ads test response."
+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 "Failure! This is a npc_has_bionics bio_ads test response."
+msgid "What happened to you?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is a npc_has_bionics ANY response."
+msgid "What about your shelter?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "This is an example of mapgen_update effect variations"
+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 "Please test some simple remote mapgen"
+msgid "Did you get there?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Please test mapgen_update multiples"
+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 "Please test mapgen_update linked"
+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 ""
+msgid "Could you tell me that story again?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "How did you come to be a merc working for the Free Merchants, anyway?"
+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 "So, you got your whisky. Tell me that story."
+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 ""
-"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."
+"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 "So, did you evacuate?"
+msgid "Why did you leave your bunker?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid ""
+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 ""
+msgid "Thanks for telling me that. "
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."
+"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 "[$1000] 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 "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 ""
+
+#: 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 ""
-"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."
+"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 ""
-"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."
+"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 "Okay, please continue."
+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 "On second thought, let's talk about something else."
+msgid ""
+"This sounds a lot cooler than it is: possession of an unlicensed nuclear "
+"accelerator."
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."
+"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 "Fireflies. Got it."
+msgid "Multiple counts of possession. I used to be really hung up on meth."
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "How does this relate to what I asked you?"
+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 "I need to get going."
+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 ""
-"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."
+"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 "18 gauge, the dog. Got it."
+msgid "How did you get out of lockup?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "I think I see some zombies coming. We should cut this short."
+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 "Shut up, you old fart."
+msgid "What did you do from there?"
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."
+"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 ""
-"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."
+"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 did you see?"
+msgid "What happened to the others that made it?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "We really, really have to go."
+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 "For fuck's sake, shut UP!"
+msgid ""
+"I'm actually a chemistry professor at Harvard. I'd been on sabbatical for "
+"the last six months. I can't imagine the university was a good place to be, "
+"given what I've heard about Boston... I'm not sure anyone made it out. I "
+"was out at my cabin near Chatham, ostensibly working on the finishing "
+"touches for a paper, but mostly just sipping whisky and thanking my lucky "
+"stars for tenure. Those were good days. Then came , the "
+"military convoys, the . My cabin was crushed by a , just "
+"collateral damage after it got blasted off Orleans by a tank. I was already "
+"busy running frantically by then."
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."
+"Do you think there's some way your knowledge could help us understand all "
+"this?"
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."
+"Hard to say. I'm not really an organic chemist, I did geological "
+"chemistry. 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 ""
#: lang/json/talk_topic_from_json.py
-msgid "I catch your drift."
+msgid "Cool. What did you say before that?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "Are you done yet? Seriously!"
+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 "For the love of all that is holy, PLEASE shut the hell up!"
+msgid "Do you mean in a religious sense, or...?"
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."
+"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 "Thanks for the story!"
+msgid "What if you're wrong?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "."
+msgid "What will you do then?"
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."
+"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 "Huh."
+msgid "What will you do, then?"
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."
+"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 "What happened?"
+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 ""
-"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."
+"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 ""
-"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."
+"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 "But you did get out."
+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 ""
-"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."
+"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 ""
-"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."
+"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 "What did you do when you found out about the cataclysm?"
+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 ""
-"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."
+"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 "What was it like, surviving out there with an injury?"
+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 ""
-"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."
+"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 ""
-"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."
+"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 "Lucky you. How did you get away?"
+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 ""
-"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."
+"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 "How did you keep from getting arrested?"
+msgid "Is this enough whisky for you?"
msgstr ""
#: lang/json/talk_topic_from_json.py
-msgid "What were you in for in the first place?"
+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 ""
-"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."
+"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 ""
-"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."
+"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 "What were you saying before?"
+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 was lucky for