Compare commits
64
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da6c2657e1 | ||
|
|
eb6a6f1950 | ||
|
|
553324bc1c | ||
|
|
982827a00f | ||
|
|
0c0ceeb0fa | ||
|
|
24d5352f04 | ||
|
|
5b9df3748b | ||
|
|
5c4d058e72 | ||
|
|
39486a3f29 | ||
|
|
a09a321a7a | ||
|
|
dca99eae08 | ||
|
|
fbc753b467 | ||
|
|
e86b2559d6 | ||
|
|
a83b1bd9bd | ||
|
|
6decdd580a | ||
|
|
41f32f8af9 | ||
|
|
0620d76d8d | ||
|
|
dd8a91d0f8 | ||
|
|
977841899f | ||
|
|
81aee53e4f | ||
|
|
992f026662 | ||
|
|
44d4c83030 | ||
|
|
a88dfc4c37 | ||
|
|
40733ed679 | ||
|
|
e2ca8d5df3 | ||
|
|
20536d4f69 | ||
|
|
0cad4919a9 | ||
|
|
f85f52a7e5 | ||
|
|
24933a677d | ||
|
|
fcc96c0460 | ||
|
|
a4f55d9455 | ||
|
|
f7fdc3a8a0 | ||
|
|
aa639a0139 | ||
|
|
bc80b0479a | ||
|
|
fdd391b849 | ||
|
|
057edce846 | ||
|
|
c52fc26a1b | ||
|
|
d28667a935 | ||
|
|
b92e47cd13 | ||
|
|
87a21b6fc4 | ||
|
|
ccd0898f4e | ||
|
|
c162931e74 | ||
|
|
b578254d75 | ||
|
|
7b57aca991 | ||
|
|
282467e4af | ||
|
|
e6d1b8d3fd | ||
|
|
f09be7d54b | ||
|
|
3397ed8cee | ||
|
|
7b6a0980b9 | ||
|
|
7b245b989b | ||
|
|
32058f76c2 | ||
|
|
a6576bb8ab | ||
|
|
7c6e377692 | ||
|
|
fe7c5e68ed | ||
|
|
531530e763 | ||
|
|
e1befd1383 | ||
|
|
2eb87c8f4c | ||
|
|
531715f171 | ||
|
|
4c9096b3d5 | ||
|
|
7c3d722d7e | ||
|
|
c4b995e046 | ||
|
|
c987847c9b | ||
|
|
e99828f1cc | ||
|
|
246b3d5c1d |
+1
-3
@@ -1,5 +1,3 @@
|
||||
src/App/Utilities/YAML/Schema/
|
||||
*.cjs
|
||||
*.js
|
||||
*.gen.tsx
|
||||
node_modules
|
||||
/app
|
||||
|
||||
+9
-19
@@ -8,8 +8,7 @@ plugins:
|
||||
parserOptions:
|
||||
ecmaVersion: latest
|
||||
sourceType: module
|
||||
project:
|
||||
- ./tsconfig.json
|
||||
project: ./tsconfig.json
|
||||
ecmaFeatures:
|
||||
jsx: true
|
||||
env:
|
||||
@@ -166,7 +165,6 @@ rules:
|
||||
jsx-quotes: 2
|
||||
key-spacing: 2
|
||||
keyword-spacing: 2
|
||||
line-comment-position: 2
|
||||
lines-around-comment:
|
||||
- 0
|
||||
# requires an empty line before block comments
|
||||
@@ -211,7 +209,6 @@ rules:
|
||||
- ignoreChainWithDepth: 2
|
||||
no-bitwise: 2
|
||||
no-continue: 2
|
||||
no-inline-comments: 2
|
||||
no-lonely-if: 2
|
||||
no-mixed-operators:
|
||||
- 2
|
||||
@@ -247,11 +244,6 @@ rules:
|
||||
- blocks: never
|
||||
classes: never
|
||||
switches: never
|
||||
padding-line-between-statements:
|
||||
- 2
|
||||
- blankLine: always
|
||||
prev: "*"
|
||||
next: return
|
||||
prefer-object-spread: 2
|
||||
quote-props:
|
||||
- 2
|
||||
@@ -291,8 +283,12 @@ rules:
|
||||
prefer-const: 2
|
||||
prefer-destructuring:
|
||||
- 2
|
||||
- object: true
|
||||
array: false
|
||||
- VariableDeclarator:
|
||||
array: true
|
||||
object: true
|
||||
AssignmentExpression:
|
||||
array: false
|
||||
object: false
|
||||
prefer-numeric-literals: 2
|
||||
prefer-rest-params: 2
|
||||
prefer-spread: 2
|
||||
@@ -341,7 +337,6 @@ rules:
|
||||
"@typescript-eslint/prefer-for-of": 2
|
||||
"@typescript-eslint/prefer-includes": 2
|
||||
"@typescript-eslint/prefer-readonly": 2
|
||||
"@typescript-eslint/promise-function-async": 2
|
||||
# "@typescript-eslint/quotes": 2
|
||||
"@typescript-eslint/require-array-sort-compare": 2
|
||||
"@typescript-eslint/require-await": 2
|
||||
@@ -363,10 +358,7 @@ rules:
|
||||
comma-spacing: 0
|
||||
"@typescript-eslint/comma-spacing": 2
|
||||
func-call-spacing: 0
|
||||
"@typescript-eslint/func-call-spacing":
|
||||
- 2
|
||||
- always
|
||||
- allowNewlines: true
|
||||
"@typescript-eslint/func-call-spacing": 2
|
||||
indent: 0
|
||||
"@typescript-eslint/indent": 0
|
||||
no-array-constructor: 0
|
||||
@@ -399,8 +391,6 @@ rules:
|
||||
- 2
|
||||
- never
|
||||
- beforeStatementContinuationChars: never
|
||||
space-before-function-paren: 0
|
||||
"@typescript-eslint/space-before-function-paren": 2
|
||||
|
||||
# React
|
||||
react/boolean-prop-naming: 2
|
||||
@@ -429,7 +419,7 @@ rules:
|
||||
react/no-will-update-set-state: 2
|
||||
react/prefer-es6-class: 2
|
||||
react/prefer-stateless-function: 2
|
||||
react/react-in-jsx-scope: 2
|
||||
react/react-in-jsx-scope: 0
|
||||
react/require-render-return: 2
|
||||
react/self-closing-comp: 2
|
||||
react/state-in-constructor:
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Prerelease Builds
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v[0-9]+.[0-9]+.[0-9]+-[a-z]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+-[a-z]+.[0-9]+
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -12,42 +12,55 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
- macOS-latest
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
- macOS-latest
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
osName: Linux
|
||||
- os: windows-latest
|
||||
osName: Windows
|
||||
- os: macOS-latest
|
||||
osName: macOS
|
||||
- os: ubuntu-latest
|
||||
osName: Linux
|
||||
- os: windows-latest
|
||||
osName: Windows
|
||||
- os: macOS-latest
|
||||
osName: macOS
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.x
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: Build ReasonML files
|
||||
run: npm run re:build
|
||||
- name: Build TypeScript files
|
||||
run: npm run js:build
|
||||
- name: Build Sass files
|
||||
run: npm run css:build
|
||||
- name: Build
|
||||
run: node ./deploy/build.js prerelease
|
||||
env:
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Deploy
|
||||
run: node ./deploy/deploy.js prerelease
|
||||
env:
|
||||
HOST: ${{ secrets.HOST }}
|
||||
USERNAME: ${{ secrets.USERNAME }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
ROOT: ${{ secrets.ROOT }}
|
||||
CI: true
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 20
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: Compile JavaScript files
|
||||
run: npm run js:build
|
||||
- name: Compile Sass files
|
||||
run: npm run css:build
|
||||
- name: Build macOS application
|
||||
if: runner.os == 'macOS'
|
||||
run: node ./deploy/build.mjs prerelease
|
||||
env:
|
||||
APPLEID: ${{ secrets.APPLEID }}
|
||||
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
|
||||
TEAMID: ${{ secrets.TEAMID }}
|
||||
CSC_LINK: ${{ secrets.CSC_LINK }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Build Linux application
|
||||
if: runner.os == 'Linux'
|
||||
run: node ./deploy/build.mjs prerelease
|
||||
env:
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Build Windows application
|
||||
if: runner.os == 'Windows'
|
||||
run: node ./deploy/build.mjs prerelease
|
||||
env:
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Deploy
|
||||
run: node ./deploy/deploy.mjs prerelease
|
||||
env:
|
||||
HOST: ${{ secrets.HOST }}
|
||||
USERNAME: ${{ secrets.USERNAME }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
ROOT: ${{ secrets.ROOT }}
|
||||
|
||||
@@ -3,7 +3,7 @@ name: Stable Builds
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -12,42 +12,55 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
- macOS-latest
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
- macOS-latest
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
osName: Linux
|
||||
- os: windows-latest
|
||||
osName: Windows
|
||||
- os: macOS-latest
|
||||
osName: macOS
|
||||
- os: ubuntu-latest
|
||||
osName: Linux
|
||||
- os: windows-latest
|
||||
osName: Windows
|
||||
- os: macOS-latest
|
||||
osName: macOS
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.x
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: Build ReasonML files
|
||||
run: npm run re:build
|
||||
- name: Build TypeScript files
|
||||
run: npm run js:build
|
||||
- name: Build Sass files
|
||||
run: npm run css:build
|
||||
- name: Build
|
||||
run: node ./deploy/build.js stable
|
||||
env:
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Deploy
|
||||
run: node ./deploy/deploy.js stable
|
||||
env:
|
||||
HOST: ${{ secrets.HOST }}
|
||||
USERNAME: ${{ secrets.USERNAME }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
ROOT: ${{ secrets.ROOT }}
|
||||
CI: true
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 20
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: Compile JavaScript files
|
||||
run: npm run js:build
|
||||
- name: Compile Sass files
|
||||
run: npm run css:build
|
||||
- name: Build macOS application
|
||||
if: runner.os == 'macOS'
|
||||
run: node ./deploy/build.mjs stable
|
||||
env:
|
||||
APPLEID: ${{ secrets.APPLEID }}
|
||||
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
|
||||
TEAMID: ${{ secrets.TEAMID }}
|
||||
CSC_LINK: ${{ secrets.CSC_LINK }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Build Linux application
|
||||
if: runner.os == 'Linux'
|
||||
run: node ./deploy/build.mjs stable
|
||||
env:
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Build Windows application
|
||||
if: runner.os == 'Windows'
|
||||
run: node ./deploy/build.mjs stable
|
||||
env:
|
||||
UPDATE_URL: ${{ secrets.UPDATE_URL }}
|
||||
- name: Deploy
|
||||
run: node ./deploy/deploy.mjs stable
|
||||
env:
|
||||
HOST: ${{ secrets.HOST }}
|
||||
USERNAME: ${{ secrets.USERNAME }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
ROOT: ${{ secrets.ROOT }}
|
||||
|
||||
+30
-32
@@ -3,12 +3,12 @@ name: Integration
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
- master
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
test:
|
||||
@@ -16,36 +16,34 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.x
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- run: npm run re:build
|
||||
- run: npm run ts:build
|
||||
- run: npm test
|
||||
env:
|
||||
CI: true
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 20
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: Compile TypeScript files
|
||||
run: npm run ts:build
|
||||
- name: Run tests
|
||||
run: npm test
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16.x
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- run: npm run lint
|
||||
env:
|
||||
CI: true
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
submodules: true
|
||||
- name: Use Node.js 20
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install Node.js dependencies
|
||||
run: npm ci
|
||||
- name: Run linter
|
||||
run: npm run lint
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
.DS_Store
|
||||
node_modules/
|
||||
/.webpack/**/*
|
||||
!/.webpack/package.json
|
||||
npm-debug.log*
|
||||
.vs/
|
||||
/data/
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
[submodule "app/Database"]
|
||||
path = app/Database
|
||||
path = src/database/contents
|
||||
url = https://github.com/elyukai/optolith-data.git
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
@@ -2,6 +2,47 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
### [1.5.2-alpha.4](https://github.com/elyukai/optolith-client/compare/v1.5.2-alpha.3...v1.5.2-alpha.4) (2022-07-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* improvement cost handling for some traditions ([c52fc26](https://github.com/elyukai/optolith-client/commit/c52fc26a1b1d6cccc1cfec758da8886be966233b))
|
||||
* show improvement cost in tabular list ([c162931](https://github.com/elyukai/optolith-client/commit/c162931e74bce5f4fd1e42de6ebc92c71d15e81a))
|
||||
|
||||
### [1.5.2-alpha.3](https://github.com/elyukai/optolith-client/compare/v1.5.2-alpha.2...v1.5.2-alpha.3) (2022-07-12)
|
||||
|
||||
### [1.5.2-alpha.2](https://github.com/elyukai/optolith-client/compare/v1.5.2-alpha.1...v1.5.2-alpha.2) (2022-07-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* enable auto-update for macOS ([7c6e377](https://github.com/elyukai/optolith-client/commit/7c6e3776921fdc4f13c42ea5c6a4bf5d316856e1))
|
||||
|
||||
### [1.5.2-alpha.1](https://github.com/elyukai/optolith-client/compare/v1.5.1-alpha.2...v1.5.2-alpha.1) (2022-04-29)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add krallenkettenzauber as placeholder ([c987847](https://github.com/elyukai/optolith-client/commit/c987847c9b192a0528df52da33f55adf90164eaf))
|
||||
|
||||
|
||||
## [1.5.1](https://github.com/elyukai/optolith-client/compare/v1.5.0...v1.5.1) (2022-03-20)
|
||||
|
||||
|
||||
### Enhancements
|
||||
|
||||
* **MapTool:** add links to extension next to export button ([07d336d](https://github.com/elyukai/optolith-client/commit/07d336dbb3ceba9818185a9b8c0cdffa6283afb3))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **MapTool:** without an avatar no export was possible ([80fdffb](https://github.com/elyukai/optolith-client/commit/80fdffb373fccc467383cf6d98c1f07a92168ee4)), closes [#1348](https://github.com/elyukai/optolith-client/issues/1348)
|
||||
* **MapTool:** changed export format for MapTool version 1.11.4 ([9e9a113](https://github.com/elyukai/optolith-client/commit/9e9a1139d3821bb5a36fbaa973236319026d996a))
|
||||
* **MapTool:** Add missing Italian translations for export ([3f87dca](https://github.com/elyukai/optolith-client/commit/3f87dca910ce5229c7fd5378ba5f4177cbf431ac)), closes [#1350](https://github.com/elyukai/optolith-client/issues/1350)
|
||||
* Advantage *Inspire Confidence* could be bought with an active *Incompetent* in a social skill ([8102bb1](https://github.com/elyukai/optolith-client/commit/8102bb1a9adac4849499380bf3bc2270aa7dd2c6)), closes [#1351](https://github.com/elyukai/optolith-client/issues/1351)
|
||||
* Strikethrough prerequisites were rendered with surrounding tildes instead ([2c9332c](https://github.com/elyukai/optolith-client/commit/2c9332c37f9b2d8d9e0359a9e4dadf0a40beeba1)), closes [#1349](https://github.com/elyukai/optolith-client/issues/1349)
|
||||
|
||||
### [1.5.1-alpha.2](https://github.com/elyukai/optolith-client/compare/v1.5.1-alpha.1...v1.5.1-alpha.2) (2022-02-22)
|
||||
|
||||
|
||||
|
||||
+5
-5
@@ -28,7 +28,7 @@ You can suggest features either in the issues tracker or in one of the [listed f
|
||||
|
||||
### Important note
|
||||
|
||||
Due to licensing, the YAML files containing the crunch elements from the books are **not** included in this repository but in a separate private one. Please join my [Discord Server](https://discord.gg/uDyR4yr) if you want to contribute and thus need to access them. Just text me in a channel on the server or PN me (@elyukai).
|
||||
Due to licensing, the YAML files containing the crunch elements from the books are **not** included in this repository but in a separate private one. If you only plan to contribute something independent of the database, you can just get the database from an alpha installation. On Windows, for example, the database is available under `Resources/app.asar.unpacked/app/Data` inside the installation folder. If you plan to contribute anything to the database itself and thus need to access its source, please join my [Discord Server](https://discord.gg/uDyR4yr) and text me in a channel on the server or PN me (@elyukai).
|
||||
|
||||
### Basic development rules
|
||||
|
||||
@@ -42,9 +42,9 @@ Due to licensing, the YAML files containing the crunch elements from the books a
|
||||
|
||||
### Install required software
|
||||
|
||||
- **Git** — https://git-scm.com/downloads or via a package manager
|
||||
- **Node.js** with **npm** — https://nodejs.org/en/ or via [`nvm`](https://github.com/nvm-sh/nvm)
|
||||
- *Optional:* **Visual Studio Code** — https://code.visualstudio.com/ (you can use your own editor as well, there are project-specific VSCode settings within this repository, though)
|
||||
- **Git** — <https://git-scm.com/downloads> or via a package manager
|
||||
- **Node.js** with **npm** — <https://nodejs.org/en/> or via [`nvm`](https://github.com/nvm-sh/nvm)
|
||||
- *Optional:* **Visual Studio Code** — <https://code.visualstudio.com/> (you can use your own editor as well, there are project-specific VSCode settings within this repository, though)
|
||||
|
||||
### Prepare the repo
|
||||
|
||||
@@ -69,7 +69,7 @@ Compile the source code. `js:` is for TypeScript/Webpack, `re:` for Reason/OCaml
|
||||
You have to run the Reason build first as it generates TypeScript files...
|
||||
|
||||
```sh
|
||||
npm run re:build
|
||||
npm run ts:build
|
||||
npm run css:build
|
||||
npm run js:build
|
||||
```
|
||||
|
||||
+1
-1
Submodule app/Database updated: f6df4f5f57...fe41061524
@@ -1,131 +0,0 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "Schema/Config/Config.l10n.schema.json",
|
||||
"$ref": "#/definitions/Config",
|
||||
"definitions": {
|
||||
"Config": {
|
||||
"title": "RawConfig",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"herolistSortOrder": {
|
||||
"enum": ["name", "datemodified", "dateModified"]
|
||||
},
|
||||
"herolistVisibilityFilter": {
|
||||
"enum": ["all", "own", "shared"]
|
||||
},
|
||||
"racesSortOrder": {
|
||||
"enum": ["name", "cost"]
|
||||
},
|
||||
"racesValueVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"culturesSortOrder": {
|
||||
"enum": ["name", "cost"]
|
||||
},
|
||||
"culturesVisibilityFilter": {
|
||||
"enum": ["all", "common"]
|
||||
},
|
||||
"culturesValueVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"professionsSortOrder": {
|
||||
"enum": ["name", "cost"]
|
||||
},
|
||||
"professionsVisibilityFilter": {
|
||||
"enum": ["all", "common"]
|
||||
},
|
||||
"professionsFromExpansionsVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"professionsGroupVisibilityFilter": {
|
||||
"enum": [0, 1, 2, 3]
|
||||
},
|
||||
"advantagesDisadvantagesCultureRatingVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"talentsSortOrder": {
|
||||
"enum": ["name", "group", "ic"]
|
||||
},
|
||||
"talentsCultureRatingVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"combatTechniquesSortOrder": {
|
||||
"enum": ["name", "group", "ic"]
|
||||
},
|
||||
"specialAbilitiesSortOrder": {
|
||||
"enum": ["name", "group", "groupname"]
|
||||
},
|
||||
"spellsSortOrder": {
|
||||
"enum": ["name", "group", "property", "ic"]
|
||||
},
|
||||
"spellsUnfamiliarVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"liturgiesSortOrder": {
|
||||
"enum": ["name", "group", "ic"]
|
||||
},
|
||||
"equipmentSortOrder": {
|
||||
"enum": ["name", "groupname", "where", "weight"]
|
||||
},
|
||||
"equipmentGroupVisibilityFilter": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sheetCheckAttributeValueVisibility": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"sheetUseParchment": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"sheetZoomFactor": {
|
||||
"type": "number"
|
||||
},
|
||||
"enableActiveItemHints": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"locale": {
|
||||
"type": "string"
|
||||
},
|
||||
"fallbackLocale": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"enum": ["light", "dark"]
|
||||
},
|
||||
"enableEditingHeroAfterCreationPhase": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"meleeItemTemplatesCombatTechniqueFilter": {
|
||||
"type": "string"
|
||||
},
|
||||
"rangedItemTemplatesCombatTechniqueFilter": {
|
||||
"type": "string"
|
||||
},
|
||||
"enableAnimations": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"herolistSortOrder",
|
||||
"herolistVisibilityFilter",
|
||||
"racesSortOrder",
|
||||
"culturesSortOrder",
|
||||
"culturesVisibilityFilter",
|
||||
"professionsSortOrder",
|
||||
"professionsVisibilityFilter",
|
||||
"professionsGroupVisibilityFilter",
|
||||
"advantagesDisadvantagesCultureRatingVisibility",
|
||||
"talentsSortOrder",
|
||||
"talentsCultureRatingVisibility",
|
||||
"combatTechniquesSortOrder",
|
||||
"specialAbilitiesSortOrder",
|
||||
"spellsSortOrder",
|
||||
"spellsUnfamiliarVisibility",
|
||||
"liturgiesSortOrder",
|
||||
"equipmentSortOrder",
|
||||
"equipmentGroupVisibilityFilter",
|
||||
"enableActiveItemHints"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
// @ts-check
|
||||
/**
|
||||
* @param {"prerelease" | "stable"} channel
|
||||
*/
|
||||
const channelSuffix = channel => {
|
||||
switch (channel) {
|
||||
case "prerelease": return "Insider"
|
||||
case "stable": return ""
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import("./platform.mjs").System} os
|
||||
* @param {"prerelease" | "stable"} channel
|
||||
*/
|
||||
const prefix = (os, channel) => {
|
||||
switch (os) {
|
||||
case "win": return `Optolith${channelSuffix(channel)}Setup`
|
||||
case "linux":
|
||||
case "mac": return `Optolith${channelSuffix(channel)}`
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import("./platform.mjs").System} os
|
||||
*/
|
||||
const extensions = os => {
|
||||
switch (os) {
|
||||
case "win": return [".exe", ".exe.blockmap"]
|
||||
case "linux": return [".AppImage", ".tar.gz"]
|
||||
case "mac": return [".dmg", ".dmg.blockmap", ".zip", ".zip.blockmap"]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import("./platform.mjs").System} os
|
||||
* @param {"prerelease" | "stable"} channel
|
||||
* @param {string} version
|
||||
*/
|
||||
export const getApplicationFileNames = (os, channel, version) =>
|
||||
extensions(os).map(ext => `${prefix(os, channel)}_${version}${ext}`)
|
||||
|
||||
/**
|
||||
* @param {"win" | "mac" | "linux"} os
|
||||
*/
|
||||
export const getUpdateFileName = os => {
|
||||
switch (os) {
|
||||
case "win": return "latest.yml"
|
||||
case "linux": return "latest-linux.yml"
|
||||
default: return "latest-mac.yml"
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
/**
|
||||
* @type {import ("electron-builder") .Configuration}
|
||||
*/
|
||||
module.exports = {
|
||||
appId: "com.lukasobermann.optolith",
|
||||
productName: "Optolith",
|
||||
copyright: "This product was created under a license. Das Schwarze Auge and its logo as well as Aventuria, Dere, Myranor, Riesland, Tharun and Uthuria and their logos are trademarks of Significant GbR. The title and contents of this book are protected under the copyright laws of the United States of America. No part of this publication may be reproduced, stored in retrieval systems or transmitted, in any form or by any means, whether electronic, mechanical, photocopy, recording, or otherwise, without prior written consent by Ulisses Spiele GmbH, Waldems. This publication includes material that is protected under copyright laws by Ulisses Spiele and/or other authors. Such material is used under the Community Content Agreement for the SCRIPTORIUM AVENTURIS. All other original materials in this work is copyright 2017-present by Lukas Obermann and published under the Community Content Agreement for the SCRIPTORIUM AVENTURIS.",
|
||||
directories: {
|
||||
output: "dist"
|
||||
},
|
||||
files: [
|
||||
"app/**/*",
|
||||
"LICENSE"
|
||||
],
|
||||
win: {
|
||||
target: [
|
||||
{
|
||||
target: "nsis",
|
||||
arch: [
|
||||
"x64",
|
||||
"ia32"
|
||||
]
|
||||
}
|
||||
],
|
||||
icon: "app/icon.ico",
|
||||
artifactName: "OptolithSetup_${version}.${ext}"
|
||||
},
|
||||
nsis: {
|
||||
perMachine: true,
|
||||
differentialPackage: true,
|
||||
deleteAppDataOnUninstall: false,
|
||||
},
|
||||
linux: {
|
||||
category: "RolePlaying",
|
||||
executableName: "Optolith",
|
||||
icon: "app",
|
||||
target: [
|
||||
{
|
||||
target: "AppImage",
|
||||
arch: [
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
{
|
||||
target: "tar.gz",
|
||||
arch: [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
],
|
||||
artifactName: "Optolith_${version}.${ext}"
|
||||
},
|
||||
mac: {
|
||||
category: "public.app-category.role-playing-games",
|
||||
type: "distribution",
|
||||
icon: "app/icon.icns",
|
||||
target: [
|
||||
{
|
||||
target: "default",
|
||||
arch: "universal"
|
||||
}
|
||||
],
|
||||
artifactName: "Optolith_${version}.${ext}",
|
||||
hardenedRuntime: true,
|
||||
// entitlements: "deploy/entitlements.mac.plist",
|
||||
// entitlementsInherit: "deploy/entitlements.mac.plist",
|
||||
gatekeeperAssess: false,
|
||||
},
|
||||
dmg: {
|
||||
sign: false,
|
||||
},
|
||||
publish: {
|
||||
"provider": "generic",
|
||||
"url": `${process.env.UPDATE_URL}/\${os}`,
|
||||
"channel": "latest"
|
||||
},
|
||||
// afterSign: notarize,
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
// @ts-check
|
||||
import { notarize } from "./notarize.mjs"
|
||||
|
||||
/**
|
||||
* @type {import("electron-builder").Configuration}
|
||||
*/
|
||||
const config = {
|
||||
appId: "com.lukasobermann.optolith",
|
||||
productName: "Optolith",
|
||||
copyright: "© 2017–present Lukas Obermann. This product was created under a license. Das Schwarze Auge and its logo as well as Aventuria, Dere, Myranor, Riesland, Tharun and Uthuria and their logos are trademarks of Significant GbR. The title and contents of this book are protected under the copyright laws of the United States of America. No part of this publication may be reproduced, stored in retrieval systems or transmitted, in any form or by any means, whether electronic, mechanical, photocopy, recording, or otherwise, without prior written consent by Ulisses Spiele GmbH, Waldems. This publication includes material that is protected under copyright laws by Ulisses Spiele and/or other authors. Such material is used under the Community Content Agreement for the SCRIPTORIUM AVENTURIS. All other original materials in this work is copyright 2017-present by Lukas Obermann and published under the Community Content Agreement for the SCRIPTORIUM AVENTURIS.",
|
||||
directories: {
|
||||
output: "dist"
|
||||
},
|
||||
files: [
|
||||
"app/**/*",
|
||||
"LICENSE"
|
||||
],
|
||||
win: {
|
||||
target: [
|
||||
{
|
||||
target: "nsis",
|
||||
arch: [
|
||||
"x64",
|
||||
"ia32"
|
||||
]
|
||||
}
|
||||
],
|
||||
icon: "app/icon.ico",
|
||||
artifactName: "OptolithSetup_${version}.${ext}"
|
||||
},
|
||||
nsis: {
|
||||
perMachine: true,
|
||||
differentialPackage: true,
|
||||
deleteAppDataOnUninstall: false,
|
||||
},
|
||||
linux: {
|
||||
category: "RolePlaying",
|
||||
executableName: "Optolith",
|
||||
icon: "app",
|
||||
target: [
|
||||
{
|
||||
target: "AppImage",
|
||||
arch: [
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
{
|
||||
target: "tar.gz",
|
||||
arch: [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
],
|
||||
artifactName: "Optolith_${version}.${ext}"
|
||||
},
|
||||
mac: {
|
||||
category: "public.app-category.role-playing-games",
|
||||
type: "distribution",
|
||||
icon: "app/icon.icns",
|
||||
target: [
|
||||
{
|
||||
target: "default",
|
||||
arch: "universal"
|
||||
}
|
||||
],
|
||||
artifactName: "Optolith_${version}.${ext}",
|
||||
entitlements: "deploy/entitlements.mac.plist",
|
||||
entitlementsInherit: "deploy/entitlements.mac.plist",
|
||||
hardenedRuntime: true,
|
||||
gatekeeperAssess: false,
|
||||
},
|
||||
dmg: {
|
||||
sign: false
|
||||
},
|
||||
publish: {
|
||||
"provider": "generic",
|
||||
"url": `${process.env.UPDATE_URL}/\${os}`,
|
||||
"channel": "latest"
|
||||
},
|
||||
afterSign: notarize,
|
||||
}
|
||||
|
||||
export default config
|
||||
@@ -1,6 +1,6 @@
|
||||
// @ts-check
|
||||
const builder = require("electron-builder")
|
||||
const { getSystem } = require("./platform")
|
||||
import builder from "electron-builder"
|
||||
import { getSystem } from "./platform.mjs"
|
||||
|
||||
const [channel] = process.argv.slice(2)
|
||||
|
||||
@@ -10,15 +10,18 @@ if (channel !== "stable" && channel !== "prerelease") {
|
||||
|
||||
const config =
|
||||
channel === "prerelease"
|
||||
? require("./build.prerelease.config.js")
|
||||
: require("./build.config.js")
|
||||
? (await import("./build.prerelease.config.mjs")).default
|
||||
: (await import("./build.config.mjs")).default
|
||||
|
||||
process.on ('unhandledRejection', error => {
|
||||
throw new Error (`Unhandled promise rejection: ${error .toString ()}`);
|
||||
});
|
||||
throw new Error(`Unhandled promise rejection: ${/** @type {Error} */ (error).toString ()}`)
|
||||
})
|
||||
|
||||
const os = getSystem()
|
||||
|
||||
const plaformKey = os === "linux" ? "LINUX" : os === "mac" ? "MAC" : "WINDOWS"
|
||||
|
||||
builder.build ({ config, targets: builder.Platform[plaformKey].createTarget () })
|
||||
await builder.build({
|
||||
config,
|
||||
targets: builder.Platform[plaformKey].createTarget(),
|
||||
})
|
||||
@@ -1,10 +1,13 @@
|
||||
// @ts-check
|
||||
import { notarize } from "./notarize.mjs"
|
||||
|
||||
/**
|
||||
* @type {import ("electron-builder") .Configuration}
|
||||
*/
|
||||
module.exports = {
|
||||
const config = {
|
||||
appId: "com.lukasobermann.optolithinsider",
|
||||
productName: "Optolith Insider",
|
||||
copyright: "This product was created under a license. Das Schwarze Auge and its logo as well as Aventuria, Dere, Myranor, Riesland, Tharun and Uthuria and their logos are trademarks of Significant GbR. The title and contents of this book are protected under the copyright laws of the United States of America. No part of this publication may be reproduced, stored in retrieval systems or transmitted, in any form or by any means, whether electronic, mechanical, photocopy, recording, or otherwise, without prior written consent by Ulisses Spiele GmbH, Waldems. This publication includes material that is protected under copyright laws by Ulisses Spiele and/or other authors. Such material is used under the Community Content Agreement for the SCRIPTORIUM AVENTURIS. All other original materials in this work is copyright 2017-present by Lukas Obermann and published under the Community Content Agreement for the SCRIPTORIUM AVENTURIS.",
|
||||
copyright: "© 2017–present Lukas Obermann. This product was created under a license. Das Schwarze Auge and its logo as well as Aventuria, Dere, Myranor, Riesland, Tharun and Uthuria and their logos are trademarks of Significant GbR. The title and contents of this book are protected under the copyright laws of the United States of America. No part of this publication may be reproduced, stored in retrieval systems or transmitted, in any form or by any means, whether electronic, mechanical, photocopy, recording, or otherwise, without prior written consent by Ulisses Spiele GmbH, Waldems. This publication includes material that is protected under copyright laws by Ulisses Spiele and/or other authors. Such material is used under the Community Content Agreement for the SCRIPTORIUM AVENTURIS. All other original materials in this work is copyright 2017-present by Lukas Obermann and published under the Community Content Agreement for the SCRIPTORIUM AVENTURIS.",
|
||||
directories: {
|
||||
output: "dist/insider"
|
||||
},
|
||||
@@ -62,18 +65,20 @@ module.exports = {
|
||||
}
|
||||
],
|
||||
artifactName: "OptolithInsider_${version}.${ext}",
|
||||
entitlements: "deploy/entitlements.mac.plist",
|
||||
entitlementsInherit: "deploy/entitlements.mac.plist",
|
||||
hardenedRuntime: true,
|
||||
// entitlements: "deploy/entitlements.mac.plist",
|
||||
// entitlementsInherit: "deploy/entitlements.mac.plist",
|
||||
gatekeeperAssess: false,
|
||||
},
|
||||
dmg: {
|
||||
sign: false,
|
||||
sign: false
|
||||
},
|
||||
publish: {
|
||||
"provider": "generic",
|
||||
"url": `${process.env.UPDATE_URL}/insider/\${os}`,
|
||||
"channel": "latest"
|
||||
},
|
||||
// afterSign: notarize,
|
||||
afterSign: notarize,
|
||||
}
|
||||
|
||||
export default config
|
||||
@@ -1,149 +0,0 @@
|
||||
// @ts-check
|
||||
require("dotenv").config()
|
||||
const Client = require ("ssh2-sftp-client")
|
||||
const readline = require ("readline")
|
||||
const fs = require ("fs")
|
||||
const path = require ("path")
|
||||
const semver = require ("semver");
|
||||
const { getSystem, getSystemName } = require("./platform");
|
||||
|
||||
const [channel] = process.argv.slice(2)
|
||||
const os = getSystem()
|
||||
|
||||
if (channel !== "stable" && channel !== "prerelease") {
|
||||
throw new TypeError (`publishToServer requires a specified channel ("stable" or "prerelease"), but it received ${channel}`)
|
||||
}
|
||||
|
||||
if (os !== "win" && os !== "mac" && os !== "linux") {
|
||||
throw new TypeError (`publishToServer requires a specified OS ("win", "mac" or "linux"), but it received ${os}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* Needed env variables:
|
||||
* - `HOST`
|
||||
* - `USERNAME`
|
||||
* - `PASSWORD`
|
||||
* - `ROOT`
|
||||
*/
|
||||
const uploadToServer = async () => {
|
||||
console.log (`Preparing to upload update files for "${getSystemName(os)}" on "${channel}" channel...`)
|
||||
|
||||
const subFolder = os === "win" ? "win" : os === "linux" ? "linux" : "mac"
|
||||
|
||||
const updateYmlName =
|
||||
os === "win"
|
||||
? "latest.yml"
|
||||
: os === "linux"
|
||||
? "latest-linux.yml"
|
||||
: "latest-mac.yml"
|
||||
|
||||
const distPath = channel === "prerelease" ? ["dist", "insider"] : ["dist"]
|
||||
|
||||
const serverPath = `${process.env.ROOT}${channel === "prerelease" ? "/insider" : ""}/${subFolder}`
|
||||
|
||||
const regex =
|
||||
channel === "prerelease"
|
||||
? os === "win"
|
||||
? /^OptolithInsiderSetup_(.+)\.exe$/
|
||||
: os === "linux"
|
||||
? /^OptolithInsider_(.+)\.(?:AppImage|tar\.gz)$/
|
||||
: /^OptolithInsider_(.+)\.(?:zip|dmg)$/
|
||||
: os === "win"
|
||||
? /^OptolithSetup_(.+)\.exe$/
|
||||
: os === "linux"
|
||||
? /^Optolith_(.+)\.(?:AppImage|tar\.gz)$/
|
||||
: /^Optolith_(.+)\.(?:zip|dmg)$/
|
||||
|
||||
const recreateFileNames =
|
||||
channel === "prerelease"
|
||||
? os === "win"
|
||||
? /**
|
||||
* @param {string} v Version
|
||||
*/ v => [`OptolithInsiderSetup_${v}.exe`, `OptolithInsiderSetup_${v}.exe.blockmap`]
|
||||
: os === "linux"
|
||||
? /**
|
||||
* @param {string} v Version
|
||||
*/ v => [`OptolithInsider_${v}.AppImage`, `OptolithInsider_${v}.tar.gz`]
|
||||
: /**
|
||||
* @param {string} v Version
|
||||
*/ v => [`OptolithInsider_${v}.dmg`, `OptolithInsider_${v}.dmg.blockmap`, `OptolithInsider_${v}.zip`]
|
||||
: os === "win"
|
||||
? /**
|
||||
* @param {string} v Version
|
||||
*/ v => [`OptolithSetup_${v}.exe`, `OptolithSetup_${v}.exe.blockmap`]
|
||||
: os === "linux"
|
||||
? /**
|
||||
* @param {string} v Version
|
||||
*/ v => [`Optolith_${v}.AppImage`, `Optolith_${v}.tar.gz`]
|
||||
: /**
|
||||
* @param {string} v Version
|
||||
*/ v => [`Optolith_${v}.dmg`, `Optolith_${v}.dmg.blockmap`, `Optolith_${v}.zip`]
|
||||
|
||||
const allFiles = await fs.promises.readdir (path.join (...distPath))
|
||||
|
||||
const allInstallerNames = allFiles .filter (fileName => regex .test (fileName))
|
||||
|
||||
const allInstallerVersionsSorted =
|
||||
allInstallerNames .map (fileName => regex .exec (fileName) [1])
|
||||
.sort (semver .rcompare)
|
||||
|
||||
if (allInstallerVersionsSorted .length < 1) {
|
||||
throw new RangeError ("Array of sorted installer versions is empty")
|
||||
}
|
||||
|
||||
const latestFileNames = recreateFileNames (allInstallerVersionsSorted [0])
|
||||
|
||||
console.log(`Files to upload: ${[updateYmlName, ...latestFileNames] .join (", ")}.`);
|
||||
|
||||
// Actual server connection
|
||||
|
||||
const client = new Client ()
|
||||
|
||||
console.log("Connecting to server ...");
|
||||
|
||||
await client.connect ({
|
||||
host: process.env.HOST,
|
||||
username: process.env.USERNAME,
|
||||
password: process.env.PASSWORD,
|
||||
})
|
||||
|
||||
console.log(`Server connection established.`);
|
||||
|
||||
for (const fileName of latestFileNames) {
|
||||
console.log(`Uploading ${fileName}`);
|
||||
|
||||
await client.fastPut (
|
||||
path.join (...distPath, fileName),
|
||||
`${serverPath}/${fileName}`,
|
||||
{
|
||||
step: !process.env.CI ? (totalTransferred, _, total) => {
|
||||
const percent = Math.floor (totalTransferred / total * 100)
|
||||
console.log(`Progress: ${percent}%`);
|
||||
} : undefined
|
||||
}
|
||||
)
|
||||
|
||||
console.log(`Upload done: ${fileName}.`);
|
||||
}
|
||||
|
||||
console.log(`Uploading ${updateYmlName} ...`);
|
||||
|
||||
await client.fastPut (
|
||||
path.join (...distPath, updateYmlName),
|
||||
`${serverPath}/${updateYmlName}`,
|
||||
{
|
||||
step: !process.env.CI ? (totalTransferred, _, total) => {
|
||||
const percent = Math.floor (totalTransferred / total * 100)
|
||||
console.log(`Progress: ${percent}%`);
|
||||
} : undefined
|
||||
}
|
||||
)
|
||||
|
||||
console.log(`Upload done: ${updateYmlName}.`);
|
||||
|
||||
await client.end ()
|
||||
|
||||
console.log("Closed server connection.");
|
||||
}
|
||||
|
||||
uploadToServer()
|
||||
@@ -0,0 +1,52 @@
|
||||
// @ts-check
|
||||
import packageJson from "../package.json" assert { type: "json" }
|
||||
import { getApplicationFileNames, getUpdateFileName } from "./assetNames.mjs"
|
||||
import { getLocalPath } from "./localPath.mjs"
|
||||
import { getSystem, getSystemName } from "./platform.mjs"
|
||||
import { run, upload } from "./remoteConnection.mjs"
|
||||
import { getRemotePath } from "./remotePath.mjs"
|
||||
|
||||
/**
|
||||
* Needed env variables:
|
||||
* - `HOST`
|
||||
* - `USERNAME`
|
||||
* - `PASSWORD`
|
||||
* - `ROOT`
|
||||
*
|
||||
* Optional env variables:
|
||||
* - `CI`
|
||||
*/
|
||||
const {
|
||||
HOST,
|
||||
USERNAME,
|
||||
PASSWORD,
|
||||
ROOT = "/",
|
||||
CI,
|
||||
} = process.env
|
||||
|
||||
const [channel] = process.argv.slice(2)
|
||||
const os = getSystem()
|
||||
|
||||
if (channel !== "stable" && channel !== "prerelease") {
|
||||
throw new TypeError(`publishToServer requires a specified channel ("stable" or "prerelease"), but it received ${channel}`)
|
||||
}
|
||||
|
||||
console.log(`Preparing to upload update files for "${getSystemName(os)}" on "${channel}" channel...`)
|
||||
|
||||
const localDir = getLocalPath(channel)
|
||||
const remoteDir = getRemotePath(ROOT, channel, os)
|
||||
|
||||
const updateFileName = getUpdateFileName(os)
|
||||
const applicationFileNames = getApplicationFileNames(os, channel, packageJson.version)
|
||||
|
||||
console.log(`Files to upload: ${[updateFileName, ...applicationFileNames] .join (", ")}.`)
|
||||
|
||||
await run({ host: HOST, username: USERNAME, password: PASSWORD }, async client => {
|
||||
for (const applicationFileName of applicationFileNames) {
|
||||
await upload(client, localDir, remoteDir, applicationFileName)
|
||||
}
|
||||
|
||||
await upload(client, localDir, remoteDir, updateFileName)
|
||||
})
|
||||
|
||||
console.log(`Uploading files finished successfully.`)
|
||||
@@ -2,7 +2,9 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
// @ts-check
|
||||
import { join } from "path"
|
||||
|
||||
/**
|
||||
* @param {"prerelease" | "stable"} channel
|
||||
*/
|
||||
export const getLocalPath = channel => {
|
||||
switch (channel) {
|
||||
case "prerelease": return join("dist", "insider")
|
||||
case "stable": return join("dist")
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
// @ts-check
|
||||
|
||||
const { notarize } = require ('electron-notarize')
|
||||
|
||||
/**
|
||||
* @param context {import("electron-builder").AfterPackContext}
|
||||
*/
|
||||
exports.notarize = async context => {
|
||||
const { electronPlatformName, appOutDir } = context
|
||||
|
||||
if (electronPlatformName === 'darwin') {
|
||||
const appName = context.packager.appInfo.productFilename
|
||||
|
||||
console.log (`Notarizing "${appName}.app"...`)
|
||||
|
||||
await notarize ({
|
||||
appBundleId: 'com.lukasobermann.optolith',
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: process.env.APPLEID,
|
||||
appleIdPassword: process.env.APPLEIDPASS,
|
||||
})
|
||||
|
||||
console.log (`Notarization successful`)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// @ts-check
|
||||
import { notarize as electronNotarize } from 'electron-notarize'
|
||||
|
||||
/**
|
||||
* @param context {import("electron-builder").AfterPackContext}
|
||||
*/
|
||||
export const notarize = async (context) => {
|
||||
const { electronPlatformName, appOutDir } = context
|
||||
|
||||
if (electronPlatformName === 'darwin') {
|
||||
const appName = context.packager.appInfo.productFilename
|
||||
|
||||
console.log(`Notarizing "${appName}.app"...`)
|
||||
|
||||
await electronNotarize({
|
||||
tool: "notarytool",
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: /** @type {string} */ (process.env.APPLEID),
|
||||
appleIdPassword: /** @type {string} */ (process.env.APPLEIDPASS),
|
||||
teamId: /** @type {string} */ (process.env.TEAMID),
|
||||
})
|
||||
|
||||
console.log(`Notarization successful`)
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
// @ts-check
|
||||
const os = require ("os")
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* @typedef {"win" | "mac" | "linux"} System
|
||||
* @returns {System}
|
||||
*/
|
||||
getSystem: () => {
|
||||
switch (os.platform()) {
|
||||
case "win32":
|
||||
return "win"
|
||||
case "darwin":
|
||||
return "mac"
|
||||
default:
|
||||
return "linux"
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @param {System} system
|
||||
*/
|
||||
getSystemName: system => {
|
||||
switch (system) {
|
||||
case "win":
|
||||
return "Windows"
|
||||
case "mac":
|
||||
return "macOS"
|
||||
case "linux":
|
||||
return "Linux"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// @ts-check
|
||||
import { platform } from "os"
|
||||
|
||||
/**
|
||||
* @typedef {"win" | "mac" | "linux"} System
|
||||
* @returns {System}
|
||||
*/
|
||||
export const getSystem = () => {
|
||||
switch (platform()) {
|
||||
case "win32": return "win"
|
||||
case "darwin": return "mac"
|
||||
default: return "linux"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {System} system
|
||||
*/
|
||||
export const getSystemName = system => {
|
||||
switch (system) {
|
||||
case "win": return "Windows"
|
||||
case "mac": return "macOS"
|
||||
case "linux": return "Linux"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// @ts-check
|
||||
import { join } from "path"
|
||||
import { join as joinPosix } from "path/posix"
|
||||
import Client from "ssh2-sftp-client"
|
||||
|
||||
/**
|
||||
* @param {Client.ConnectOptions} options
|
||||
* @param {(client: Client) => Promise<void>} action
|
||||
*/
|
||||
export const run = async (options, action) => {
|
||||
const client = new Client()
|
||||
console.log("Connecting to server ...")
|
||||
await client.connect(options)
|
||||
console.log(`Server connection established.`)
|
||||
await action(client)
|
||||
await client.end ()
|
||||
console.log("Closed server connection.")
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Client} client
|
||||
* @param {string} localDir
|
||||
* @param {string} remoteDir
|
||||
* @param {string} fileName
|
||||
*/
|
||||
export const upload = async (client, localDir, remoteDir, fileName) => {
|
||||
console.log(`Uploading ${fileName} ...`);
|
||||
|
||||
await client.fastPut (
|
||||
join (localDir, fileName),
|
||||
joinPosix (remoteDir, fileName),
|
||||
{
|
||||
step: !process.env.CI ? (totalTransferred, _, total) => {
|
||||
const percent = Math.floor (totalTransferred / total * 100)
|
||||
console.log(`Progress: ${percent}%`);
|
||||
} : undefined
|
||||
}
|
||||
)
|
||||
|
||||
console.log(`Upload done: ${fileName}.`);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// @ts-check
|
||||
import { join } from "path/posix"
|
||||
|
||||
/**
|
||||
* @param {"prerelease" | "stable"} channel
|
||||
*/
|
||||
const remoteChannelPath = channel => {
|
||||
switch (channel) {
|
||||
case "prerelease": return "insider"
|
||||
case "stable": return "."
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import("./platform.mjs").System} os
|
||||
*/
|
||||
const remoteOsPath = os => {
|
||||
switch (os) {
|
||||
case "win": return "win"
|
||||
case "linux": return "linux"
|
||||
default: return "mac"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} root
|
||||
* @param {"prerelease" | "stable"} channel
|
||||
* @param {import("./platform.mjs").System} os
|
||||
*/
|
||||
export const getRemotePath = (root, channel, os) =>
|
||||
join(root, remoteChannelPath(channel), remoteOsPath(os))
|
||||
@@ -0,0 +1,16 @@
|
||||
// @ts-check
|
||||
import { join } from "node:path"
|
||||
import { jsonSchema } from "optolith-tsjsonschemamd/renderers"
|
||||
|
||||
/** @type {import("optolith-tsjsonschemamd").GeneratorOptions} */
|
||||
export default {
|
||||
sourceDir: join("src", "shared", "schema"),
|
||||
outputs: [
|
||||
{
|
||||
targetDir: join("src", "assets", "schema"),
|
||||
renderer: jsonSchema({ spec: "Draft_07" }),
|
||||
}
|
||||
],
|
||||
clean: true,
|
||||
verbose: false
|
||||
}
|
||||
Generated
+8156
-7992
File diff suppressed because it is too large
Load Diff
+39
-56
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "optolith",
|
||||
"productName": "Optolith",
|
||||
"version": "1.5.1-alpha.2",
|
||||
"version": "2.0.0-alpha.1",
|
||||
"description": "A generator for heroes for the P&P-RPG 'The Dark Eye'.",
|
||||
"author": {
|
||||
"name": "Lukas Obermann",
|
||||
@@ -9,35 +9,28 @@
|
||||
},
|
||||
"homepage": "https://optolith.app",
|
||||
"license": "MPL-2.0",
|
||||
"main": "app/main.js",
|
||||
"main": ".webpack/main.js",
|
||||
"dependencies": {
|
||||
"@electron/remote": "^2.0.4",
|
||||
"@glennsl/bs-json": "5.0.2",
|
||||
"@reduxjs/toolkit": "^1.9.5",
|
||||
"adm-zip": "^0.5.1",
|
||||
"ajv": "6.12.6",
|
||||
"bs-platform": "8.3.2",
|
||||
"electron-devtools-installer": "3.1.1",
|
||||
"electron-log": "4.2.4",
|
||||
"electron-updater": "^4.6.1",
|
||||
"ajv": "^8.12.0",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"electron-extension-installer": "^1.2.0",
|
||||
"electron-log": "^4.4.8",
|
||||
"electron-updater": "^5.0.5",
|
||||
"electron-window-state": "5.0.3",
|
||||
"moment": "2.25.3",
|
||||
"moment": "^2.29.4",
|
||||
"mousetrap": "1.6.5",
|
||||
"react": "16.13.1",
|
||||
"react-custom-scrollbars": "4.2.1",
|
||||
"react-dom": "16.13.1",
|
||||
"optolith-database-schema": "^0.12.0",
|
||||
"react": "^18.2.0",
|
||||
"react-custom-scrollbars-2": "^4.5.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-markdown": "^8.0.0",
|
||||
"react-portal": "4.2.1",
|
||||
"react-redux": "7.2.1",
|
||||
"react-textfit": "1.1.0",
|
||||
"reason-react": "0.9.1",
|
||||
"reductive": "2.0.1",
|
||||
"redux": "4.0.5",
|
||||
"react-redux": "^8.0.7",
|
||||
"redux-devtools-extension": "2.13.8",
|
||||
"redux-thunk": "2.3.0",
|
||||
"rehype-raw": "^5.1.0",
|
||||
"remark-breaks": "^2.0.2",
|
||||
"remark-gfm": "^3.0.1",
|
||||
"reselect": "4.0.0",
|
||||
"semver": "7.3.2",
|
||||
"tslib": "^2.3.1",
|
||||
"yaml": "1.10.0"
|
||||
@@ -45,41 +38,37 @@
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "11.0.0",
|
||||
"@commitlint/config-conventional": "11.0.0",
|
||||
"@glennsl/bs-jest": "^0.7.0",
|
||||
"@types/classnames": "2.2.11",
|
||||
"@types/jest": "26.0.15",
|
||||
"@types/mousetrap": "1.6.4",
|
||||
"@types/node": "14.14.7",
|
||||
"@types/react": "16.9.56",
|
||||
"@types/react-custom-scrollbars": "4.0.7",
|
||||
"@types/react-dom": "16.9.9",
|
||||
"@types/react-portal": "4.0.2",
|
||||
"@types/node": "^20.2.5",
|
||||
"@types/react": "^18.2.7",
|
||||
"@types/react-dom": "^18.2.4",
|
||||
"@types/react-redux": "7.1.11",
|
||||
"@types/semver": "7.3.4",
|
||||
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
||||
"@typescript-eslint/parser": "^5.10.0",
|
||||
"custom-env": "2.0.1",
|
||||
"dotenv": "8.2.0",
|
||||
"electron": "^17.0.0",
|
||||
"electron-builder": "^22.14.5",
|
||||
"electron-notarize": "0.3.0",
|
||||
"css-loader": "^6.8.1",
|
||||
"electron": "^24.1.3",
|
||||
"electron-builder": "^23.1.0",
|
||||
"electron-notarize": "^1.2.1",
|
||||
"eslint": "^8.7.0",
|
||||
"eslint-plugin-react": "^7.28.0",
|
||||
"eslint-plugin-react-hooks": "^4.3.0",
|
||||
"eslint-plugin-tsdoc": "^0.2.14",
|
||||
"fs-extra": "9.0.1",
|
||||
"gentype": "3.38.0",
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
"husky": "^4.3.8",
|
||||
"jest": "^26.6.3",
|
||||
"sass": "1.29.0",
|
||||
"ssh2-sftp-client": "^7.2.2",
|
||||
"glob": "^10.2.6",
|
||||
"html-webpack-plugin": "^5.5.1",
|
||||
"mini-css-extract-plugin": "^2.7.6",
|
||||
"optolith-tsjsonschemamd": "^0.9.3",
|
||||
"resolve-url-loader": "^5.0.0",
|
||||
"sass": "^1.62.1",
|
||||
"sass-loader": "^13.3.1",
|
||||
"ssh2-sftp-client": "^9.0.1",
|
||||
"standard-version": "^9.3.1",
|
||||
"ts-jest": "^26.5.6",
|
||||
"ts-loader": "^9.2.6",
|
||||
"typescript": "^4.5.5",
|
||||
"webpack": "^5.67.0",
|
||||
"webpack-cli": "^4.9.2"
|
||||
"ts-jest": "^29.1.0",
|
||||
"ts-loader": "^9.4.2",
|
||||
"tsx": "^3.12.7",
|
||||
"typescript": "^5.0.4",
|
||||
"webpack": "^5.84.1",
|
||||
"webpack-cli": "^5.1.1"
|
||||
},
|
||||
"scripts": {
|
||||
"prerelease:win": "set NODE_ENV=development && node ./deploy/buildInsiderWin.js",
|
||||
@@ -90,25 +79,19 @@
|
||||
"stable:mac": "NODE_ENV=production node ./deploy/buildMac.js",
|
||||
"css:build": "sass --style=compressed src/Main.scss app/main.css",
|
||||
"css:watch": "sass --watch --style=compressed src/Main.scss app/main.css",
|
||||
"build": "npm run re:build && npm run css:build && npm run js:build",
|
||||
"build": "npm run ts:build && npm run css:build && npm run js:build",
|
||||
"js:build": "webpack",
|
||||
"js:watch": "webpack -w",
|
||||
"ts:build": "tsc",
|
||||
"ts:watch": "tsc -w",
|
||||
"re:build": "bsb -make-world",
|
||||
"re:watch": "bsb -make-world -w",
|
||||
"re:clean": "bsb -clean-world",
|
||||
"createschemas": "otjsmd",
|
||||
"lint": "eslint \"src/\" --ext \".ts\" --ext \".tsx\"",
|
||||
"start": "electron .",
|
||||
"test": "jest",
|
||||
"test": "glob -c \"node --loader tsx --test\" \"./src/shared/**/*.test.ts\"",
|
||||
"circ": "madge -c ./src",
|
||||
"release:main": "standard-version --skip.commit --skip.tag",
|
||||
"release:pre": "standard-version --prerelease=alpha"
|
||||
},
|
||||
"repository": "github:elyukai/optolith-client",
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
||||
}
|
||||
}
|
||||
"type": "module"
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import { getAvailableAPMap } from "../Selectors/adventurePointsSelectors"
|
||||
import { getIsInCharacterCreation } from "../Selectors/phaseSelectors"
|
||||
import { getAddedArcaneEnergyPoints, getAddedKarmaPoints, getAddedLifePoints, getCurrentHeroPresent, getWikiAttributes } from "../Selectors/stateSelectors"
|
||||
import { getMissingAP } from "../Utilities/AdventurePoints/adventurePointsUtils"
|
||||
import { getAPForInc } from "../Utilities/IC.gen"
|
||||
import { getAPForInc, ImprovementCost } from "../Utilities/ImprovementCost"
|
||||
import { getAreSufficientAPAvailableForIncrease } from "../Utilities/Increasable/increasableUtils"
|
||||
import { pipe, pipe_ } from "../Utilities/pipe"
|
||||
import { ReduxAction } from "./Actions"
|
||||
@@ -84,7 +84,7 @@ export const addLifePoint: ReduxAction<Promise<void>> =
|
||||
liftM2 (pipe (
|
||||
|
||||
// get AP for added points
|
||||
curryN (getAPForInc) ("D"),
|
||||
curryN (getAPForInc) (ImprovementCost.D),
|
||||
|
||||
// AP are passed to result and result finally gets the available AP
|
||||
getMissingAP (getIsInCharacterCreation (state))
|
||||
@@ -120,7 +120,7 @@ export const addArcaneEnergyPoint: ReduxAction<Promise<void>> =
|
||||
liftM2 (pipe (
|
||||
|
||||
// get AP for added points
|
||||
curryN (getAPForInc) ("D"),
|
||||
curryN (getAPForInc) (ImprovementCost.D),
|
||||
|
||||
// AP are passed to result and result finally gets the available AP
|
||||
getMissingAP (getIsInCharacterCreation (state))
|
||||
@@ -156,7 +156,7 @@ export const addKarmaPoint: ReduxAction<Promise<void>> =
|
||||
liftM2 (pipe (
|
||||
|
||||
// get AP for added points
|
||||
curryN (getAPForInc) ("D"),
|
||||
curryN (getAPForInc) (ImprovementCost.D),
|
||||
|
||||
// AP are passed to result and result finally gets the available AP
|
||||
getMissingAP (getIsInCharacterCreation (state))
|
||||
|
||||
@@ -2,7 +2,6 @@ import { bind, bindF, fromJust, isJust, isNothing, join, liftM2 } from "../../Da
|
||||
import { lookup } from "../../Data/OrderedMap"
|
||||
import { Record } from "../../Data/Record"
|
||||
import * as ActionTypes from "../Constants/ActionTypes"
|
||||
import { icFromJs } from "../Constants/Groups"
|
||||
import { ChantsSortOptions } from "../Models/Config"
|
||||
import { HeroModel } from "../Models/Hero/HeroModel"
|
||||
import { LiturgicalChant } from "../Models/Wiki/LiturgicalChant"
|
||||
@@ -10,7 +9,7 @@ import { getAvailableAPMap } from "../Selectors/adventurePointsSelectors"
|
||||
import { getIsInCharacterCreation } from "../Selectors/phaseSelectors"
|
||||
import { getCurrentHeroPresent, getLiturgicalChants, getWikiLiturgicalChants } from "../Selectors/stateSelectors"
|
||||
import { getMissingAP } from "../Utilities/AdventurePoints/adventurePointsUtils"
|
||||
import { getAPForActivatation } from "../Utilities/IC.gen"
|
||||
import { getAPForActivatation } from "../Utilities/ImprovementCost"
|
||||
import { getAreSufficientAPAvailableForIncrease } from "../Utilities/Increasable/increasableUtils"
|
||||
import { pipe_ } from "../Utilities/pipe"
|
||||
import { ReduxAction } from "./Actions"
|
||||
@@ -45,7 +44,6 @@ export const addLiturgicalChant =
|
||||
(pipe_ (
|
||||
staticLiturgicalChant,
|
||||
LiturgicalChant.A.ic,
|
||||
icFromJs,
|
||||
getAPForActivatation
|
||||
)))
|
||||
)
|
||||
|
||||
@@ -2,7 +2,6 @@ import { bind, bindF, fromJust, isJust, isNothing, join, liftM2 } from "../../Da
|
||||
import { lookup } from "../../Data/OrderedMap"
|
||||
import { Record } from "../../Data/Record"
|
||||
import * as ActionTypes from "../Constants/ActionTypes"
|
||||
import { icFromJs } from "../Constants/Groups"
|
||||
import { SpellsSortOptions } from "../Models/Config"
|
||||
import { HeroModel } from "../Models/Hero/HeroModel"
|
||||
import { Cantrip } from "../Models/Wiki/Cantrip"
|
||||
@@ -11,7 +10,7 @@ import { getAvailableAPMap } from "../Selectors/adventurePointsSelectors"
|
||||
import { getIsInCharacterCreation } from "../Selectors/phaseSelectors"
|
||||
import { getCurrentHeroPresent, getSpells, getWikiCantrips, getWikiSpells } from "../Selectors/stateSelectors"
|
||||
import { getMissingAP } from "../Utilities/AdventurePoints/adventurePointsUtils"
|
||||
import { getAPForActivatation } from "../Utilities/IC.gen"
|
||||
import { getAPForActivatation } from "../Utilities/ImprovementCost"
|
||||
import { getAreSufficientAPAvailableForIncrease } from "../Utilities/Increasable/increasableUtils"
|
||||
import { pipe_ } from "../Utilities/pipe"
|
||||
import { ReduxAction } from "./Actions"
|
||||
@@ -43,7 +42,7 @@ export const addSpell =
|
||||
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
|
||||
join,
|
||||
bindF (getMissingAP (getIsInCharacterCreation (state))
|
||||
(pipe_ (staticSpell, Spell.A.ic, icFromJs, getAPForActivatation)))
|
||||
(pipe_ (staticSpell, Spell.A.ic, getAPForActivatation)))
|
||||
)
|
||||
|
||||
if (isNothing (missingAPForInc)) {
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
/* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
|
||||
@@ -1,97 +0,0 @@
|
||||
type heroListSortOptions =
|
||||
| Name
|
||||
| DateModified;
|
||||
|
||||
type heroListVisibilityFilter =
|
||||
| All
|
||||
| Own
|
||||
| Shared;
|
||||
|
||||
type racesSortOptions =
|
||||
| Name
|
||||
| Cost;
|
||||
|
||||
type culturesSortOptions =
|
||||
| Name
|
||||
| Cost;
|
||||
|
||||
type culturesVisibilityFilter =
|
||||
| All
|
||||
| Common;
|
||||
|
||||
type professionsSortOptions =
|
||||
| Name
|
||||
| Cost;
|
||||
|
||||
type professionsVisibilityFilter =
|
||||
| All
|
||||
| Common;
|
||||
|
||||
type professionsGroupVisibilityFilter =
|
||||
| All
|
||||
| Mundane
|
||||
| Magical
|
||||
| Blessed;
|
||||
|
||||
type skillsSortOptions =
|
||||
| Name
|
||||
| Group
|
||||
| IC;
|
||||
|
||||
type specialAbilitiesSortOptions =
|
||||
| Name
|
||||
| Group;
|
||||
|
||||
type combatTechniquesSortOptions =
|
||||
| Name
|
||||
| Group
|
||||
| IC;
|
||||
|
||||
type spellsSortOptions =
|
||||
| Name
|
||||
| Group
|
||||
| Property
|
||||
| IC;
|
||||
|
||||
type liturgicalChantsSortOptions =
|
||||
| Name
|
||||
| Group
|
||||
| IC;
|
||||
|
||||
type equipmentSortOptions =
|
||||
| Name
|
||||
| Group
|
||||
| Where
|
||||
| Weight;
|
||||
|
||||
type theme =
|
||||
| Dark
|
||||
| Light;
|
||||
|
||||
type tab =
|
||||
| Herolist
|
||||
| Grouplist
|
||||
| Wiki
|
||||
| Faq
|
||||
| Imprint
|
||||
| ThirdPartyLicenses
|
||||
| LastChanges
|
||||
| Profile
|
||||
| PersonalData
|
||||
| CharacterSheet
|
||||
| Pact
|
||||
| Rules
|
||||
| Races
|
||||
| Cultures
|
||||
| Professions
|
||||
| Attributes
|
||||
| Advantages
|
||||
| Disadvantages
|
||||
| Skills
|
||||
| CombatTechniques
|
||||
| SpecialAbilities
|
||||
| Spells
|
||||
| LiturgicalChants
|
||||
| Equipment
|
||||
| ZoneArmor
|
||||
| Pets;
|
||||
@@ -1,4 +1,3 @@
|
||||
import { t as _IC } from "../Utilities/IC.gen"
|
||||
|
||||
export enum ProfessionGroup {
|
||||
Mundane = 1,
|
||||
@@ -26,36 +25,6 @@ export enum ProfessionSubGroup {
|
||||
BlessedOnesOfTheTwelveGods = 1,
|
||||
}
|
||||
|
||||
export enum IC {
|
||||
A = 1,
|
||||
B,
|
||||
C,
|
||||
D,
|
||||
E,
|
||||
}
|
||||
|
||||
export const icFromJs = (x: IC): _IC => {
|
||||
switch (x) {
|
||||
case IC.A: return "A"
|
||||
case IC.B: return "B"
|
||||
case IC.C: return "C"
|
||||
case IC.D: return "D"
|
||||
case IC.E: return "E"
|
||||
default: throw new TypeError (`icFromJs: ${x} is not an IC`)
|
||||
}
|
||||
}
|
||||
|
||||
export const icToJs = (x: _IC): IC => {
|
||||
switch (x) {
|
||||
case "A": return IC.A
|
||||
case "B": return IC.B
|
||||
case "C": return IC.C
|
||||
case "D": return IC.D
|
||||
case "E": return IC.E
|
||||
default: throw new TypeError (`icToJs: ${x} is not an IC`)
|
||||
}
|
||||
}
|
||||
|
||||
export enum SkillGroup {
|
||||
Physical = 1,
|
||||
Social = 2,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,88 +0,0 @@
|
||||
/* TypeScript file generated from Id.re by genType. */
|
||||
/* eslint-disable import/first */
|
||||
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type t =
|
||||
{ NAME: "ExperienceLevel"; VAL: number }
|
||||
| { NAME: "Race"; VAL: number }
|
||||
| { NAME: "Culture"; VAL: number }
|
||||
| { NAME: "Profession"; VAL: number }
|
||||
| { NAME: "Attribute"; VAL: number }
|
||||
| { NAME: "Advantage"; VAL: number }
|
||||
| { NAME: "Disadvantage"; VAL: number }
|
||||
| { NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "Curse"; VAL: number }
|
||||
| { NAME: "ElvenMagicalSong"; VAL: number }
|
||||
| { NAME: "DominationRitual"; VAL: number }
|
||||
| { NAME: "MagicalMelody"; VAL: number }
|
||||
| { NAME: "MagicalDance"; VAL: number }
|
||||
| { NAME: "RogueSpell"; VAL: number }
|
||||
| { NAME: "AnimistForce"; VAL: number }
|
||||
| { NAME: "GeodeRitual"; VAL: number }
|
||||
| { NAME: "ZibiljaRitual"; VAL: number }
|
||||
| { NAME: "Cantrip"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number }
|
||||
| { NAME: "Blessing"; VAL: number }
|
||||
| { NAME: "SpecialAbility"; VAL: number }
|
||||
| { NAME: "Item"; VAL: number }
|
||||
| { NAME: "EquipmentPackage"; VAL: number }
|
||||
| { NAME: "HitZoneArmor"; VAL: number }
|
||||
| { NAME: "Familiar"; VAL: number }
|
||||
| { NAME: "Animal"; VAL: number }
|
||||
| { NAME: "FocusRule"; VAL: number }
|
||||
| { NAME: "OptionalRule"; VAL: number }
|
||||
| { NAME: "Condition"; VAL: number }
|
||||
| { NAME: "State"; VAL: number };
|
||||
export type Id = t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type activatable =
|
||||
{ NAME: "Advantage"; VAL: number }
|
||||
| { NAME: "Disadvantage"; VAL: number }
|
||||
| { NAME: "SpecialAbility"; VAL: number };
|
||||
export type ActivatableId = activatable;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type activatableAndSkill =
|
||||
{ NAME: "Advantage"; VAL: number }
|
||||
| { NAME: "Disadvantage"; VAL: number }
|
||||
| { NAME: "SpecialAbility"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number };
|
||||
export type ActivatableAndSkillId = activatableAndSkill;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type activatableSkill =
|
||||
{ NAME: "Spell"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number };
|
||||
export type ActivatableSkillId = activatableSkill;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type permanentSkill =
|
||||
{ NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number };
|
||||
export type PermanentSkillId = permanentSkill;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type selectOption =
|
||||
{ NAME: "Generic"; VAL: number }
|
||||
| { NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "Cantrip"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number }
|
||||
| { NAME: "Blessing"; VAL: number };
|
||||
export type SelectOptionId = selectOption;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type hitZoneArmorZoneItem =
|
||||
{ tag: "Template"; value: number }
|
||||
| { tag: "Custom"; value: number };
|
||||
export type HitZoneArmorZoneItemId = hitZoneArmorZoneItem;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type phase = "Outline" | "Definition" | "Advancement";
|
||||
export type Phase = phase;
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,956 +0,0 @@
|
||||
/* TypeScript file generated from Ids.re by genType. */
|
||||
/* eslint-disable import/first */
|
||||
|
||||
|
||||
// tslint:disable-next-line:no-var-requires
|
||||
const IdsBS = require('./Ids.bs');
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type id =
|
||||
{ NAME: "ExperienceLevel"; VAL: number }
|
||||
| { NAME: "Race"; VAL: number }
|
||||
| { NAME: "Culture"; VAL: number }
|
||||
| { NAME: "Profession"; VAL: number }
|
||||
| { NAME: "Attribute"; VAL: number }
|
||||
| { NAME: "Advantage"; VAL: number }
|
||||
| { NAME: "Disadvantage"; VAL: number }
|
||||
| { NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "Curse"; VAL: number }
|
||||
| { NAME: "ElvenMagicalSong"; VAL: number }
|
||||
| { NAME: "DominationRitual"; VAL: number }
|
||||
| { NAME: "MagicalMelody"; VAL: number }
|
||||
| { NAME: "MagicalDance"; VAL: number }
|
||||
| { NAME: "RogueSpell"; VAL: number }
|
||||
| { NAME: "AnimistForce"; VAL: number }
|
||||
| { NAME: "GeodeRitual"; VAL: number }
|
||||
| { NAME: "ZibiljaRitual"; VAL: number }
|
||||
| { NAME: "Cantrip"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number }
|
||||
| { NAME: "Blessing"; VAL: number }
|
||||
| { NAME: "SpecialAbility"; VAL: number }
|
||||
| { NAME: "Item"; VAL: number }
|
||||
| { NAME: "EquipmentPackage"; VAL: number }
|
||||
| { NAME: "HitZoneArmor"; VAL: number }
|
||||
| { NAME: "Familiar"; VAL: number }
|
||||
| { NAME: "Animal"; VAL: number }
|
||||
| { NAME: "FocusRule"; VAL: number }
|
||||
| { NAME: "OptionalRule"; VAL: number }
|
||||
| { NAME: "Condition"; VAL: number }
|
||||
| { NAME: "State"; VAL: number };
|
||||
export type Id = id;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type activatableId =
|
||||
{ NAME: "Advantage"; VAL: number }
|
||||
| { NAME: "Disadvantage"; VAL: number }
|
||||
| { NAME: "SpecialAbility"; VAL: number };
|
||||
export type ActivatableId = activatableId;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type activatableAndSkillId =
|
||||
{ NAME: "Advantage"; VAL: number }
|
||||
| { NAME: "Disadvantage"; VAL: number }
|
||||
| { NAME: "SpecialAbility"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number };
|
||||
export type ActivatableAndSkillId = activatableAndSkillId;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type activatableSkillId =
|
||||
{ NAME: "Spell"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number };
|
||||
export type ActivatableSkillId = activatableSkillId;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type skillId =
|
||||
{ NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number };
|
||||
export type SkillId = skillId;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type selectOptionId =
|
||||
{ NAME: "Generic"; VAL: number }
|
||||
| { NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "Cantrip"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number }
|
||||
| { NAME: "Blessing"; VAL: number };
|
||||
export type SelectOptionId = selectOptionId;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type hitZoneArmorZoneItemId =
|
||||
{ tag: "Template"; value: number }
|
||||
| { tag: "Custom"; value: number };
|
||||
export type HitZoneArmorZoneItemId = hitZoneArmorZoneItemId;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Phase_t = "Outline" | "Definition" | "Advancement";
|
||||
export type Phase = Phase_t;
|
||||
|
||||
export const Phase_rcp: number = IdsBS.Phase.rcp;
|
||||
|
||||
export const Phase_creation: number = IdsBS.Phase.creation;
|
||||
|
||||
export const Phase_inGame: number = IdsBS.Phase.inGame;
|
||||
|
||||
export const ExperienceLevelId_inexperienced: string = IdsBS.ExperienceLevelId.inexperienced;
|
||||
|
||||
export const ExperienceLevelId_ordinary: string = IdsBS.ExperienceLevelId.ordinary;
|
||||
|
||||
export const ExperienceLevelId_experienced: string = IdsBS.ExperienceLevelId.experienced;
|
||||
|
||||
export const ExperienceLevelId_competent: string = IdsBS.ExperienceLevelId.competent;
|
||||
|
||||
export const ExperienceLevelId_masterly: string = IdsBS.ExperienceLevelId.masterly;
|
||||
|
||||
export const ExperienceLevelId_brilliant: string = IdsBS.ExperienceLevelId.brilliant;
|
||||
|
||||
export const ExperienceLevelId_legendary: string = IdsBS.ExperienceLevelId.legendary;
|
||||
|
||||
export const RaceId_humans: string = IdsBS.RaceId.humans;
|
||||
|
||||
export const RaceId_elves: string = IdsBS.RaceId.elves;
|
||||
|
||||
export const RaceId_halfElves: string = IdsBS.RaceId.halfElves;
|
||||
|
||||
export const RaceId_dwarves: string = IdsBS.RaceId.dwarves;
|
||||
|
||||
export const CultureId_gladeElves: string = IdsBS.CultureId.gladeElves;
|
||||
|
||||
export const CultureId_firnelves: string = IdsBS.CultureId.firnelves;
|
||||
|
||||
export const CultureId_woodElves: string = IdsBS.CultureId.woodElves;
|
||||
|
||||
export const CultureId_steppenelfen: string = IdsBS.CultureId.steppenelfen;
|
||||
|
||||
export const ProfessionId_customProfession: string = IdsBS.ProfessionId.customProfession;
|
||||
|
||||
export const AttrId_courage: string = IdsBS.AttrId.courage;
|
||||
|
||||
export const AttrId_sagacity: string = IdsBS.AttrId.sagacity;
|
||||
|
||||
export const AttrId_intuition: string = IdsBS.AttrId.intuition;
|
||||
|
||||
export const AttrId_charisma: string = IdsBS.AttrId.charisma;
|
||||
|
||||
export const AttrId_dexterity: string = IdsBS.AttrId.dexterity;
|
||||
|
||||
export const AttrId_agility: string = IdsBS.AttrId.agility;
|
||||
|
||||
export const AttrId_constitution: string = IdsBS.AttrId.constitution;
|
||||
|
||||
export const AttrId_strength: string = IdsBS.AttrId.strength;
|
||||
|
||||
export const DCId_lifePoints: string = IdsBS.DCId.lifePoints;
|
||||
|
||||
export const DCId_arcaneEnergy: string = IdsBS.DCId.arcaneEnergy;
|
||||
|
||||
export const DCId_karmaPoints: string = IdsBS.DCId.karmaPoints;
|
||||
|
||||
export const DCId_spirit: string = IdsBS.DCId.spirit;
|
||||
|
||||
export const DCId_toughness: string = IdsBS.DCId.toughness;
|
||||
|
||||
export const DCId_dodge: string = IdsBS.DCId.dodge;
|
||||
|
||||
export const DCId_initiative: string = IdsBS.DCId.initiative;
|
||||
|
||||
export const DCId_movement: string = IdsBS.DCId.movement;
|
||||
|
||||
export const DCId_woundThreshold: string = IdsBS.DCId.woundThreshold;
|
||||
|
||||
export const AdvantageId_aptitude: string = IdsBS.AdvantageId.aptitude;
|
||||
|
||||
export const AdvantageId_nimble: string = IdsBS.AdvantageId.nimble;
|
||||
|
||||
export const AdvantageId_blessed: string = IdsBS.AdvantageId.blessed;
|
||||
|
||||
export const AdvantageId_luck: string = IdsBS.AdvantageId.luck;
|
||||
|
||||
export const AdvantageId_exceptionalSkill: string = IdsBS.AdvantageId.exceptionalSkill;
|
||||
|
||||
export const AdvantageId_exceptionalCombatTechnique: string = IdsBS.AdvantageId.exceptionalCombatTechnique;
|
||||
|
||||
export const AdvantageId_increasedAstralPower: string = IdsBS.AdvantageId.increasedAstralPower;
|
||||
|
||||
export const AdvantageId_increasedKarmaPoints: string = IdsBS.AdvantageId.increasedKarmaPoints;
|
||||
|
||||
export const AdvantageId_increasedLifePoints: string = IdsBS.AdvantageId.increasedLifePoints;
|
||||
|
||||
export const AdvantageId_increasedSpirit: string = IdsBS.AdvantageId.increasedSpirit;
|
||||
|
||||
export const AdvantageId_increasedToughness: string = IdsBS.AdvantageId.increasedToughness;
|
||||
|
||||
export const AdvantageId_immunityToPoison: string = IdsBS.AdvantageId.immunityToPoison;
|
||||
|
||||
export const AdvantageId_immunityToDisease: string = IdsBS.AdvantageId.immunityToDisease;
|
||||
|
||||
export const AdvantageId_magicalAttunement: string = IdsBS.AdvantageId.magicalAttunement;
|
||||
|
||||
export const AdvantageId_rich: string = IdsBS.AdvantageId.rich;
|
||||
|
||||
export const AdvantageId_sociallyAdaptable: string = IdsBS.AdvantageId.sociallyAdaptable;
|
||||
|
||||
export const AdvantageId_inspireConfidence: string = IdsBS.AdvantageId.inspireConfidence;
|
||||
|
||||
export const AdvantageId_weaponAptitude: string = IdsBS.AdvantageId.weaponAptitude;
|
||||
|
||||
export const AdvantageId_spellcaster: string = IdsBS.AdvantageId.spellcaster;
|
||||
|
||||
export const AdvantageId_unyielding: string = IdsBS.AdvantageId.unyielding;
|
||||
|
||||
export const AdvantageId_largeSpellSelection: string = IdsBS.AdvantageId.largeSpellSelection;
|
||||
|
||||
export const AdvantageId_hatredOf: string = IdsBS.AdvantageId.hatredOf;
|
||||
|
||||
export const AdvantageId_prediger: string = IdsBS.AdvantageId.prediger;
|
||||
|
||||
export const AdvantageId_visionaer: string = IdsBS.AdvantageId.visionaer;
|
||||
|
||||
export const AdvantageId_zahlreichePredigten: string = IdsBS.AdvantageId.zahlreichePredigten;
|
||||
|
||||
export const AdvantageId_zahlreicheVisionen: string = IdsBS.AdvantageId.zahlreicheVisionen;
|
||||
|
||||
export const AdvantageId_leichterGang: string = IdsBS.AdvantageId.leichterGang;
|
||||
|
||||
export const AdvantageId_einkommen: string = IdsBS.AdvantageId.einkommen;
|
||||
|
||||
export const DisadvantageId_afraidOf: string = IdsBS.DisadvantageId.afraidOf;
|
||||
|
||||
export const DisadvantageId_poor: string = IdsBS.DisadvantageId.poor;
|
||||
|
||||
export const DisadvantageId_slow: string = IdsBS.DisadvantageId.slow;
|
||||
|
||||
export const DisadvantageId_noFlyingBalm: string = IdsBS.DisadvantageId.noFlyingBalm;
|
||||
|
||||
export const DisadvantageId_noFamiliar: string = IdsBS.DisadvantageId.noFamiliar;
|
||||
|
||||
export const DisadvantageId_magicalRestriction: string = IdsBS.DisadvantageId.magicalRestriction;
|
||||
|
||||
export const DisadvantageId_decreasedArcanePower: string = IdsBS.DisadvantageId.decreasedArcanePower;
|
||||
|
||||
export const DisadvantageId_decreasedKarmaPoints: string = IdsBS.DisadvantageId.decreasedKarmaPoints;
|
||||
|
||||
export const DisadvantageId_decreasedLifePoints: string = IdsBS.DisadvantageId.decreasedLifePoints;
|
||||
|
||||
export const DisadvantageId_decreasedSpirit: string = IdsBS.DisadvantageId.decreasedSpirit;
|
||||
|
||||
export const DisadvantageId_decreasedToughness: string = IdsBS.DisadvantageId.decreasedToughness;
|
||||
|
||||
export const DisadvantageId_badLuck: string = IdsBS.DisadvantageId.badLuck;
|
||||
|
||||
export const DisadvantageId_personalityFlaw: string = IdsBS.DisadvantageId.personalityFlaw;
|
||||
|
||||
export const DisadvantageId_principles: string = IdsBS.DisadvantageId.principles;
|
||||
|
||||
export const DisadvantageId_badHabit: string = IdsBS.DisadvantageId.badHabit;
|
||||
|
||||
export const DisadvantageId_negativeTrait: string = IdsBS.DisadvantageId.negativeTrait;
|
||||
|
||||
export const DisadvantageId_stigma: string = IdsBS.DisadvantageId.stigma;
|
||||
|
||||
export const DisadvantageId_deaf: string = IdsBS.DisadvantageId.deaf;
|
||||
|
||||
export const DisadvantageId_incompetent: string = IdsBS.DisadvantageId.incompetent;
|
||||
|
||||
export const DisadvantageId_obligations: string = IdsBS.DisadvantageId.obligations;
|
||||
|
||||
export const DisadvantageId_maimed: string = IdsBS.DisadvantageId.maimed;
|
||||
|
||||
export const DisadvantageId_brittleBones: string = IdsBS.DisadvantageId.brittleBones;
|
||||
|
||||
export const DisadvantageId_smallSpellSelection: string = IdsBS.DisadvantageId.smallSpellSelection;
|
||||
|
||||
export const DisadvantageId_wenigePredigten: string = IdsBS.DisadvantageId.wenigePredigten;
|
||||
|
||||
export const DisadvantageId_wenigeVisionen: string = IdsBS.DisadvantageId.wenigeVisionen;
|
||||
|
||||
export const SkillId_flying: string = IdsBS.SkillId.flying;
|
||||
|
||||
export const SkillId_gaukelei: string = IdsBS.SkillId.gaukelei;
|
||||
|
||||
export const SkillId_climbing: string = IdsBS.SkillId.climbing;
|
||||
|
||||
export const SkillId_bodyControl: string = IdsBS.SkillId.bodyControl;
|
||||
|
||||
export const SkillId_featOfStrength: string = IdsBS.SkillId.featOfStrength;
|
||||
|
||||
export const SkillId_riding: string = IdsBS.SkillId.riding;
|
||||
|
||||
export const SkillId_swimming: string = IdsBS.SkillId.swimming;
|
||||
|
||||
export const SkillId_selfControl: string = IdsBS.SkillId.selfControl;
|
||||
|
||||
export const SkillId_singing: string = IdsBS.SkillId.singing;
|
||||
|
||||
export const SkillId_perception: string = IdsBS.SkillId.perception;
|
||||
|
||||
export const SkillId_dancing: string = IdsBS.SkillId.dancing;
|
||||
|
||||
export const SkillId_pickpocket: string = IdsBS.SkillId.pickpocket;
|
||||
|
||||
export const SkillId_stealth: string = IdsBS.SkillId.stealth;
|
||||
|
||||
export const SkillId_carousing: string = IdsBS.SkillId.carousing;
|
||||
|
||||
export const SkillId_persuasion: string = IdsBS.SkillId.persuasion;
|
||||
|
||||
export const SkillId_seduction: string = IdsBS.SkillId.seduction;
|
||||
|
||||
export const SkillId_intimidation: string = IdsBS.SkillId.intimidation;
|
||||
|
||||
export const SkillId_etiquette: string = IdsBS.SkillId.etiquette;
|
||||
|
||||
export const SkillId_streetwise: string = IdsBS.SkillId.streetwise;
|
||||
|
||||
export const SkillId_empathy: string = IdsBS.SkillId.empathy;
|
||||
|
||||
export const SkillId_fastTalk: string = IdsBS.SkillId.fastTalk;
|
||||
|
||||
export const SkillId_disguise: string = IdsBS.SkillId.disguise;
|
||||
|
||||
export const SkillId_willpower: string = IdsBS.SkillId.willpower;
|
||||
|
||||
export const SkillId_tracking: string = IdsBS.SkillId.tracking;
|
||||
|
||||
export const SkillId_ropes: string = IdsBS.SkillId.ropes;
|
||||
|
||||
export const SkillId_fishing: string = IdsBS.SkillId.fishing;
|
||||
|
||||
export const SkillId_orienting: string = IdsBS.SkillId.orienting;
|
||||
|
||||
export const SkillId_plantLore: string = IdsBS.SkillId.plantLore;
|
||||
|
||||
export const SkillId_animalLore: string = IdsBS.SkillId.animalLore;
|
||||
|
||||
export const SkillId_survival: string = IdsBS.SkillId.survival;
|
||||
|
||||
export const SkillId_gambling: string = IdsBS.SkillId.gambling;
|
||||
|
||||
export const SkillId_geography: string = IdsBS.SkillId.geography;
|
||||
|
||||
export const SkillId_history: string = IdsBS.SkillId.history;
|
||||
|
||||
export const SkillId_religions: string = IdsBS.SkillId.religions;
|
||||
|
||||
export const SkillId_warfare: string = IdsBS.SkillId.warfare;
|
||||
|
||||
export const SkillId_magicalLore: string = IdsBS.SkillId.magicalLore;
|
||||
|
||||
export const SkillId_mechanics: string = IdsBS.SkillId.mechanics;
|
||||
|
||||
export const SkillId_math: string = IdsBS.SkillId.math;
|
||||
|
||||
export const SkillId_law: string = IdsBS.SkillId.law;
|
||||
|
||||
export const SkillId_mythsAndLegends: string = IdsBS.SkillId.mythsAndLegends;
|
||||
|
||||
export const SkillId_sphereLore: string = IdsBS.SkillId.sphereLore;
|
||||
|
||||
export const SkillId_astronomy: string = IdsBS.SkillId.astronomy;
|
||||
|
||||
export const SkillId_alchemy: string = IdsBS.SkillId.alchemy;
|
||||
|
||||
export const SkillId_sailing: string = IdsBS.SkillId.sailing;
|
||||
|
||||
export const SkillId_driving: string = IdsBS.SkillId.driving;
|
||||
|
||||
export const SkillId_commerce: string = IdsBS.SkillId.commerce;
|
||||
|
||||
export const SkillId_treatPoison: string = IdsBS.SkillId.treatPoison;
|
||||
|
||||
export const SkillId_treatDisease: string = IdsBS.SkillId.treatDisease;
|
||||
|
||||
export const SkillId_treatSoul: string = IdsBS.SkillId.treatSoul;
|
||||
|
||||
export const SkillId_treatWounds: string = IdsBS.SkillId.treatWounds;
|
||||
|
||||
export const SkillId_woodworking: string = IdsBS.SkillId.woodworking;
|
||||
|
||||
export const SkillId_prepareFood: string = IdsBS.SkillId.prepareFood;
|
||||
|
||||
export const SkillId_leatherworking: string = IdsBS.SkillId.leatherworking;
|
||||
|
||||
export const SkillId_artisticAbility: string = IdsBS.SkillId.artisticAbility;
|
||||
|
||||
export const SkillId_metalworking: string = IdsBS.SkillId.metalworking;
|
||||
|
||||
export const SkillId_music: string = IdsBS.SkillId.music;
|
||||
|
||||
export const SkillId_pickLocks: string = IdsBS.SkillId.pickLocks;
|
||||
|
||||
export const SkillId_earthencraft: string = IdsBS.SkillId.earthencraft;
|
||||
|
||||
export const SkillId_clothworking: string = IdsBS.SkillId.clothworking;
|
||||
|
||||
export const CombatTechniqueId_crossbows: string = IdsBS.CombatTechniqueId.crossbows;
|
||||
|
||||
export const CombatTechniqueId_bows: string = IdsBS.CombatTechniqueId.bows;
|
||||
|
||||
export const CombatTechniqueId_daggers: string = IdsBS.CombatTechniqueId.daggers;
|
||||
|
||||
export const CombatTechniqueId_fencingWeapons: string = IdsBS.CombatTechniqueId.fencingWeapons;
|
||||
|
||||
export const CombatTechniqueId_impactWeapons: string = IdsBS.CombatTechniqueId.impactWeapons;
|
||||
|
||||
export const CombatTechniqueId_chainWeapons: string = IdsBS.CombatTechniqueId.chainWeapons;
|
||||
|
||||
export const CombatTechniqueId_lances: string = IdsBS.CombatTechniqueId.lances;
|
||||
|
||||
export const CombatTechniqueId_brawling: string = IdsBS.CombatTechniqueId.brawling;
|
||||
|
||||
export const CombatTechniqueId_shields: string = IdsBS.CombatTechniqueId.shields;
|
||||
|
||||
export const CombatTechniqueId_slings: string = IdsBS.CombatTechniqueId.slings;
|
||||
|
||||
export const CombatTechniqueId_swords: string = IdsBS.CombatTechniqueId.swords;
|
||||
|
||||
export const CombatTechniqueId_polearms: string = IdsBS.CombatTechniqueId.polearms;
|
||||
|
||||
export const CombatTechniqueId_thrownWeapons: string = IdsBS.CombatTechniqueId.thrownWeapons;
|
||||
|
||||
export const CombatTechniqueId_twoHandedImpactWeapons: string = IdsBS.CombatTechniqueId.twoHandedImpactWeapons;
|
||||
|
||||
export const CombatTechniqueId_twoHandedSwords: string = IdsBS.CombatTechniqueId.twoHandedSwords;
|
||||
|
||||
export const CombatTechniqueId_spittingFire: string = IdsBS.CombatTechniqueId.spittingFire;
|
||||
|
||||
export const CombatTechniqueId_blowguns: string = IdsBS.CombatTechniqueId.blowguns;
|
||||
|
||||
export const CombatTechniqueId_discuses: string = IdsBS.CombatTechniqueId.discuses;
|
||||
|
||||
export const CombatTechniqueId_faecher: string = IdsBS.CombatTechniqueId.faecher;
|
||||
|
||||
export const CombatTechniqueId_spiesswaffen: string = IdsBS.CombatTechniqueId.spiesswaffen;
|
||||
|
||||
export const SpecialAbilityId_skillSpecialization: string = IdsBS.SpecialAbilityId.skillSpecialization;
|
||||
|
||||
export const SpecialAbilityId_terrainKnowledge: string = IdsBS.SpecialAbilityId.terrainKnowledge;
|
||||
|
||||
export const SpecialAbilityId_craftInstruments: string = IdsBS.SpecialAbilityId.craftInstruments;
|
||||
|
||||
export const SpecialAbilityId_hunter: string = IdsBS.SpecialAbilityId.hunter;
|
||||
|
||||
export const SpecialAbilityId_areaKnowledge: string = IdsBS.SpecialAbilityId.areaKnowledge;
|
||||
|
||||
export const SpecialAbilityId_literacy: string = IdsBS.SpecialAbilityId.literacy;
|
||||
|
||||
export const SpecialAbilityId_language: string = IdsBS.SpecialAbilityId.language;
|
||||
|
||||
export const SpecialAbilityId_combatReflexes: string = IdsBS.SpecialAbilityId.combatReflexes;
|
||||
|
||||
export const SpecialAbilityId_improvedDodge: string = IdsBS.SpecialAbilityId.improvedDodge;
|
||||
|
||||
export const SpecialAbilityId_traditionGuildMages: number = IdsBS.SpecialAbilityId.traditionGuildMages;
|
||||
|
||||
export const SpecialAbilityId_propertyKnowledge: string = IdsBS.SpecialAbilityId.propertyKnowledge;
|
||||
|
||||
export const SpecialAbilityId_propertyFocus: string = IdsBS.SpecialAbilityId.propertyFocus;
|
||||
|
||||
export const SpecialAbilityId_aspectKnowledge: string = IdsBS.SpecialAbilityId.aspectKnowledge;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfPraios: string = IdsBS.SpecialAbilityId.traditionChurchOfPraios;
|
||||
|
||||
export const SpecialAbilityId_feuerschlucker: string = IdsBS.SpecialAbilityId.feuerschlucker;
|
||||
|
||||
export const SpecialAbilityId_combatStyleCombination: string = IdsBS.SpecialAbilityId.combatStyleCombination;
|
||||
|
||||
export const SpecialAbilityId_adaptionZauber: string = IdsBS.SpecialAbilityId.adaptionZauber;
|
||||
|
||||
export const SpecialAbilityId_exorzist: string = IdsBS.SpecialAbilityId.exorzist;
|
||||
|
||||
export const SpecialAbilityId_favoriteSpellwork: string = IdsBS.SpecialAbilityId.favoriteSpellwork;
|
||||
|
||||
export const SpecialAbilityId_traditionWitches: string = IdsBS.SpecialAbilityId.traditionWitches;
|
||||
|
||||
export const SpecialAbilityId_magicStyleCombination: string = IdsBS.SpecialAbilityId.magicStyleCombination;
|
||||
|
||||
export const SpecialAbilityId_harmoniezauberei: string = IdsBS.SpecialAbilityId.harmoniezauberei;
|
||||
|
||||
export const SpecialAbilityId_matrixzauberei: string = IdsBS.SpecialAbilityId.matrixzauberei;
|
||||
|
||||
export const SpecialAbilityId_traditionElves: string = IdsBS.SpecialAbilityId.traditionElves;
|
||||
|
||||
export const SpecialAbilityId_traditionDruids: string = IdsBS.SpecialAbilityId.traditionDruids;
|
||||
|
||||
export const SpecialAbilityId_spellEnhancement: number = IdsBS.SpecialAbilityId.spellEnhancement;
|
||||
|
||||
export const SpecialAbilityId_forschungsgebiet: string = IdsBS.SpecialAbilityId.forschungsgebiet;
|
||||
|
||||
export const SpecialAbilityId_expertenwissen: string = IdsBS.SpecialAbilityId.expertenwissen;
|
||||
|
||||
export const SpecialAbilityId_wissensdurst: string = IdsBS.SpecialAbilityId.wissensdurst;
|
||||
|
||||
export const SpecialAbilityId_recherchegespuer: string = IdsBS.SpecialAbilityId.recherchegespuer;
|
||||
|
||||
export const SpecialAbilityId_predigtDerGemeinschaft: string = IdsBS.SpecialAbilityId.predigtDerGemeinschaft;
|
||||
|
||||
export const SpecialAbilityId_predigtDerZuversicht: string = IdsBS.SpecialAbilityId.predigtDerZuversicht;
|
||||
|
||||
export const SpecialAbilityId_predigtDesGottvertrauens: string = IdsBS.SpecialAbilityId.predigtDesGottvertrauens;
|
||||
|
||||
export const SpecialAbilityId_predigtDesWohlgefallens: string = IdsBS.SpecialAbilityId.predigtDesWohlgefallens;
|
||||
|
||||
export const SpecialAbilityId_predigtWiderMissgeschicke: string = IdsBS.SpecialAbilityId.predigtWiderMissgeschicke;
|
||||
|
||||
export const SpecialAbilityId_visionDerBestimmung: string = IdsBS.SpecialAbilityId.visionDerBestimmung;
|
||||
|
||||
export const SpecialAbilityId_visionDerEntrueckung: string = IdsBS.SpecialAbilityId.visionDerEntrueckung;
|
||||
|
||||
export const SpecialAbilityId_visionDerGottheit: string = IdsBS.SpecialAbilityId.visionDerGottheit;
|
||||
|
||||
export const SpecialAbilityId_visionDesSchicksals: string = IdsBS.SpecialAbilityId.visionDesSchicksals;
|
||||
|
||||
export const SpecialAbilityId_visionDesWahrenGlaubens: string = IdsBS.SpecialAbilityId.visionDesWahrenGlaubens;
|
||||
|
||||
export const SpecialAbilityId_hoheWeihe: string = IdsBS.SpecialAbilityId.hoheWeihe;
|
||||
|
||||
export const SpecialAbilityId_lieblingsliturgie: string = IdsBS.SpecialAbilityId.lieblingsliturgie;
|
||||
|
||||
export const SpecialAbilityId_zugvoegel: string = IdsBS.SpecialAbilityId.zugvoegel;
|
||||
|
||||
export const SpecialAbilityId_jaegerinnenDerWeissenMaid: string = IdsBS.SpecialAbilityId.jaegerinnenDerWeissenMaid;
|
||||
|
||||
export const SpecialAbilityId_anhaengerDesGueldenen: string = IdsBS.SpecialAbilityId.anhaengerDesGueldenen;
|
||||
|
||||
export const SpecialAbilityId_gebieterDesAspekts: string = IdsBS.SpecialAbilityId.gebieterDesAspekts;
|
||||
|
||||
export const SpecialAbilityId_chantEnhancement: number = IdsBS.SpecialAbilityId.chantEnhancement;
|
||||
|
||||
export const SpecialAbilityId_dunklesAbbildDerBuendnisgabe: string = IdsBS.SpecialAbilityId.dunklesAbbildDerBuendnisgabe;
|
||||
|
||||
export const SpecialAbilityId_traditionIllusionist: string = IdsBS.SpecialAbilityId.traditionIllusionist;
|
||||
|
||||
export const SpecialAbilityId_traditionArcaneBard: string = IdsBS.SpecialAbilityId.traditionArcaneBard;
|
||||
|
||||
export const SpecialAbilityId_traditionArcaneDancer: string = IdsBS.SpecialAbilityId.traditionArcaneDancer;
|
||||
|
||||
export const SpecialAbilityId_traditionIntuitiveMage: string = IdsBS.SpecialAbilityId.traditionIntuitiveMage;
|
||||
|
||||
export const SpecialAbilityId_traditionSavant: string = IdsBS.SpecialAbilityId.traditionSavant;
|
||||
|
||||
export const SpecialAbilityId_traditionQabalyaMage: string = IdsBS.SpecialAbilityId.traditionQabalyaMage;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfRondra: string = IdsBS.SpecialAbilityId.traditionChurchOfRondra;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfBoron: string = IdsBS.SpecialAbilityId.traditionChurchOfBoron;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfHesinde: string = IdsBS.SpecialAbilityId.traditionChurchOfHesinde;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfPhex: string = IdsBS.SpecialAbilityId.traditionChurchOfPhex;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfPeraine: string = IdsBS.SpecialAbilityId.traditionChurchOfPeraine;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfEfferd: string = IdsBS.SpecialAbilityId.traditionChurchOfEfferd;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfTravia: string = IdsBS.SpecialAbilityId.traditionChurchOfTravia;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfFirun: string = IdsBS.SpecialAbilityId.traditionChurchOfFirun;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfTsa: string = IdsBS.SpecialAbilityId.traditionChurchOfTsa;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfIngerimm: string = IdsBS.SpecialAbilityId.traditionChurchOfIngerimm;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfRahja: string = IdsBS.SpecialAbilityId.traditionChurchOfRahja;
|
||||
|
||||
export const SpecialAbilityId_traditionCultOfTheNamelessOne: string = IdsBS.SpecialAbilityId.traditionCultOfTheNamelessOne;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfAves: string = IdsBS.SpecialAbilityId.traditionChurchOfAves;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfIfirn: string = IdsBS.SpecialAbilityId.traditionChurchOfIfirn;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfKor: string = IdsBS.SpecialAbilityId.traditionChurchOfKor;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfNandus: string = IdsBS.SpecialAbilityId.traditionChurchOfNandus;
|
||||
|
||||
export const SpecialAbilityId_traditionChurchOfSwafnir: string = IdsBS.SpecialAbilityId.traditionChurchOfSwafnir;
|
||||
|
||||
export const SpecialAbilityId_languageSpecializations: string = IdsBS.SpecialAbilityId.languageSpecializations;
|
||||
|
||||
export const SpecialAbilityId_traditionSchelme: string = IdsBS.SpecialAbilityId.traditionSchelme;
|
||||
|
||||
export const SpecialAbilityId_traditionZauberalchimisten: string = IdsBS.SpecialAbilityId.traditionZauberalchimisten;
|
||||
|
||||
export const SpecialAbilityId_grosseMeditation: string = IdsBS.SpecialAbilityId.grosseMeditation;
|
||||
|
||||
export const SpecialAbilityId_imitationszauberei: string = IdsBS.SpecialAbilityId.imitationszauberei;
|
||||
|
||||
export const SpecialAbilityId_kraftliniennutzung: string = IdsBS.SpecialAbilityId.kraftliniennutzung;
|
||||
|
||||
export const SpecialAbilityId_scholarDerHalleDesLebensZuNorburg: string = IdsBS.SpecialAbilityId.scholarDerHalleDesLebensZuNorburg;
|
||||
|
||||
export const SpecialAbilityId_scholarDesKreisesDerEinfuehlung: string = IdsBS.SpecialAbilityId.scholarDesKreisesDerEinfuehlung;
|
||||
|
||||
export const SpecialAbilityId_madaschwesternStil: string = IdsBS.SpecialAbilityId.madaschwesternStil;
|
||||
|
||||
export const SpecialAbilityId_garetherGossenStil: string = IdsBS.SpecialAbilityId.garetherGossenStil;
|
||||
|
||||
export const SpecialAbilityId_wegDerGelehrten: string = IdsBS.SpecialAbilityId.wegDerGelehrten;
|
||||
|
||||
export const SpecialAbilityId_traditionCultOfNuminoru: string = IdsBS.SpecialAbilityId.traditionCultOfNuminoru;
|
||||
|
||||
export const SpecialAbilityId_wegDerKuenstlerin: string = IdsBS.SpecialAbilityId.wegDerKuenstlerin;
|
||||
|
||||
export const SpecialAbilityId_wegDerSchreiberin: string = IdsBS.SpecialAbilityId.wegDerSchreiberin;
|
||||
|
||||
export const SpecialAbilityId_fachwissen: string = IdsBS.SpecialAbilityId.fachwissen;
|
||||
|
||||
export const SpecialAbilityId_handwerkskunst: string = IdsBS.SpecialAbilityId.handwerkskunst;
|
||||
|
||||
export const SpecialAbilityId_kindDerNatur: string = IdsBS.SpecialAbilityId.kindDerNatur;
|
||||
|
||||
export const SpecialAbilityId_koerperlichesGeschick: string = IdsBS.SpecialAbilityId.koerperlichesGeschick;
|
||||
|
||||
export const SpecialAbilityId_sozialeKompetenz: string = IdsBS.SpecialAbilityId.sozialeKompetenz;
|
||||
|
||||
export const SpecialAbilityId_universalgenie: string = IdsBS.SpecialAbilityId.universalgenie;
|
||||
|
||||
export const SpecialAbilityId_scholarDesMagierkollegsZuHoningen: string = IdsBS.SpecialAbilityId.scholarDesMagierkollegsZuHoningen;
|
||||
|
||||
export const SpecialAbilityId_traditionAnimisten: string = IdsBS.SpecialAbilityId.traditionAnimisten;
|
||||
|
||||
export const SpecialAbilityId_traditionGeoden: string = IdsBS.SpecialAbilityId.traditionGeoden;
|
||||
|
||||
export const SpecialAbilityId_traditionZibilijas: string = IdsBS.SpecialAbilityId.traditionZibilijas;
|
||||
|
||||
export const SpecialAbilityId_zaubervariabilitaet: string = IdsBS.SpecialAbilityId.zaubervariabilitaet;
|
||||
|
||||
export const SpecialAbilityId_traditionBrobimGeoden: string = IdsBS.SpecialAbilityId.traditionBrobimGeoden;
|
||||
|
||||
export const SocialStatusId_notFree: number = IdsBS.SocialStatusId.notFree;
|
||||
|
||||
export const SocialStatusId_free: number = IdsBS.SocialStatusId.free;
|
||||
|
||||
export const SocialStatusId_lesserNoble: number = IdsBS.SocialStatusId.lesserNoble;
|
||||
|
||||
export const SocialStatusId_noble: number = IdsBS.SocialStatusId.noble;
|
||||
|
||||
export const SocialStatusId_aristocracy: number = IdsBS.SocialStatusId.aristocracy;
|
||||
|
||||
export const OptionalRuleId_maximumAttributeScores: string = IdsBS.OptionalRuleId.maximumAttributeScores;
|
||||
|
||||
export const OptionalRuleId_languageSpecialization: string = IdsBS.OptionalRuleId.languageSpecialization;
|
||||
|
||||
export const OptionalRuleId_higherDefenseStats: string = IdsBS.OptionalRuleId.higherDefenseStats;
|
||||
|
||||
export const ConditionId_sikaryanVerlust: string = IdsBS.ConditionId.sikaryanVerlust;
|
||||
|
||||
export const ConditionId_daemonischeAuszehrung: string = IdsBS.ConditionId.daemonischeAuszehrung;
|
||||
|
||||
export const ExperienceLevelId: {
|
||||
masterly: string;
|
||||
inexperienced: string;
|
||||
brilliant: string;
|
||||
ordinary: string;
|
||||
experienced: string;
|
||||
competent: string;
|
||||
legendary: string
|
||||
} = IdsBS.ExperienceLevelId
|
||||
|
||||
export const ProfessionId: { customProfession: string } = IdsBS.ProfessionId
|
||||
|
||||
export const DCId: {
|
||||
dodge: string;
|
||||
movement: string;
|
||||
initiative: string;
|
||||
woundThreshold: string;
|
||||
toughness: string;
|
||||
karmaPoints: string;
|
||||
arcaneEnergy: string;
|
||||
spirit: string;
|
||||
lifePoints: string
|
||||
} = IdsBS.DCId
|
||||
|
||||
export const SkillId: {
|
||||
sailing: string;
|
||||
treatPoison: string;
|
||||
metalworking: string;
|
||||
etiquette: string;
|
||||
commerce: string;
|
||||
treatSoul: string;
|
||||
prepareFood: string;
|
||||
music: string;
|
||||
plantLore: string;
|
||||
driving: string;
|
||||
pickLocks: string;
|
||||
flying: string;
|
||||
religions: string;
|
||||
riding: string;
|
||||
empathy: string;
|
||||
gambling: string;
|
||||
sphereLore: string;
|
||||
singing: string;
|
||||
stealth: string;
|
||||
gaukelei: string;
|
||||
dancing: string;
|
||||
persuasion: string;
|
||||
intimidation: string;
|
||||
carousing: string;
|
||||
animalLore: string;
|
||||
bodyControl: string;
|
||||
history: string;
|
||||
earthencraft: string;
|
||||
survival: string;
|
||||
astronomy: string;
|
||||
perception: string;
|
||||
treatWounds: string;
|
||||
seduction: string;
|
||||
selfControl: string;
|
||||
disguise: string;
|
||||
ropes: string;
|
||||
climbing: string;
|
||||
willpower: string;
|
||||
fastTalk: string;
|
||||
streetwise: string;
|
||||
fishing: string;
|
||||
geography: string;
|
||||
mechanics: string;
|
||||
treatDisease: string;
|
||||
orienting: string;
|
||||
law: string;
|
||||
warfare: string;
|
||||
pickpocket: string;
|
||||
artisticAbility: string;
|
||||
clothworking: string;
|
||||
featOfStrength: string;
|
||||
tracking: string;
|
||||
mythsAndLegends: string;
|
||||
math: string;
|
||||
leatherworking: string;
|
||||
swimming: string;
|
||||
magicalLore: string;
|
||||
woodworking: string;
|
||||
alchemy: string
|
||||
} = IdsBS.SkillId
|
||||
|
||||
export const CultureId: {
|
||||
woodElves: string;
|
||||
gladeElves: string;
|
||||
firnelves: string;
|
||||
steppenelfen: string
|
||||
} = IdsBS.CultureId
|
||||
|
||||
export const Phase: {
|
||||
creation: number;
|
||||
inGame: number;
|
||||
rcp: number
|
||||
} = IdsBS.Phase
|
||||
|
||||
export const AdvantageId: {
|
||||
luck: string;
|
||||
exceptionalSkill: string;
|
||||
weaponAptitude: string;
|
||||
largeSpellSelection: string;
|
||||
hatredOf: string;
|
||||
zahlreichePredigten: string;
|
||||
einkommen: string;
|
||||
aptitude: string;
|
||||
prediger: string;
|
||||
sociallyAdaptable: string;
|
||||
immunityToDisease: string;
|
||||
nimble: string;
|
||||
increasedKarmaPoints: string;
|
||||
visionaer: string;
|
||||
inspireConfidence: string;
|
||||
spellcaster: string;
|
||||
exceptionalCombatTechnique: string;
|
||||
increasedAstralPower: string;
|
||||
zahlreicheVisionen: string;
|
||||
leichterGang: string;
|
||||
increasedLifePoints: string;
|
||||
unyielding: string;
|
||||
rich: string;
|
||||
blessed: string;
|
||||
increasedSpirit: string;
|
||||
immunityToPoison: string;
|
||||
increasedToughness: string;
|
||||
magicalAttunement: string
|
||||
} = IdsBS.AdvantageId
|
||||
|
||||
export const CombatTechniqueId: {
|
||||
discuses: string;
|
||||
swords: string;
|
||||
faecher: string;
|
||||
chainWeapons: string;
|
||||
twoHandedSwords: string;
|
||||
daggers: string;
|
||||
crossbows: string;
|
||||
brawling: string;
|
||||
thrownWeapons: string;
|
||||
lances: string;
|
||||
impactWeapons: string;
|
||||
slings: string;
|
||||
spittingFire: string;
|
||||
blowguns: string;
|
||||
fencingWeapons: string;
|
||||
twoHandedImpactWeapons: string;
|
||||
spiesswaffen: string;
|
||||
bows: string;
|
||||
shields: string;
|
||||
polearms: string
|
||||
} = IdsBS.CombatTechniqueId
|
||||
|
||||
export const SocialStatusId: {
|
||||
free: number;
|
||||
aristocracy: number;
|
||||
lesserNoble: number;
|
||||
notFree: number;
|
||||
noble: number
|
||||
} = IdsBS.SocialStatusId
|
||||
|
||||
export const DisadvantageId: {
|
||||
obligations: string;
|
||||
slow: string;
|
||||
wenigeVisionen: string;
|
||||
badLuck: string;
|
||||
maimed: string;
|
||||
wenigePredigten: string;
|
||||
decreasedLifePoints: string;
|
||||
incompetent: string;
|
||||
afraidOf: string;
|
||||
deaf: string;
|
||||
magicalRestriction: string;
|
||||
decreasedSpirit: string;
|
||||
noFlyingBalm: string;
|
||||
poor: string;
|
||||
smallSpellSelection: string;
|
||||
noFamiliar: string;
|
||||
decreasedArcanePower: string;
|
||||
principles: string;
|
||||
negativeTrait: string;
|
||||
stigma: string;
|
||||
badHabit: string;
|
||||
decreasedKarmaPoints: string;
|
||||
brittleBones: string;
|
||||
decreasedToughness: string;
|
||||
personalityFlaw: string
|
||||
} = IdsBS.DisadvantageId
|
||||
|
||||
export const ConditionId: { sikaryanVerlust: string; daemonischeAuszehrung: string } = IdsBS.ConditionId
|
||||
|
||||
export const RaceId: {
|
||||
humans: string;
|
||||
elves: string;
|
||||
dwarves: string;
|
||||
halfElves: string
|
||||
} = IdsBS.RaceId
|
||||
|
||||
export const AttrId: {
|
||||
intuition: string;
|
||||
charisma: string;
|
||||
agility: string;
|
||||
courage: string;
|
||||
sagacity: string;
|
||||
constitution: string;
|
||||
dexterity: string;
|
||||
strength: string
|
||||
} = IdsBS.AttrId
|
||||
|
||||
export const SpecialAbilityId: {
|
||||
universalgenie: string;
|
||||
traditionChurchOfTravia: string;
|
||||
imitationszauberei: string;
|
||||
garetherGossenStil: string;
|
||||
magicStyleCombination: string;
|
||||
forschungsgebiet: string;
|
||||
anhaengerDesGueldenen: string;
|
||||
visionDerBestimmung: string;
|
||||
visionDerEntrueckung: string;
|
||||
languageSpecializations: string;
|
||||
chantEnhancement: number;
|
||||
traditionChurchOfPhex: string;
|
||||
traditionChurchOfFirun: string;
|
||||
traditionChurchOfNandus: string;
|
||||
harmoniezauberei: string;
|
||||
craftInstruments: string;
|
||||
hoheWeihe: string;
|
||||
wegDerKuenstlerin: string;
|
||||
jaegerinnenDerWeissenMaid: string;
|
||||
kraftliniennutzung: string;
|
||||
sozialeKompetenz: string;
|
||||
traditionDruids: string;
|
||||
madaschwesternStil: string;
|
||||
expertenwissen: string;
|
||||
terrainKnowledge: string;
|
||||
recherchegespuer: string;
|
||||
visionDerGottheit: string;
|
||||
traditionChurchOfBoron: string;
|
||||
traditionGuildMages: number;
|
||||
traditionGeoden: string;
|
||||
dunklesAbbildDerBuendnisgabe: string;
|
||||
grosseMeditation: string;
|
||||
propertyKnowledge: string;
|
||||
traditionCultOfTheNamelessOne: string;
|
||||
areaKnowledge: string;
|
||||
traditionArcaneDancer: string;
|
||||
zugvoegel: string;
|
||||
traditionChurchOfAves: string;
|
||||
gebieterDesAspekts: string;
|
||||
propertyFocus: string;
|
||||
fachwissen: string;
|
||||
adaptionZauber: string;
|
||||
favoriteSpellwork: string;
|
||||
traditionArcaneBard: string;
|
||||
traditionSavant: string;
|
||||
traditionZauberalchimisten: string;
|
||||
wissensdurst: string;
|
||||
language: string;
|
||||
wegDerGelehrten: string;
|
||||
feuerschlucker: string;
|
||||
predigtDesGottvertrauens: string;
|
||||
traditionChurchOfHesinde: string;
|
||||
traditionChurchOfRahja: string;
|
||||
traditionChurchOfIfirn: string;
|
||||
traditionAnimisten: string;
|
||||
lieblingsliturgie: string;
|
||||
zaubervariabilitaet: string;
|
||||
traditionChurchOfPraios: string;
|
||||
predigtWiderMissgeschicke: string;
|
||||
scholarDesKreisesDerEinfuehlung: string;
|
||||
matrixzauberei: string;
|
||||
predigtDesWohlgefallens: string;
|
||||
exorzist: string;
|
||||
predigtDerGemeinschaft: string;
|
||||
kindDerNatur: string;
|
||||
traditionBrobimGeoden: string;
|
||||
traditionChurchOfPeraine: string;
|
||||
traditionIntuitiveMage: string;
|
||||
traditionElves: string;
|
||||
visionDesWahrenGlaubens: string;
|
||||
traditionWitches: string;
|
||||
traditionChurchOfIngerimm: string;
|
||||
literacy: string;
|
||||
combatReflexes: string;
|
||||
combatStyleCombination: string;
|
||||
scholarDerHalleDesLebensZuNorburg: string;
|
||||
traditionChurchOfEfferd: string;
|
||||
traditionChurchOfSwafnir: string;
|
||||
wegDerSchreiberin: string;
|
||||
koerperlichesGeschick: string;
|
||||
hunter: string;
|
||||
visionDesSchicksals: string;
|
||||
traditionCultOfNuminoru: string;
|
||||
traditionZibilijas: string;
|
||||
improvedDodge: string;
|
||||
traditionQabalyaMage: string;
|
||||
aspectKnowledge: string;
|
||||
spellEnhancement: number;
|
||||
traditionSchelme: string;
|
||||
predigtDerZuversicht: string;
|
||||
traditionChurchOfTsa: string;
|
||||
scholarDesMagierkollegsZuHoningen: string;
|
||||
skillSpecialization: string;
|
||||
traditionChurchOfRondra: string;
|
||||
traditionChurchOfKor: string;
|
||||
traditionIllusionist: string;
|
||||
handwerkskunst: string
|
||||
} = IdsBS.SpecialAbilityId
|
||||
|
||||
export const OptionalRuleId: {
|
||||
higherDefenseStats: string;
|
||||
maximumAttributeScores: string;
|
||||
languageSpecialization: string
|
||||
} = IdsBS.OptionalRuleId
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,39 @@
|
||||
import { List } from "../../Data/List"
|
||||
|
||||
export type Id =
|
||||
| { tag: "ExperienceLevel"; value: number }
|
||||
| { tag: "Race"; value: number }
|
||||
| { tag: "Culture"; value: number }
|
||||
| { tag: "Profession"; value: number }
|
||||
| { tag: "Attribute"; value: number }
|
||||
| { tag: "Advantage"; value: number }
|
||||
| { tag: "Disadvantage"; value: number }
|
||||
| { tag: "Skill"; value: number }
|
||||
| { tag: "CombatTechnique"; value: number }
|
||||
| { tag: "Spell"; value: number }
|
||||
| { tag: "Curse"; value: number }
|
||||
| { tag: "ElvenMagicalSong"; value: number }
|
||||
| { tag: "DominationRitual"; value: number }
|
||||
| { tag: "MagicalMelody"; value: number }
|
||||
| { tag: "MagicalDance"; value: number }
|
||||
| { tag: "RogueSpell"; value: number }
|
||||
| { tag: "AnimistForce"; value: number }
|
||||
| { tag: "GeodeRitual"; value: number }
|
||||
| { tag: "ZibiljaRitual"; value: number }
|
||||
| { tag: "Cantrip"; value: number }
|
||||
| { tag: "LiturgicalChant"; value: number }
|
||||
| { tag: "Blessing"; value: number }
|
||||
| { tag: "SpecialAbility"; value: number }
|
||||
| { tag: "Item"; value: number }
|
||||
| { tag: "EquipmentPackage"; value: number }
|
||||
| { tag: "HitZoneArmor"; value: number }
|
||||
| { tag: "Familiar"; value: number }
|
||||
| { tag: "Animal"; value: number }
|
||||
| { tag: "FocusRule"; value: number }
|
||||
| { tag: "OptionalRule"; value: number }
|
||||
| { tag: "Condition"; value: number }
|
||||
| { tag: "State"; value: number }
|
||||
|
||||
/**
|
||||
* Please keep enum members sorted by value and not by key!
|
||||
*/
|
||||
@@ -108,7 +142,7 @@ export enum AdvantageId {
|
||||
/**
|
||||
* Lists advantage IDs that have no influence on the AP maximum for advantages.
|
||||
*/
|
||||
export const AdvantageIdsNoMaxInfl = List<AdvantageId> (AdvantageId.Einkommen)
|
||||
export const AdvantageIdsNoMaxInfl = List<string> (AdvantageId.Einkommen)
|
||||
|
||||
export enum DisadvantageId {
|
||||
CustomDisadvantage = "DISADV_0",
|
||||
@@ -287,6 +321,8 @@ export enum SpecialAbilityId {
|
||||
FavoriteSpellwork = "SA_250",
|
||||
TraditionWitches = "SA_255",
|
||||
MagicStyleCombination = "SA_266",
|
||||
Harmoniezauberei = "SA_296",
|
||||
Matrixzauberei = "SA_303",
|
||||
TraditionElves = "SA_345",
|
||||
TraditionDruids = "SA_346",
|
||||
SpellEnhancement = "SA_414",
|
||||
@@ -300,14 +336,14 @@ export enum SpecialAbilityId {
|
||||
PredigtDesWohlgefallens = "SA_547",
|
||||
PredigtWiderMissgeschicke = "SA_548",
|
||||
VisionDerBestimmung = "SA_549",
|
||||
VisionDerEntrückung = "SA_550",
|
||||
VisionDerEntrueckung = "SA_550",
|
||||
VisionDerGottheit = "SA_551",
|
||||
VisionDesSchicksals = "SA_552",
|
||||
VisionDesWahrenGlaubens = "SA_553",
|
||||
HoheWeihe = "SA_563",
|
||||
Lieblingsliturgie = "SA_569",
|
||||
Zugvoegel = "SA_623",
|
||||
JaegerinnenDerWeißenMaid = "SA_625",
|
||||
JaegerinnenDerWeissenMaid = "SA_625",
|
||||
AnhaengerDesGueldenen = "SA_632",
|
||||
GebieterDesAspekts = "SA_639",
|
||||
ChantEnhancement = "SA_663",
|
||||
@@ -348,6 +384,7 @@ export enum SpecialAbilityId {
|
||||
TraditionZauberalchimisten = "SA_750",
|
||||
GrosseMeditation = "SA_772",
|
||||
Imitationszauberei = "SA_775",
|
||||
Kraftliniennutzung = "SA_781",
|
||||
ScholarDerHalleDesLebensZuNorburg = "SA_802",
|
||||
ScholarDesKreisesDerEinfuehlung = "SA_808",
|
||||
MadaschwesternStil = "SA_821",
|
||||
@@ -387,3 +424,8 @@ export enum OptionalRuleId {
|
||||
LanguageSpecialization = "OR_15",
|
||||
HigherDefenseStats = "OR_17",
|
||||
}
|
||||
|
||||
export enum ConditionId {
|
||||
SikaryanVerlust = "COND_11",
|
||||
DaemonischeAuszehrung = "COND_14",
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
|
||||
function t(json) {
|
||||
var scope = Json_decode.string(json);
|
||||
switch (scope) {
|
||||
case "SPI" :
|
||||
Json_decode.$$int(json);
|
||||
return /* SPI */0;
|
||||
case "SPI/2" :
|
||||
Json_decode.$$int(json);
|
||||
return /* DOUBLE_SPI */1;
|
||||
case "SPI/TOU" :
|
||||
Json_decode.$$int(json);
|
||||
return /* MAX_SPI_TOU */3;
|
||||
case "TOU" :
|
||||
Json_decode.$$int(json);
|
||||
return /* TOU */2;
|
||||
default:
|
||||
throw {
|
||||
RE_EXN_ID: Json_decode.DecodeError,
|
||||
_1: "Unknown check modifier: " + scope,
|
||||
Error: new Error()
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
t: t
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* No side effect */
|
||||
@@ -1,23 +0,0 @@
|
||||
type t =
|
||||
| SPI
|
||||
| DOUBLE_SPI
|
||||
| TOU
|
||||
| MAX_SPI_TOU;
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
|
||||
let t = json =>
|
||||
json
|
||||
|> string
|
||||
|> (
|
||||
scope =>
|
||||
switch (scope) {
|
||||
| "SPI" => json |> int |> (_ => SPI)
|
||||
| "SPI/2" => json |> int |> (_ => DOUBLE_SPI)
|
||||
| "TOU" => json |> int |> (_ => TOU)
|
||||
| "SPI/TOU" => json |> int |> (_ => MAX_SPI_TOU)
|
||||
| _ => raise(DecodeError("Unknown check modifier: " ++ scope))
|
||||
}
|
||||
);
|
||||
};
|
||||
@@ -1,32 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
|
||||
var Rules = {};
|
||||
|
||||
var Activatable = {};
|
||||
|
||||
var Attribute = {};
|
||||
|
||||
var Energies = {};
|
||||
|
||||
var ActivatableSkill = {};
|
||||
|
||||
var Skill = {};
|
||||
|
||||
var Item = {};
|
||||
|
||||
var Pact = {};
|
||||
|
||||
var TransferUnfamiliar = {};
|
||||
|
||||
exports.Rules = Rules;
|
||||
exports.Activatable = Activatable;
|
||||
exports.Attribute = Attribute;
|
||||
exports.Energies = Energies;
|
||||
exports.ActivatableSkill = ActivatableSkill;
|
||||
exports.Skill = Skill;
|
||||
exports.Item = Item;
|
||||
exports.Pact = Pact;
|
||||
exports.TransferUnfamiliar = TransferUnfamiliar;
|
||||
/* No side effect */
|
||||
@@ -1,407 +0,0 @@
|
||||
/* TypeScript file generated from Hero.re by genType. */
|
||||
/* eslint-disable import/first */
|
||||
|
||||
|
||||
import {activatableAndSkillId as Ids_activatableAndSkillId} from '../../../src/App/Constants/Ids.gen';
|
||||
|
||||
import {activatableId as Ids_activatableId} from '../../../src/App/Constants/Ids.gen';
|
||||
|
||||
import {hitZoneArmorZoneItemId as Ids_hitZoneArmorZoneItemId} from '../../../src/App/Constants/Ids.gen';
|
||||
|
||||
import {list} from '../../../src/shims/ReasonPervasives.shim';
|
||||
|
||||
import {maybe as Maybe_maybe} from '../../../src/Data/Maybe.gen';
|
||||
|
||||
import {oneOrMany as GenericHelpers_oneOrMany} from '../../../src/App/Utilities/GenericHelpers.gen';
|
||||
|
||||
import {selectOptionId as Ids_selectOptionId} from '../../../src/App/Constants/Ids.gen';
|
||||
|
||||
import {t as IntMap_t} from '../../../src/shims/IntMap.gen';
|
||||
|
||||
import {t as IntSet_t} from '../../../src/shims/IntSet.gen';
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type phase = "Outline" | "Definition" | "Advancement";
|
||||
export type Phase = phase;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type sex = "Male" | "Female";
|
||||
export type Sex = sex;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type baseOrWithVariant =
|
||||
{ tag: "Base"; value: number }
|
||||
| { tag: "WithVariant"; value: [number, number] };
|
||||
export type BaseOrWithVariant = baseOrWithVariant;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Rules_activeRule = { readonly id: number; readonly options: list<number> };
|
||||
export type ActiveRule = Rules_activeRule;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Rules_t = {
|
||||
readonly areAllPublicationsActive: boolean;
|
||||
readonly activePublications: list<string>;
|
||||
readonly activeFocusRules: list<Rules_activeRule>;
|
||||
readonly activeOptionalRules: list<Rules_activeRule>
|
||||
};
|
||||
export type Rules = Rules_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type personalData = {
|
||||
readonly family: Maybe_maybe<string>;
|
||||
readonly placeOfBirth: Maybe_maybe<string>;
|
||||
readonly dateOfBirth: Maybe_maybe<string>;
|
||||
readonly age: Maybe_maybe<string>;
|
||||
readonly hairColor: Maybe_maybe<number>;
|
||||
readonly eyeColor: Maybe_maybe<number>;
|
||||
readonly size: Maybe_maybe<string>;
|
||||
readonly weight: Maybe_maybe<string>;
|
||||
readonly title: Maybe_maybe<string>;
|
||||
readonly socialStatus: Maybe_maybe<number>;
|
||||
readonly characteristics: Maybe_maybe<string>;
|
||||
readonly otherInfo: Maybe_maybe<string>;
|
||||
readonly cultureAreaKnowledge: Maybe_maybe<string>
|
||||
};
|
||||
export type PersonalData = personalData;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Activatable_option =
|
||||
{ NAME: "Generic"; VAL: number }
|
||||
| { NAME: "Skill"; VAL: number }
|
||||
| { NAME: "CombatTechnique"; VAL: number }
|
||||
| { NAME: "Spell"; VAL: number }
|
||||
| { NAME: "Cantrip"; VAL: number }
|
||||
| { NAME: "LiturgicalChant"; VAL: number }
|
||||
| { NAME: "Blessing"; VAL: number }
|
||||
| { NAME: "CustomInput"; VAL: string };
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Activatable_single = {
|
||||
readonly options: list<Activatable_option>;
|
||||
readonly level: Maybe_maybe<number>;
|
||||
readonly customCost: Maybe_maybe<number>
|
||||
};
|
||||
export type ActivatableSingle = Activatable_single;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Activatable_dependency = {
|
||||
readonly source: Ids_activatableId;
|
||||
readonly target: GenericHelpers_oneOrMany<Ids_activatableId>;
|
||||
readonly active: boolean;
|
||||
readonly options: list<GenericHelpers_oneOrMany<Ids_selectOptionId>>;
|
||||
readonly level: Maybe_maybe<number>
|
||||
};
|
||||
export type ActivatableDependency = Activatable_dependency;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Activatable_t = {
|
||||
readonly id: number;
|
||||
readonly active: list<Activatable_single>;
|
||||
readonly dependencies: list<Activatable_dependency>
|
||||
};
|
||||
export type Activatable = Activatable_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Attribute_dependency = {
|
||||
readonly source: Ids_activatableId;
|
||||
readonly target: GenericHelpers_oneOrMany<number>;
|
||||
readonly value: Maybe_maybe<number>
|
||||
};
|
||||
export type AttributeDependency = Attribute_dependency;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Attribute_t = {
|
||||
readonly id: number;
|
||||
readonly value: number;
|
||||
readonly dependencies: list<Attribute_dependency>
|
||||
};
|
||||
export type Attribute = Attribute_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Energies_permanentEnergyLoss = { readonly lost: number };
|
||||
export type PermanentEnergyLoss = Energies_permanentEnergyLoss;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Energies_permanentEnergyLossAndBoughtBack = { readonly lost: number; readonly boughtBack: number };
|
||||
export type PermanentEnergyLossAndBoughtBack = Energies_permanentEnergyLossAndBoughtBack;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Energies_t = {
|
||||
readonly addedLifePoints: number;
|
||||
readonly addedArcaneEnergyPoints: number;
|
||||
readonly addedKarmaPoints: number;
|
||||
readonly permanentLifePoints: Energies_permanentEnergyLoss;
|
||||
readonly permanentArcaneEnergyPoints: Energies_permanentEnergyLossAndBoughtBack;
|
||||
readonly permanentKarmaPoints: Energies_permanentEnergyLossAndBoughtBack
|
||||
};
|
||||
export type Energies = Energies_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type ActivatableSkill_value =
|
||||
"Inactive"
|
||||
| { tag: "Active"; value: number };
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type ActivatableSkill_dependency = {
|
||||
readonly source: Ids_activatableAndSkillId;
|
||||
readonly target: GenericHelpers_oneOrMany<number>;
|
||||
readonly value: ActivatableSkill_value
|
||||
};
|
||||
export type ActivatableSkillDependency = ActivatableSkill_dependency;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type ActivatableSkill_t = {
|
||||
readonly id: number;
|
||||
readonly value: ActivatableSkill_value;
|
||||
readonly dependencies: list<ActivatableSkill_dependency>
|
||||
};
|
||||
export type ActivatableSkill = ActivatableSkill_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Skill_dependency = {
|
||||
readonly source: Ids_activatableId;
|
||||
readonly target: GenericHelpers_oneOrMany<number>;
|
||||
readonly value: number
|
||||
};
|
||||
export type SkillDependency = Skill_dependency;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Skill_t = {
|
||||
readonly id: number;
|
||||
readonly value: number;
|
||||
readonly dependencies: list<Skill_dependency>
|
||||
};
|
||||
export type Skill = Skill_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_mundaneItem = { readonly structurePoints: Maybe_maybe<GenericHelpers_oneOrMany<number>> };
|
||||
export type MundaneItem = Item_mundaneItem;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_primaryAttributeDamageThreshold =
|
||||
{ tag: "SameAttribute"; value: number }
|
||||
| { tag: "AgilityStrength"; value: [number, number] }
|
||||
| { tag: "DifferentAttribute"; value: [number, number] };
|
||||
export type PrimaryAttributeDamageThreshold = Item_primaryAttributeDamageThreshold;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_damage = {
|
||||
readonly amount: number;
|
||||
readonly sides: number;
|
||||
readonly flat: Maybe_maybe<number>
|
||||
};
|
||||
export type Damage = Item_damage;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_meleeWeapon = {
|
||||
readonly combatTechnique: number;
|
||||
readonly damage: Item_damage;
|
||||
readonly primaryAttributeDamageThreshold: Maybe_maybe<Item_primaryAttributeDamageThreshold>;
|
||||
readonly at: Maybe_maybe<number>;
|
||||
readonly pa: Maybe_maybe<number>;
|
||||
readonly reach: Maybe_maybe<number>;
|
||||
readonly length: Maybe_maybe<number>;
|
||||
readonly structurePoints: Maybe_maybe<GenericHelpers_oneOrMany<number>>;
|
||||
readonly breakingPointRatingMod: Maybe_maybe<number>;
|
||||
readonly isParryingWeapon: boolean;
|
||||
readonly isTwoHandedWeapon: boolean;
|
||||
readonly isImprovisedWeapon: boolean;
|
||||
readonly damaged: Maybe_maybe<number>
|
||||
};
|
||||
export type MeleeWeapon = Item_meleeWeapon;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_rangedWeapon = {
|
||||
readonly combatTechnique: number;
|
||||
readonly damage: Maybe_maybe<Item_damage>;
|
||||
readonly length: Maybe_maybe<number>;
|
||||
readonly range: [number, number, number];
|
||||
readonly reloadTime: GenericHelpers_oneOrMany<number>;
|
||||
readonly ammunition: Maybe_maybe<number>;
|
||||
readonly isImprovisedWeapon: boolean;
|
||||
readonly damaged: Maybe_maybe<number>
|
||||
};
|
||||
export type RangedWeapon = Item_rangedWeapon;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_armor = {
|
||||
readonly protection: number;
|
||||
readonly encumbrance: number;
|
||||
readonly hasAdditionalPenalties: boolean;
|
||||
readonly iniMod: Maybe_maybe<number>;
|
||||
readonly movMod: Maybe_maybe<number>;
|
||||
readonly sturdinessMod: Maybe_maybe<number>;
|
||||
readonly armorType: number;
|
||||
readonly wear: Maybe_maybe<number>;
|
||||
readonly isHitZoneArmorOnly: Maybe_maybe<boolean>
|
||||
};
|
||||
export type Armor = Item_armor;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_special =
|
||||
{ tag: "MundaneItem"; value: Item_mundaneItem }
|
||||
| { tag: "MeleeWeapon"; value: Item_meleeWeapon }
|
||||
| { tag: "RangedWeapon"; value: Item_rangedWeapon }
|
||||
| { tag: "CombinedWeapon"; value: [Item_meleeWeapon, Item_rangedWeapon] }
|
||||
| { tag: "Armor"; value: Item_armor };
|
||||
export type Special = Item_special;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Item_t = {
|
||||
readonly id: number;
|
||||
readonly amount: Maybe_maybe<number>;
|
||||
readonly price: Maybe_maybe<number>;
|
||||
readonly weight: Maybe_maybe<number>;
|
||||
readonly template: Maybe_maybe<number>;
|
||||
readonly isTemplateLocked: boolean;
|
||||
readonly carriedWhere: Maybe_maybe<string>;
|
||||
readonly special: Maybe_maybe<Item_special>;
|
||||
readonly gr: number
|
||||
};
|
||||
export type Item = Item_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type hitZoneArmor = {
|
||||
readonly id: number;
|
||||
readonly name: string;
|
||||
readonly head: Maybe_maybe<Ids_hitZoneArmorZoneItemId>;
|
||||
readonly headWear: Maybe_maybe<number>;
|
||||
readonly leftArm: Maybe_maybe<Ids_hitZoneArmorZoneItemId>;
|
||||
readonly leftArmWear: Maybe_maybe<number>;
|
||||
readonly rightArm: Maybe_maybe<Ids_hitZoneArmorZoneItemId>;
|
||||
readonly rightArmWear: Maybe_maybe<number>;
|
||||
readonly torso: Maybe_maybe<Ids_hitZoneArmorZoneItemId>;
|
||||
readonly torsoWear: Maybe_maybe<number>;
|
||||
readonly leftLeg: Maybe_maybe<Ids_hitZoneArmorZoneItemId>;
|
||||
readonly leftLegWear: Maybe_maybe<number>;
|
||||
readonly rightLeg: Maybe_maybe<Ids_hitZoneArmorZoneItemId>;
|
||||
readonly rightLegWear: Maybe_maybe<number>
|
||||
};
|
||||
export type HitZoneArmor = hitZoneArmor;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type purse = {
|
||||
readonly ducats: number;
|
||||
readonly silverthalers: number;
|
||||
readonly halers: number;
|
||||
readonly kreutzers: number
|
||||
};
|
||||
export type Purse = purse;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type pet = {
|
||||
readonly id: number;
|
||||
readonly name: string;
|
||||
readonly avatar: Maybe_maybe<string>;
|
||||
readonly size: Maybe_maybe<string>;
|
||||
readonly type: Maybe_maybe<string>;
|
||||
readonly attack: Maybe_maybe<string>;
|
||||
readonly dp: Maybe_maybe<string>;
|
||||
readonly reach: Maybe_maybe<string>;
|
||||
readonly actions: Maybe_maybe<string>;
|
||||
readonly skills: Maybe_maybe<string>;
|
||||
readonly abilities: Maybe_maybe<string>;
|
||||
readonly notes: Maybe_maybe<string>;
|
||||
readonly spentAp: Maybe_maybe<string>;
|
||||
readonly totalAp: Maybe_maybe<string>;
|
||||
readonly cou: Maybe_maybe<string>;
|
||||
readonly sgc: Maybe_maybe<string>;
|
||||
readonly int: Maybe_maybe<string>;
|
||||
readonly cha: Maybe_maybe<string>;
|
||||
readonly dex: Maybe_maybe<string>;
|
||||
readonly agi: Maybe_maybe<string>;
|
||||
readonly con: Maybe_maybe<string>;
|
||||
readonly str: Maybe_maybe<string>;
|
||||
readonly lp: Maybe_maybe<string>;
|
||||
readonly ae: Maybe_maybe<string>;
|
||||
readonly spi: Maybe_maybe<string>;
|
||||
readonly tou: Maybe_maybe<string>;
|
||||
readonly pro: Maybe_maybe<string>;
|
||||
readonly ini: Maybe_maybe<string>;
|
||||
readonly mov: Maybe_maybe<string>;
|
||||
readonly at: Maybe_maybe<string>;
|
||||
readonly pa: Maybe_maybe<string>
|
||||
};
|
||||
export type Pet = pet;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Pact_domain =
|
||||
{ tag: "Predefined"; value: number }
|
||||
| { tag: "Custom"; value: string };
|
||||
export type PactDomain = Pact_domain;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type Pact_t = {
|
||||
readonly category: number;
|
||||
readonly level: number;
|
||||
readonly type: number;
|
||||
readonly domain: Pact_domain;
|
||||
readonly name: string
|
||||
};
|
||||
export type Pact = Pact_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type styleDependency = {
|
||||
readonly id: GenericHelpers_oneOrMany<number>;
|
||||
readonly active: Maybe_maybe<number>;
|
||||
readonly origin: number
|
||||
};
|
||||
export type StyleDependency = styleDependency;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type TransferUnfamiliar_id =
|
||||
"Spells"
|
||||
| "LiturgicalChants"
|
||||
| { tag: "Spell"; value: number }
|
||||
| { tag: "LiturgicalChant"; value: number };
|
||||
export type TransferUnfamiliarId = TransferUnfamiliar_id;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type TransferUnfamiliar_t = { readonly id: TransferUnfamiliar_id; readonly srcId: number };
|
||||
export type TransferUnfamiliar = TransferUnfamiliar_t;
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type t = {
|
||||
readonly name: string;
|
||||
readonly dateCreated: Date;
|
||||
readonly dateModified: Date;
|
||||
readonly adventurePointsTotal: number;
|
||||
readonly experienceLevel: number;
|
||||
readonly sex: sex;
|
||||
readonly phase: phase;
|
||||
readonly locale: string;
|
||||
readonly avatar: Maybe_maybe<string>;
|
||||
readonly race: Maybe_maybe<number>;
|
||||
readonly raceVariant: Maybe_maybe<baseOrWithVariant>;
|
||||
readonly culture: Maybe_maybe<number>;
|
||||
readonly isCulturalPackageActive: boolean;
|
||||
readonly profession: Maybe_maybe<baseOrWithVariant>;
|
||||
readonly professionName: Maybe_maybe<string>;
|
||||
readonly rules: Rules_t;
|
||||
readonly personalData: personalData;
|
||||
readonly advantages: IntMap_t<Activatable_t>;
|
||||
readonly disadvantages: IntMap_t<Activatable_t>;
|
||||
readonly specialAbilities: IntMap_t<Activatable_t>;
|
||||
readonly attributes: IntMap_t<Attribute_t>;
|
||||
readonly attributeAdjustmentSelected: number;
|
||||
readonly energies: Energies_t;
|
||||
readonly skills: IntMap_t<Skill_t>;
|
||||
readonly combatTechniques: IntMap_t<Skill_t>;
|
||||
readonly spells: IntMap_t<ActivatableSkill_t>;
|
||||
readonly liturgicalChants: IntMap_t<ActivatableSkill_t>;
|
||||
readonly cantrips: IntSet_t;
|
||||
readonly blessings: IntSet_t;
|
||||
readonly items: list<Item_t>;
|
||||
readonly hitZoneArmors: list<hitZoneArmor>;
|
||||
readonly purse: purse;
|
||||
readonly pets: list<pet>;
|
||||
readonly pact: Maybe_maybe<Pact_t>;
|
||||
readonly combatStyleDependencies: list<styleDependency>;
|
||||
readonly magicalStyleDependencies: list<styleDependency>;
|
||||
readonly blessedStyleDependencies: list<styleDependency>;
|
||||
readonly skillStyleDependencies: list<styleDependency>;
|
||||
readonly socialStatusDependencies: list<number>;
|
||||
readonly transferredUnfamiliarSpells: list<TransferUnfamiliar_t>
|
||||
};
|
||||
export type Hero = t;
|
||||
@@ -1,449 +0,0 @@
|
||||
open Maybe;
|
||||
open GenericHelpers;
|
||||
|
||||
[@genType "Phase"]
|
||||
type phase =
|
||||
| Outline
|
||||
| Definition
|
||||
| Advancement;
|
||||
|
||||
[@genType "Sex"]
|
||||
type sex =
|
||||
| Male
|
||||
| Female;
|
||||
|
||||
[@genType "BaseOrWithVariant"]
|
||||
type baseOrWithVariant =
|
||||
| Base(int)
|
||||
| WithVariant(int, int);
|
||||
|
||||
module Rules = {
|
||||
[@genType "ActiveRule"]
|
||||
type activeRule = {
|
||||
id: int,
|
||||
options: list(int),
|
||||
};
|
||||
|
||||
[@genType "Rules"]
|
||||
type t = {
|
||||
areAllPublicationsActive: bool,
|
||||
activePublications: list(string),
|
||||
activeFocusRules: list(activeRule),
|
||||
activeOptionalRules: list(activeRule),
|
||||
};
|
||||
};
|
||||
|
||||
[@genType "PersonalData"]
|
||||
type personalData = {
|
||||
family: maybe(string),
|
||||
placeOfBirth: maybe(string),
|
||||
dateOfBirth: maybe(string),
|
||||
age: maybe(string),
|
||||
hairColor: maybe(int),
|
||||
eyeColor: maybe(int),
|
||||
size: maybe(string),
|
||||
weight: maybe(string),
|
||||
title: maybe(string),
|
||||
socialStatus: maybe(int),
|
||||
characteristics: maybe(string),
|
||||
otherInfo: maybe(string),
|
||||
cultureAreaKnowledge: maybe(string),
|
||||
};
|
||||
|
||||
module Activatable = {
|
||||
type option = [
|
||||
| `Generic(int)
|
||||
| `Skill(int)
|
||||
| `CombatTechnique(int)
|
||||
| `Spell(int)
|
||||
| `Cantrip(int)
|
||||
| `LiturgicalChant(int)
|
||||
| `Blessing(int)
|
||||
| `CustomInput(string)
|
||||
];
|
||||
|
||||
[@genType "ActivatableSingle"]
|
||||
type single = {
|
||||
options: list(option),
|
||||
level: maybe(int),
|
||||
customCost: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "ActivatableDependency"]
|
||||
type dependency = {
|
||||
source: Ids.activatableId,
|
||||
target: oneOrMany(Ids.activatableId),
|
||||
active: bool,
|
||||
options: list(oneOrMany(Ids.selectOptionId)),
|
||||
level: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "Activatable"]
|
||||
type t = {
|
||||
id: int,
|
||||
active: list(single),
|
||||
dependencies: list(dependency),
|
||||
};
|
||||
};
|
||||
|
||||
module Attribute = {
|
||||
[@genType "AttributeDependency"]
|
||||
type dependency = {
|
||||
source: Ids.activatableId,
|
||||
target: oneOrMany(int),
|
||||
value: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "Attribute"]
|
||||
type t = {
|
||||
id: int,
|
||||
value: int,
|
||||
dependencies: list(dependency),
|
||||
};
|
||||
};
|
||||
|
||||
module Energies = {
|
||||
[@genType "PermanentEnergyLoss"]
|
||||
type permanentEnergyLoss = {lost: int};
|
||||
|
||||
[@genType "PermanentEnergyLossAndBoughtBack"]
|
||||
type permanentEnergyLossAndBoughtBack = {
|
||||
lost: int,
|
||||
boughtBack: int,
|
||||
};
|
||||
|
||||
[@genType "Energies"]
|
||||
type t = {
|
||||
addedLifePoints: int,
|
||||
addedArcaneEnergyPoints: int,
|
||||
addedKarmaPoints: int,
|
||||
permanentLifePoints: permanentEnergyLoss,
|
||||
permanentArcaneEnergyPoints: permanentEnergyLossAndBoughtBack,
|
||||
permanentKarmaPoints: permanentEnergyLossAndBoughtBack,
|
||||
};
|
||||
};
|
||||
|
||||
module ActivatableSkill = {
|
||||
type value =
|
||||
| Inactive
|
||||
| Active(int);
|
||||
|
||||
[@genType "ActivatableSkillDependency"]
|
||||
type dependency = {
|
||||
source: Ids.activatableAndSkillId,
|
||||
target: oneOrMany(int),
|
||||
value,
|
||||
};
|
||||
|
||||
[@genType "ActivatableSkill"]
|
||||
type t = {
|
||||
id: int,
|
||||
value,
|
||||
dependencies: list(dependency),
|
||||
};
|
||||
};
|
||||
|
||||
module Skill = {
|
||||
[@genType "SkillDependency"]
|
||||
type dependency = {
|
||||
source: Ids.activatableId,
|
||||
target: oneOrMany(int),
|
||||
value: int,
|
||||
};
|
||||
|
||||
[@genType "Skill"]
|
||||
type t = {
|
||||
id: int,
|
||||
value: int,
|
||||
dependencies: list(dependency),
|
||||
};
|
||||
};
|
||||
|
||||
module Item = {
|
||||
[@genType "MundaneItem"]
|
||||
type mundaneItem = {structurePoints: maybe(oneOrMany(int))};
|
||||
|
||||
[@genType "PrimaryAttributeDamageThreshold"]
|
||||
type primaryAttributeDamageThreshold =
|
||||
| SameAttribute(int)
|
||||
| AgilityStrength(int, int)
|
||||
| DifferentAttribute(int, int);
|
||||
|
||||
[@genType "Damage"]
|
||||
type damage = {
|
||||
amount: int,
|
||||
sides: int,
|
||||
flat: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "MeleeWeapon"]
|
||||
type meleeWeapon = {
|
||||
combatTechnique: int,
|
||||
damage,
|
||||
primaryAttributeDamageThreshold: maybe(primaryAttributeDamageThreshold),
|
||||
at: maybe(int),
|
||||
pa: maybe(int),
|
||||
reach: maybe(int),
|
||||
length: maybe(int),
|
||||
structurePoints: maybe(oneOrMany(int)),
|
||||
breakingPointRatingMod: maybe(int),
|
||||
isParryingWeapon: bool,
|
||||
isTwoHandedWeapon: bool,
|
||||
isImprovisedWeapon: bool,
|
||||
damaged: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "RangedWeapon"]
|
||||
type rangedWeapon = {
|
||||
combatTechnique: int,
|
||||
damage: maybe(damage),
|
||||
length: maybe(int),
|
||||
range: (int, int, int),
|
||||
reloadTime: oneOrMany(int),
|
||||
ammunition: maybe(int),
|
||||
isImprovisedWeapon: bool,
|
||||
damaged: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "Armor"]
|
||||
type armor = {
|
||||
protection: int,
|
||||
encumbrance: int,
|
||||
hasAdditionalPenalties: bool,
|
||||
iniMod: maybe(int),
|
||||
movMod: maybe(int),
|
||||
sturdinessMod: maybe(int),
|
||||
armorType: int,
|
||||
wear: maybe(int),
|
||||
isHitZoneArmorOnly: maybe(bool),
|
||||
};
|
||||
|
||||
[@genType "Special"]
|
||||
type special =
|
||||
| MundaneItem(mundaneItem)
|
||||
| MeleeWeapon(meleeWeapon)
|
||||
| RangedWeapon(rangedWeapon)
|
||||
| CombinedWeapon(meleeWeapon, rangedWeapon)
|
||||
| Armor(armor);
|
||||
|
||||
[@genType "Item"]
|
||||
type t = {
|
||||
id: int,
|
||||
amount: maybe(int),
|
||||
price: maybe(int),
|
||||
weight: maybe(int),
|
||||
template: maybe(int),
|
||||
isTemplateLocked: bool,
|
||||
carriedWhere: maybe(string),
|
||||
special: maybe(special),
|
||||
gr: int,
|
||||
};
|
||||
};
|
||||
|
||||
[@genType "HitZoneArmor"]
|
||||
type hitZoneArmor = {
|
||||
/**
|
||||
* The hit zone armor's ID.
|
||||
*/
|
||||
id: int,
|
||||
/**
|
||||
* The name of the hit zone armor.
|
||||
*/
|
||||
name: string,
|
||||
/**
|
||||
* ID of the armor at zone *head*. Can be either a template ID or the ID of an
|
||||
* armor from `items`.
|
||||
*/
|
||||
head: maybe(Ids.hitZoneArmorZoneItemId),
|
||||
/**
|
||||
* The level of wear at zone *head*, if any. Ignores `wear` if custom armor is
|
||||
* used, even if `headWear` is not defined.
|
||||
*/
|
||||
headWear: maybe(int),
|
||||
/**
|
||||
* ID of the armor at zone *left arm*. Can be either a template ID or the ID
|
||||
* of an armor from `items`.
|
||||
*/
|
||||
leftArm: maybe(Ids.hitZoneArmorZoneItemId),
|
||||
/**
|
||||
* The level of wear at zone *left arm*, if any. Ignores `wear` if custom
|
||||
* armor is used, even if `leftArmWear` is not defined.
|
||||
*/
|
||||
leftArmWear: maybe(int),
|
||||
/**
|
||||
* ID of the armor at zone *right arm*. Can be either a template ID or the ID
|
||||
* of an item from `items`.
|
||||
*/
|
||||
rightArm: maybe(Ids.hitZoneArmorZoneItemId),
|
||||
/**
|
||||
* The level of wear at zone *right arm*, if any. Ignores `wear` if custom
|
||||
* armor is used, even if `rightArmWear` is not defined.
|
||||
*/
|
||||
rightArmWear: maybe(int),
|
||||
/**
|
||||
* ID of the armor at zone *torso*. Can be either a template ID or the ID of
|
||||
* an armor from `items`.
|
||||
*/
|
||||
torso: maybe(Ids.hitZoneArmorZoneItemId),
|
||||
/**
|
||||
* The level of wear at zone *torso*, if any. Ignores `wear` if custom armor
|
||||
* is used, even if `torsoWear` is not defined.
|
||||
*/
|
||||
torsoWear: maybe(int),
|
||||
/**
|
||||
* ID of the armor at zone *left leg*. Can be either a template ID or the ID
|
||||
* of an armor from `items`.
|
||||
*/
|
||||
leftLeg: maybe(Ids.hitZoneArmorZoneItemId),
|
||||
/**
|
||||
* The level of wear at zone *left leg*, if any. Ignores `wear` if custom
|
||||
* armor is used, even if `leftLegWear` is not defined.
|
||||
*/
|
||||
leftLegWear: maybe(int),
|
||||
/**
|
||||
* ID of the armor at zone *right leg*. Can be either a template ID or the ID
|
||||
* of an armor from `items`.
|
||||
*/
|
||||
rightLeg: maybe(Ids.hitZoneArmorZoneItemId),
|
||||
/**
|
||||
* The level of wear at zone *right leg*, if any. Ignores `wear` if custom
|
||||
* armor is used, even if `rightLegWear` is not defined.
|
||||
*/
|
||||
rightLegWear: maybe(int),
|
||||
};
|
||||
|
||||
[@genType "Purse"]
|
||||
type purse = {
|
||||
ducats: int,
|
||||
silverthalers: int,
|
||||
halers: int,
|
||||
kreutzers: int,
|
||||
};
|
||||
|
||||
[@genType "Pet"]
|
||||
type pet = {
|
||||
id: int,
|
||||
name: string,
|
||||
avatar: maybe(string),
|
||||
size: maybe(string),
|
||||
[@bs.as "type"]
|
||||
type_: maybe(string),
|
||||
attack: maybe(string),
|
||||
dp: maybe(string),
|
||||
reach: maybe(string),
|
||||
actions: maybe(string),
|
||||
skills: maybe(string),
|
||||
abilities: maybe(string),
|
||||
notes: maybe(string),
|
||||
spentAp: maybe(string),
|
||||
totalAp: maybe(string),
|
||||
cou: maybe(string),
|
||||
sgc: maybe(string),
|
||||
int: maybe(string),
|
||||
cha: maybe(string),
|
||||
dex: maybe(string),
|
||||
agi: maybe(string),
|
||||
con: maybe(string),
|
||||
str: maybe(string),
|
||||
lp: maybe(string),
|
||||
ae: maybe(string),
|
||||
spi: maybe(string),
|
||||
tou: maybe(string),
|
||||
pro: maybe(string),
|
||||
ini: maybe(string),
|
||||
mov: maybe(string),
|
||||
at: maybe(string),
|
||||
pa: maybe(string),
|
||||
};
|
||||
|
||||
module Pact = {
|
||||
[@genType "PactDomain"]
|
||||
type domain =
|
||||
| Predefined(int)
|
||||
| Custom(string);
|
||||
|
||||
[@genType "Pact"]
|
||||
type t = {
|
||||
category: int,
|
||||
level: int,
|
||||
[@bs.as "type"]
|
||||
type_: int,
|
||||
domain,
|
||||
name: string,
|
||||
};
|
||||
};
|
||||
|
||||
[@genType "StyleDependency"]
|
||||
type styleDependency = {
|
||||
/**
|
||||
* The extended special ability or list of available special abilities.
|
||||
*/
|
||||
id: oneOrMany(int),
|
||||
/**
|
||||
* If a ability meets a given id, then `Just id`, otherwise `Nothing`.
|
||||
*/
|
||||
active: maybe(int),
|
||||
/**
|
||||
* The style's id.
|
||||
*/
|
||||
origin: int,
|
||||
};
|
||||
|
||||
module TransferUnfamiliar = {
|
||||
[@genType "TransferUnfamiliarId"]
|
||||
type id =
|
||||
| Spell(int)
|
||||
| Spells
|
||||
| LiturgicalChant(int)
|
||||
| LiturgicalChants;
|
||||
|
||||
[@genType "TransferUnfamiliar"]
|
||||
type t = {
|
||||
id,
|
||||
srcId: int,
|
||||
};
|
||||
};
|
||||
|
||||
[@genType "Hero"]
|
||||
type t = {
|
||||
name: string,
|
||||
dateCreated: Js.Date.t,
|
||||
dateModified: Js.Date.t,
|
||||
adventurePointsTotal: int,
|
||||
experienceLevel: int,
|
||||
sex,
|
||||
phase,
|
||||
locale: string,
|
||||
avatar: maybe(string),
|
||||
race: maybe(int),
|
||||
raceVariant: maybe(baseOrWithVariant),
|
||||
culture: maybe(int),
|
||||
isCulturalPackageActive: bool,
|
||||
profession: maybe(baseOrWithVariant),
|
||||
professionName: maybe(string),
|
||||
rules: Rules.t,
|
||||
personalData,
|
||||
advantages: IntMap.t(Activatable.t),
|
||||
disadvantages: IntMap.t(Activatable.t),
|
||||
specialAbilities: IntMap.t(Activatable.t),
|
||||
attributes: IntMap.t(Attribute.t),
|
||||
attributeAdjustmentSelected: int,
|
||||
energies: Energies.t,
|
||||
skills: IntMap.t(Skill.t),
|
||||
combatTechniques: IntMap.t(Skill.t),
|
||||
spells: IntMap.t(ActivatableSkill.t),
|
||||
liturgicalChants: IntMap.t(ActivatableSkill.t),
|
||||
cantrips: IntSet.t,
|
||||
blessings: IntSet.t,
|
||||
items: list(Item.t),
|
||||
hitZoneArmors: list(hitZoneArmor),
|
||||
purse,
|
||||
pets: list(pet),
|
||||
pact: maybe(Pact.t),
|
||||
combatStyleDependencies: list(styleDependency),
|
||||
magicalStyleDependencies: list(styleDependency),
|
||||
blessedStyleDependencies: list(styleDependency),
|
||||
skillStyleDependencies: list(styleDependency),
|
||||
socialStatusDependencies: list(int),
|
||||
transferredUnfamiliarSpells: list(TransferUnfamiliar.t),
|
||||
};
|
||||
@@ -1,125 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
|
||||
var SourceRef;
|
||||
|
||||
var Erratum;
|
||||
|
||||
var Prerequisites;
|
||||
|
||||
var Skill;
|
||||
|
||||
var SelectOption;
|
||||
|
||||
var Advantage;
|
||||
|
||||
var AnimistForce;
|
||||
|
||||
var Attribute;
|
||||
|
||||
var BlessedTradition;
|
||||
|
||||
var Blessing;
|
||||
|
||||
var Cantrip;
|
||||
|
||||
var CombatTechnique;
|
||||
|
||||
var Condition;
|
||||
|
||||
var Culture;
|
||||
|
||||
var Curse;
|
||||
|
||||
var DerivedCharacteristic;
|
||||
|
||||
var Disadvantage;
|
||||
|
||||
var DominationRitual;
|
||||
|
||||
var ElvenMagicalSong;
|
||||
|
||||
var EquipmentPackage;
|
||||
|
||||
var ExperienceLevel;
|
||||
|
||||
var FocusRule;
|
||||
|
||||
var GeodeRitual;
|
||||
|
||||
var Item;
|
||||
|
||||
var LiturgicalChant;
|
||||
|
||||
var MagicalDance;
|
||||
|
||||
var MagicalMelody;
|
||||
|
||||
var MagicalTradition;
|
||||
|
||||
var Messages;
|
||||
|
||||
var OptionalRule;
|
||||
|
||||
var PactCategory;
|
||||
|
||||
var Patron;
|
||||
|
||||
var Profession;
|
||||
|
||||
var Publication;
|
||||
|
||||
var Race;
|
||||
|
||||
var RogueSpell;
|
||||
|
||||
var SpecialAbility;
|
||||
|
||||
var Spell;
|
||||
|
||||
var State;
|
||||
|
||||
var ZibiljaRitual;
|
||||
|
||||
exports.SourceRef = SourceRef;
|
||||
exports.Erratum = Erratum;
|
||||
exports.Prerequisites = Prerequisites;
|
||||
exports.Skill = Skill;
|
||||
exports.SelectOption = SelectOption;
|
||||
exports.Advantage = Advantage;
|
||||
exports.AnimistForce = AnimistForce;
|
||||
exports.Attribute = Attribute;
|
||||
exports.BlessedTradition = BlessedTradition;
|
||||
exports.Blessing = Blessing;
|
||||
exports.Cantrip = Cantrip;
|
||||
exports.CombatTechnique = CombatTechnique;
|
||||
exports.Condition = Condition;
|
||||
exports.Culture = Culture;
|
||||
exports.Curse = Curse;
|
||||
exports.DerivedCharacteristic = DerivedCharacteristic;
|
||||
exports.Disadvantage = Disadvantage;
|
||||
exports.DominationRitual = DominationRitual;
|
||||
exports.ElvenMagicalSong = ElvenMagicalSong;
|
||||
exports.EquipmentPackage = EquipmentPackage;
|
||||
exports.ExperienceLevel = ExperienceLevel;
|
||||
exports.FocusRule = FocusRule;
|
||||
exports.GeodeRitual = GeodeRitual;
|
||||
exports.Item = Item;
|
||||
exports.LiturgicalChant = LiturgicalChant;
|
||||
exports.MagicalDance = MagicalDance;
|
||||
exports.MagicalMelody = MagicalMelody;
|
||||
exports.MagicalTradition = MagicalTradition;
|
||||
exports.Messages = Messages;
|
||||
exports.OptionalRule = OptionalRule;
|
||||
exports.PactCategory = PactCategory;
|
||||
exports.Patron = Patron;
|
||||
exports.Profession = Profession;
|
||||
exports.Publication = Publication;
|
||||
exports.Race = Race;
|
||||
exports.RogueSpell = RogueSpell;
|
||||
exports.SpecialAbility = SpecialAbility;
|
||||
exports.Spell = Spell;
|
||||
exports.State = State;
|
||||
exports.ZibiljaRitual = ZibiljaRitual;
|
||||
/* No side effect */
|
||||
@@ -1,104 +0,0 @@
|
||||
module SourceRef = Static_SourceRef;
|
||||
module Erratum = Static_Erratum;
|
||||
module Prerequisites = Static_Prerequisites;
|
||||
module Skill = Static_Skill;
|
||||
module SelectOption = Static_SelectOption;
|
||||
module Advantage = Static_Advantage;
|
||||
module AnimistForce = Static_AnimistForce;
|
||||
module Attribute = Static_Attribute;
|
||||
module BlessedTradition = Static_BlessedTradition;
|
||||
module Blessing = Static_Blessing;
|
||||
module Cantrip = Static_Cantrip;
|
||||
module CombatTechnique = Static_CombatTechnique;
|
||||
module Condition = Static_Condition;
|
||||
module Culture = Static_Culture;
|
||||
module Curse = Static_Curse;
|
||||
module DerivedCharacteristic = Static_DerivedCharacteristic;
|
||||
module Disadvantage = Static_Disadvantage;
|
||||
module DominationRitual = Static_DominationRitual;
|
||||
module ElvenMagicalSong = Static_ElvenMagicalSong;
|
||||
module EquipmentPackage = Static_EquipmentPackage;
|
||||
module ExperienceLevel = Static_ExperienceLevel;
|
||||
module FocusRule = Static_FocusRule;
|
||||
module GeodeRitual = Static_GeodeRitual;
|
||||
module Item = Static_Item;
|
||||
module LiturgicalChant = Static_LiturgicalChant;
|
||||
module MagicalDance = Static_MagicalDance;
|
||||
module MagicalMelody = Static_MagicalMelody;
|
||||
module MagicalTradition = Static_MagicalTradition;
|
||||
module Messages = Static_Messages;
|
||||
module OptionalRule = Static_OptionalRule;
|
||||
module PactCategory = Static_Pact;
|
||||
module Patron = Static_Patron;
|
||||
module Profession = Static_Profession;
|
||||
module Publication = Static_Publication;
|
||||
module Race = Static_Race;
|
||||
module RogueSpell = Static_RogueSpell;
|
||||
module SpecialAbility = Static_SpecialAbility;
|
||||
module Spell = Static_Spell;
|
||||
module State = Static_State;
|
||||
module ZibiljaRitual = Static_ZibiljaRitual;
|
||||
|
||||
type t = {
|
||||
advantages: IntMap.t(Advantage.t),
|
||||
animistForces: IntMap.t(AnimistForce.t),
|
||||
arcaneBardTraditions: IntMap.t(string),
|
||||
arcaneDancerTraditions: IntMap.t(string),
|
||||
armorTypes: IntMap.t(string),
|
||||
aspects: IntMap.t(string),
|
||||
attributes: IntMap.t(Attribute.t),
|
||||
blessedTraditions: IntMap.t(BlessedTradition.t),
|
||||
blessings: IntMap.t(Blessing.t),
|
||||
brews: IntMap.t(string),
|
||||
cantrips: IntMap.t(Cantrip.t),
|
||||
combatSpecialAbilityGroups: IntMap.t(string),
|
||||
combatTechniqueGroups: IntMap.t(string),
|
||||
combatTechniques: IntMap.t(CombatTechnique.t),
|
||||
conditions: IntMap.t(Condition.t),
|
||||
cultures: IntMap.t(Culture.t),
|
||||
curses: IntMap.t(Curse.t),
|
||||
derivedCharacteristics: StrMap.t(DerivedCharacteristic.t),
|
||||
disadvantages: IntMap.t(Disadvantage.t),
|
||||
dominationRituals: IntMap.t(DominationRitual.t),
|
||||
elvenMagicalSongs: IntMap.t(ElvenMagicalSong.t),
|
||||
items: IntMap.t(Item.t),
|
||||
equipmentGroups: IntMap.t(string),
|
||||
equipmentPackages: IntMap.t(EquipmentPackage.t),
|
||||
experienceLevels: IntMap.t(ExperienceLevel.t),
|
||||
eyeColors: IntMap.t(string),
|
||||
focusRules: IntMap.t(FocusRule.t),
|
||||
geodeRituals: IntMap.t(GeodeRitual.t),
|
||||
hairColors: IntMap.t(string),
|
||||
liturgicalChantEnhancements: IntMap.t(SelectOption.t),
|
||||
liturgicalChantGroups: IntMap.t(string),
|
||||
liturgicalChants: IntMap.t(LiturgicalChant.t),
|
||||
magicalDances: IntMap.t(MagicalDance.t),
|
||||
magicalMelodies: IntMap.t(MagicalMelody.t),
|
||||
magicalTraditions: IntMap.t(MagicalTradition.t),
|
||||
messages: Messages.t,
|
||||
optionalRules: IntMap.t(OptionalRule.t),
|
||||
pacts: IntMap.t(PactCategory.t),
|
||||
professions: IntMap.t(Profession.t),
|
||||
properties: IntMap.t(string),
|
||||
publications: StrMap.t(Publication.t),
|
||||
races: IntMap.t(Race.t),
|
||||
reaches: IntMap.t(string),
|
||||
rogueSpells: IntMap.t(RogueSpell.t),
|
||||
skillGroups: IntMap.t(Skill.group),
|
||||
skills: IntMap.t(Skill.t),
|
||||
socialStatuses: IntMap.t(string),
|
||||
specialAbilities: IntMap.t(SpecialAbility.t),
|
||||
specialAbilityGroups: IntMap.t(string),
|
||||
spellEnhancements: IntMap.t(SelectOption.t),
|
||||
spellGroups: IntMap.t(string),
|
||||
spells: IntMap.t(Spell.t),
|
||||
states: IntMap.t(State.t),
|
||||
subjects: IntMap.t(string),
|
||||
tribes: IntMap.t(string),
|
||||
zibiljaRituals: IntMap.t(ZibiljaRitual.t),
|
||||
};
|
||||
|
||||
type activatable =
|
||||
| Advantage(Advantage.t)
|
||||
| Disadvantage(Disadvantage.t)
|
||||
| SpecialAbility(SpecialAbility.t);
|
||||
@@ -1,135 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
var Static_SelectOption$OptolithClient = require("./Static_SelectOption.bs.js");
|
||||
var Static_Prerequisites$OptolithClient = require("./Static_Prerequisites.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
nameInWiki: JsonStrict$OptolithClient.optionalField("nameInWiki", Json_decode.string, json),
|
||||
rules: Json_decode.field("rules", Json_decode.string, json),
|
||||
selectOptions: JsonStrict$OptolithClient.optionalField("selectOptions", (function (param) {
|
||||
return Json_decode.list(Static_SelectOption$OptolithClient.Decode.tL10n, param);
|
||||
}), json),
|
||||
input: JsonStrict$OptolithClient.optionalField("input", Json_decode.string, json),
|
||||
range: JsonStrict$OptolithClient.optionalField("range", Json_decode.string, json),
|
||||
actions: JsonStrict$OptolithClient.optionalField("actions", Json_decode.string, json),
|
||||
prerequisites: JsonStrict$OptolithClient.optionalField("prerequisites", Json_decode.string, json),
|
||||
prerequisitesIndex: JsonStrict$OptolithClient.optionalField("prerequisitesIndex", Static_Prerequisites$OptolithClient.Decode.tIndexWithLevelL10n, json),
|
||||
prerequisitesStart: JsonStrict$OptolithClient.optionalField("prerequisitesStart", Json_decode.string, json),
|
||||
prerequisitesEnd: JsonStrict$OptolithClient.optionalField("prerequisitesEnd", Json_decode.string, json),
|
||||
apValue: JsonStrict$OptolithClient.optionalField("apValue", Json_decode.string, json),
|
||||
apValueAppend: JsonStrict$OptolithClient.optionalField("apValueAppend", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function partial_arg_0(json) {
|
||||
return {
|
||||
TAG: /* Flat */0,
|
||||
_0: Json_decode.$$int(json)
|
||||
};
|
||||
}
|
||||
|
||||
var partial_arg_1 = {
|
||||
hd: (function (json) {
|
||||
return {
|
||||
TAG: /* PerLevel */1,
|
||||
_0: Json_decode.list(Json_decode.$$int, json)
|
||||
};
|
||||
}),
|
||||
tl: /* [] */0
|
||||
};
|
||||
|
||||
var partial_arg = {
|
||||
hd: partial_arg_0,
|
||||
tl: partial_arg_1
|
||||
};
|
||||
|
||||
function cost(param) {
|
||||
return Json_decode.oneOf(partial_arg, param);
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
cost: JsonStrict$OptolithClient.optionalField("cost", cost, json),
|
||||
noMaxAPInfluence: JsonStrict$OptolithClient.optionalField("noMaxAPInfluence", Json_decode.bool, json),
|
||||
isExclusiveToArcaneSpellworks: JsonStrict$OptolithClient.optionalField("isExclusiveToArcaneSpellworks", Json_decode.bool, json),
|
||||
levels: JsonStrict$OptolithClient.optionalField("levels", Json_decode.$$int, json),
|
||||
max: JsonStrict$OptolithClient.optionalField("max", Json_decode.$$int, json),
|
||||
selectOptionCategories: JsonStrict$OptolithClient.optionalField("selectOptionCategories", (function (param) {
|
||||
return Json_decode.list(Static_SelectOption$OptolithClient.Decode.categoryWithGroups, param);
|
||||
}), json),
|
||||
selectOptions: JsonStrict$OptolithClient.optionalField("selectOptions", (function (param) {
|
||||
return Json_decode.list(Static_SelectOption$OptolithClient.Decode.tUniv, param);
|
||||
}), json),
|
||||
prerequisites: Static_Prerequisites$OptolithClient.Decode.tWithLevelDisAdv(json),
|
||||
prerequisitesIndex: JsonStrict$OptolithClient.optionalField("prerequisitesIndex", Static_Prerequisites$OptolithClient.Decode.tIndexWithLevelUniv, json),
|
||||
gr: Json_decode.field("gr", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameInWiki: l10n.nameInWiki,
|
||||
noMaxAPInfluence: Maybe$OptolithClient.fromMaybe(false, univ.noMaxAPInfluence),
|
||||
isExclusiveToArcaneSpellworks: Maybe$OptolithClient.fromMaybe(false, univ.isExclusiveToArcaneSpellworks),
|
||||
levels: univ.levels,
|
||||
max: univ.max,
|
||||
rules: l10n.rules,
|
||||
selectOptions: Static_SelectOption$OptolithClient.Decode.mergeSelectOptions(l10n.selectOptions, univ.selectOptions, Static_SelectOption$OptolithClient.Decode.resolveCategories(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, univ.selectOptionCategories)),
|
||||
input: l10n.input,
|
||||
range: l10n.range,
|
||||
actions: l10n.actions,
|
||||
prerequisites: univ.prerequisites,
|
||||
prerequisitesText: l10n.prerequisites,
|
||||
prerequisitesTextIndex: Static_Prerequisites$OptolithClient.Decode.tIndexWithLevel(univ.prerequisitesIndex, l10n.prerequisitesIndex),
|
||||
prerequisitesTextStart: l10n.prerequisitesStart,
|
||||
prerequisitesTextEnd: l10n.prerequisitesEnd,
|
||||
apValue: univ.cost,
|
||||
apValueText: l10n.apValue,
|
||||
apValueTextAppend: l10n.apValueAppend,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, (function (param, param$1) {
|
||||
return t(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, param, param$1);
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.advantagesUniv), Json_decode.list(tL10n, yamlData.advantagesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
cost: cost,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,219 +0,0 @@
|
||||
type cost =
|
||||
| Flat(int)
|
||||
| PerLevel(list(int));
|
||||
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameInWiki: Maybe.t(string),
|
||||
noMaxAPInfluence: bool,
|
||||
isExclusiveToArcaneSpellworks: bool,
|
||||
levels: Maybe.t(int),
|
||||
max: Maybe.t(int),
|
||||
rules: string,
|
||||
selectOptions: Static_SelectOption.map,
|
||||
input: Maybe.t(string),
|
||||
range: Maybe.t(string),
|
||||
actions: Maybe.t(string),
|
||||
prerequisites: Static_Prerequisites.tWithLevelDisAdv,
|
||||
prerequisitesText: Maybe.t(string),
|
||||
prerequisitesTextIndex: Static_Prerequisites.tIndexWithLevel,
|
||||
prerequisitesTextStart: Maybe.t(string),
|
||||
prerequisitesTextEnd: Maybe.t(string),
|
||||
apValue: Maybe.t(cost),
|
||||
apValueText: Maybe.t(string),
|
||||
apValueTextAppend: Maybe.t(string),
|
||||
gr: int,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameInWiki: Maybe.t(string),
|
||||
rules: string,
|
||||
selectOptions: Maybe.t(list(Static_SelectOption.Decode.tL10n)),
|
||||
input: Maybe.t(string),
|
||||
range: Maybe.t(string),
|
||||
actions: Maybe.t(string),
|
||||
prerequisites: Maybe.t(string),
|
||||
prerequisitesIndex:
|
||||
Maybe.t(Static_Prerequisites.Decode.tIndexWithLevelL10n),
|
||||
prerequisitesStart: Maybe.t(string),
|
||||
prerequisitesEnd: Maybe.t(string),
|
||||
apValue: Maybe.t(string),
|
||||
apValueAppend: Maybe.t(string),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
nameInWiki: json |> optionalField("nameInWiki", string),
|
||||
rules: json |> field("rules", string),
|
||||
selectOptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"selectOptions",
|
||||
list(Static_SelectOption.Decode.tL10n),
|
||||
),
|
||||
input: json |> optionalField("input", string),
|
||||
range: json |> optionalField("range", string),
|
||||
actions: json |> optionalField("actions", string),
|
||||
prerequisites: json |> optionalField("prerequisites", string),
|
||||
prerequisitesIndex:
|
||||
json
|
||||
|> optionalField(
|
||||
"prerequisitesIndex",
|
||||
Static_Prerequisites.Decode.tIndexWithLevelL10n,
|
||||
),
|
||||
prerequisitesStart: json |> optionalField("prerequisitesStart", string),
|
||||
prerequisitesEnd: json |> optionalField("prerequisitesEnd", string),
|
||||
apValue: json |> optionalField("apValue", string),
|
||||
apValueAppend: json |> optionalField("apValueAppend", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
let cost =
|
||||
oneOf([
|
||||
json => json |> int |> (x => Flat(x)),
|
||||
json => json |> list(int) |> (x => PerLevel(x)),
|
||||
]);
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
cost: Maybe.t(cost),
|
||||
noMaxAPInfluence: Maybe.t(bool),
|
||||
isExclusiveToArcaneSpellworks: Maybe.t(bool),
|
||||
levels: Maybe.t(int),
|
||||
max: Maybe.t(int),
|
||||
selectOptionCategories:
|
||||
Maybe.t(list(Static_SelectOption.Decode.categoryWithGroups)),
|
||||
selectOptions: Maybe.t(list(Static_SelectOption.Decode.tUniv)),
|
||||
prerequisites: Static_Prerequisites.tWithLevelDisAdv,
|
||||
prerequisitesIndex:
|
||||
Maybe.t(Static_Prerequisites.Decode.tIndexWithLevelUniv),
|
||||
gr: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
cost: json |> optionalField("cost", cost),
|
||||
noMaxAPInfluence: json |> optionalField("noMaxAPInfluence", bool),
|
||||
isExclusiveToArcaneSpellworks:
|
||||
json |> optionalField("isExclusiveToArcaneSpellworks", bool),
|
||||
levels: json |> optionalField("levels", int),
|
||||
max: json |> optionalField("max", int),
|
||||
selectOptionCategories:
|
||||
json
|
||||
|> optionalField(
|
||||
"selectOptionCategories",
|
||||
list(Static_SelectOption.Decode.categoryWithGroups),
|
||||
),
|
||||
selectOptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"selectOptions",
|
||||
list(Static_SelectOption.Decode.tUniv),
|
||||
),
|
||||
prerequisites: json |> Static_Prerequisites.Decode.tWithLevelDisAdv,
|
||||
prerequisitesIndex:
|
||||
json
|
||||
|> optionalField(
|
||||
"prerequisitesIndex",
|
||||
Static_Prerequisites.Decode.tIndexWithLevelUniv,
|
||||
),
|
||||
gr: json |> field("gr", int),
|
||||
};
|
||||
|
||||
let t =
|
||||
(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
univ,
|
||||
l10n,
|
||||
) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameInWiki: l10n.nameInWiki,
|
||||
noMaxAPInfluence: univ.noMaxAPInfluence |> Maybe.fromMaybe(false),
|
||||
isExclusiveToArcaneSpellworks:
|
||||
univ.isExclusiveToArcaneSpellworks |> Maybe.fromMaybe(false),
|
||||
levels: univ.levels,
|
||||
max: univ.max,
|
||||
rules: l10n.rules,
|
||||
selectOptions:
|
||||
univ.selectOptionCategories
|
||||
|> Static_SelectOption.Decode.resolveCategories(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
)
|
||||
|> Static_SelectOption.Decode.mergeSelectOptions(
|
||||
l10n.selectOptions,
|
||||
univ.selectOptions,
|
||||
),
|
||||
input: l10n.input,
|
||||
range: l10n.range,
|
||||
actions: l10n.actions,
|
||||
prerequisites: univ.prerequisites,
|
||||
prerequisitesText: l10n.prerequisites,
|
||||
prerequisitesTextIndex:
|
||||
Static_Prerequisites.Decode.tIndexWithLevel(
|
||||
univ.prerequisitesIndex,
|
||||
l10n.prerequisitesIndex,
|
||||
),
|
||||
prerequisitesTextStart: l10n.prerequisitesStart,
|
||||
prerequisitesTextEnd: l10n.prerequisitesEnd,
|
||||
apValue: univ.cost,
|
||||
apValueText: l10n.apValue,
|
||||
apValueTextAppend: l10n.apValueAppend,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all =
|
||||
(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
yamlData: Yaml_Raw.yamlData,
|
||||
) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
),
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.advantagesUniv |> list(tUniv),
|
||||
yamlData.advantagesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,86 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var IC$OptolithClient = require("../Utilities/IC.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json),
|
||||
tribes: Json_decode.field("tribes", (function (param) {
|
||||
return JsonStrict$OptolithClient.maybe((function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), param);
|
||||
}), json),
|
||||
ic: Json_decode.field("ic", IC$OptolithClient.Decode.t, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
tribes: Maybe$OptolithClient.fromMaybe(/* [] */0, univ.tribes),
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.animistForcesUniv), Json_decode.list(tL10n, yamlData.animistForcesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,94 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
check: (int, int, int),
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
tribes: list(int),
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
property: int,
|
||||
tribes: Maybe.t(list(int)),
|
||||
ic: IC.t,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
property: json |> field("property", int),
|
||||
tribes: json |> field("tribes", maybe(list(int))),
|
||||
ic: json |> field("ic", IC.Decode.t),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
tribes: univ.tribes |> Maybe.fromMaybe([]),
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.animistForcesUniv |> list(tUniv),
|
||||
yamlData.animistForcesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,32 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var ListH$OptolithClient = require("../../Data/ListH.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
|
||||
function t(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
short: Json_decode.field("short", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, ListH$OptolithClient.map((function (x) {
|
||||
return [
|
||||
x.id,
|
||||
x
|
||||
];
|
||||
}), Json_decode.list(t, yamlData.attributesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,21 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
short: string,
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
|
||||
let t = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
short: json |> field("short", string),
|
||||
};
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
yamlData.attributesL10n
|
||||
|> list(t)
|
||||
|> ListH.map(x => (x.id, x))
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,58 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
numId: Json_decode.field("numId", Json_decode.$$int, json),
|
||||
primary: Json_decode.field("primary", Json_decode.$$int, json),
|
||||
aspects: JsonStrict$OptolithClient.optionalField("aspects", (function (param) {
|
||||
return Json_decode.pair(Json_decode.$$int, Json_decode.$$int, param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
numId: univ.numId,
|
||||
name: l10n.name,
|
||||
primary: univ.primary,
|
||||
aspects: univ.aspects
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.blessedTraditionsUniv), Json_decode.list(tL10n, yamlData.blessedTraditionsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,58 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
numId: int,
|
||||
name: string,
|
||||
primary: int,
|
||||
aspects: Maybe.t((int, int)),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
numId: int,
|
||||
primary: int,
|
||||
aspects: Maybe.t((int, int)),
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
numId: json |> field("numId", int),
|
||||
primary: json |> field("primary", int),
|
||||
aspects: json |> optionalField("aspects", pair(int, int)),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
numId: univ.numId,
|
||||
name: l10n.name,
|
||||
primary: univ.primary,
|
||||
aspects: univ.aspects,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.blessedTraditionsUniv |> list(tUniv),
|
||||
yamlData.blessedTraditionsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,68 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var IntSet$OptolithClient = require("../../Data/IntSet.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
range: Json_decode.field("range", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
target: Json_decode.field("target", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
traditions: Json_decode.field("traditions", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
effect: l10n.effect,
|
||||
range: l10n.range,
|
||||
duration: l10n.duration,
|
||||
target: l10n.target,
|
||||
traditions: Curry._1(IntSet$OptolithClient.fromList, univ.traditions),
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.blessingsUniv), Json_decode.list(tL10n, yamlData.blessingsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,73 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
range: string,
|
||||
duration: string,
|
||||
target: string,
|
||||
traditions: IntSet.t,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
range: string,
|
||||
duration: string,
|
||||
target: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
range: json |> field("range", string),
|
||||
duration: json |> field("duration", string),
|
||||
target: json |> field("target", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
traditions: list(int),
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
traditions: json |> field("traditions", list(int)),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
effect: l10n.effect,
|
||||
range: l10n.range,
|
||||
duration: l10n.duration,
|
||||
target: l10n.target,
|
||||
traditions: IntSet.fromList(univ.traditions),
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.blessingsUniv |> list(tUniv),
|
||||
yamlData.blessingsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,76 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var IntSet$OptolithClient = require("../../Data/IntSet.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
var Static_Prerequisites$OptolithClient = require("./Static_Prerequisites.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
range: Json_decode.field("range", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
target: Json_decode.field("target", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json),
|
||||
traditions: Json_decode.field("traditions", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
activatablePrerequisites: JsonStrict$OptolithClient.optionalField("activatablePrerequisites", (function (param) {
|
||||
return Json_decode.list(Static_Prerequisites$OptolithClient.Decode.activatable, param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
effect: l10n.effect,
|
||||
range: l10n.range,
|
||||
duration: l10n.duration,
|
||||
target: l10n.target,
|
||||
property: univ.property,
|
||||
traditions: Curry._1(IntSet$OptolithClient.fromList, univ.traditions),
|
||||
activatablePrerequisites: univ.activatablePrerequisites,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.cantripsUniv), Json_decode.list(tL10n, yamlData.cantripsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,88 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
range: string,
|
||||
duration: string,
|
||||
target: string,
|
||||
property: int,
|
||||
traditions: IntSet.t,
|
||||
activatablePrerequisites: Maybe.t(list(Static_Prerequisites.activatable)),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
range: string,
|
||||
duration: string,
|
||||
target: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
range: json |> field("range", string),
|
||||
duration: json |> field("duration", string),
|
||||
target: json |> field("target", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
property: int,
|
||||
traditions: list(int),
|
||||
activatablePrerequisites:
|
||||
Maybe.t(list(Static_Prerequisites.activatable)),
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
property: json |> field("property", int),
|
||||
traditions: json |> field("traditions", list(int)),
|
||||
activatablePrerequisites:
|
||||
json
|
||||
|> optionalField(
|
||||
"activatablePrerequisites",
|
||||
list(Static_Prerequisites.Decode.activatable),
|
||||
),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
effect: l10n.effect,
|
||||
range: l10n.range,
|
||||
duration: l10n.duration,
|
||||
target: l10n.target,
|
||||
property: univ.property,
|
||||
traditions: IntSet.fromList(univ.traditions),
|
||||
activatablePrerequisites: univ.activatablePrerequisites,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.cantripsUniv |> list(tUniv),
|
||||
yamlData.cantripsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,72 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var IC$OptolithClient = require("../Utilities/IC.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
special: JsonStrict$OptolithClient.optionalField("special", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
ic: Json_decode.field("ic", IC$OptolithClient.Decode.t, json),
|
||||
primary: Json_decode.field("primary", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
bpr: Json_decode.field("bpr", Json_decode.$$int, json),
|
||||
hasNoParry: JsonStrict$OptolithClient.optionalField("hasNoParry", Json_decode.bool, json),
|
||||
gr: Json_decode.field("gr", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
ic: univ.ic,
|
||||
primary: univ.primary,
|
||||
special: l10n.special,
|
||||
hasNoParry: Maybe$OptolithClient.fromMaybe(false, univ.hasNoParry),
|
||||
bpr: univ.bpr,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.combatTechniquesUniv), Json_decode.list(tL10n, yamlData.combatTechniquesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,78 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
ic: IC.t,
|
||||
primary: list(int),
|
||||
special: Maybe.t(string),
|
||||
hasNoParry: bool,
|
||||
bpr: int,
|
||||
gr: int,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
special: Maybe.t(string),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
special: json |> optionalField("special", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
ic: IC.t,
|
||||
primary: list(int),
|
||||
bpr: int,
|
||||
hasNoParry: Maybe.t(bool),
|
||||
gr: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
ic: json |> field("ic", IC.Decode.t),
|
||||
primary: json |> field("primary", list(int)),
|
||||
bpr: json |> field("bpr", int),
|
||||
hasNoParry: json |> optionalField("hasNoParry", bool),
|
||||
gr: json |> field("gr", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
ic: univ.ic,
|
||||
primary: univ.primary,
|
||||
special: l10n.special,
|
||||
hasNoParry: Maybe.fromMaybe(false, univ.hasNoParry),
|
||||
bpr: univ.bpr,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.combatTechniquesUniv |> list(tUniv),
|
||||
yamlData.combatTechniquesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,44 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var ListH$OptolithClient = require("../../Data/ListH.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function t(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
description: JsonStrict$OptolithClient.optionalField("description", Json_decode.string, json),
|
||||
levelColumnDescription: JsonStrict$OptolithClient.optionalField("levelDescription", Json_decode.string, json),
|
||||
levelDescriptions: [
|
||||
Json_decode.field("level1", Json_decode.string, json),
|
||||
Json_decode.field("level2", Json_decode.string, json),
|
||||
Json_decode.field("level3", Json_decode.string, json),
|
||||
Json_decode.field("level4", Json_decode.string, json)
|
||||
],
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, ListH$OptolithClient.map((function (x) {
|
||||
return [
|
||||
x.id,
|
||||
x
|
||||
];
|
||||
}), Json_decode.list(t, yamlData.conditionsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,35 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
description: Maybe.t(string),
|
||||
levelColumnDescription: Maybe.t(string),
|
||||
levelDescriptions: (string, string, string, string),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
let t = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
description: json |> optionalField("description", string),
|
||||
levelDescriptions: (
|
||||
json |> field("level1", string),
|
||||
json |> field("level2", string),
|
||||
json |> field("level3", string),
|
||||
json |> field("level4", string),
|
||||
),
|
||||
levelColumnDescription: json |> optionalField("levelDescription", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
yamlData.conditionsL10n
|
||||
|> list(t)
|
||||
|> ListH.map(x => (x.id, x))
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,155 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
areaKnowledge: Json_decode.field("areaKnowledge", Json_decode.string, json),
|
||||
areaKnowledgeShort: Json_decode.field("areaKnowledgeShort", Json_decode.string, json),
|
||||
commonMundaneProfessions: JsonStrict$OptolithClient.optionalField("commonMundaneProfessions", Json_decode.string, json),
|
||||
commonMagicalProfessions: JsonStrict$OptolithClient.optionalField("commonMagicalProfessions", Json_decode.string, json),
|
||||
commonBlessedProfessions: JsonStrict$OptolithClient.optionalField("commonBlessedProfessions", Json_decode.string, json),
|
||||
commonAdvantages: JsonStrict$OptolithClient.optionalField("commonAdvantages", Json_decode.string, json),
|
||||
commonDisadvantages: JsonStrict$OptolithClient.optionalField("commonDisadvantages", Json_decode.string, json),
|
||||
uncommonAdvantages: JsonStrict$OptolithClient.optionalField("uncommonAdvantages", Json_decode.string, json),
|
||||
uncommonDisadvantages: JsonStrict$OptolithClient.optionalField("uncommonDisadvantages", Json_decode.string, json),
|
||||
commonNames: Json_decode.field("commonNames", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function frequencyException(json) {
|
||||
var str = Json_decode.field("scope", Json_decode.string, json);
|
||||
switch (str) {
|
||||
case "Group" :
|
||||
return {
|
||||
TAG: /* Group */1,
|
||||
_0: Json_decode.field("value", Json_decode.$$int, json)
|
||||
};
|
||||
case "Single" :
|
||||
return {
|
||||
TAG: /* Single */0,
|
||||
_0: Json_decode.field("value", Json_decode.$$int, json)
|
||||
};
|
||||
default:
|
||||
throw {
|
||||
RE_EXN_ID: Json_decode.DecodeError,
|
||||
_1: "Unknown frequency exception: " + str,
|
||||
Error: new Error()
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
languages: Json_decode.field("languages", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
literacy: JsonStrict$OptolithClient.optionalField("literacy", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
social: Json_decode.field("social", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
commonMundaneProfessionsAll: Json_decode.field("commonMundaneProfessionsAll", Json_decode.bool, json),
|
||||
commonMundaneProfessionsExceptions: JsonStrict$OptolithClient.optionalField("commonMundaneProfessionsExceptions", (function (param) {
|
||||
return Json_decode.list(frequencyException, param);
|
||||
}), json),
|
||||
commonMagicalProfessionsAll: Json_decode.field("commonMagicalProfessionsAll", Json_decode.bool, json),
|
||||
commonMagicalProfessionsExceptions: JsonStrict$OptolithClient.optionalField("commonMagicalProfessionsExceptions", (function (param) {
|
||||
return Json_decode.list(frequencyException, param);
|
||||
}), json),
|
||||
commonBlessedProfessionsAll: Json_decode.field("commonBlessedProfessionsAll", Json_decode.bool, json),
|
||||
commonBlessedProfessionsExceptions: JsonStrict$OptolithClient.optionalField("commonBlessedProfessionsExceptions", (function (param) {
|
||||
return Json_decode.list(frequencyException, param);
|
||||
}), json),
|
||||
commonAdvantages: JsonStrict$OptolithClient.optionalField("commonAdvantages", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
commonDisadvantages: JsonStrict$OptolithClient.optionalField("commonDisadvantages", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
uncommonAdvantages: JsonStrict$OptolithClient.optionalField("uncommonAdvantages", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
uncommonDisadvantages: JsonStrict$OptolithClient.optionalField("uncommonDisadvantages", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
commonSkills: Json_decode.field("commonSkills", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
uncommonSkills: JsonStrict$OptolithClient.optionalField("uncommonSkills", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
culturalPackageCost: Json_decode.field("culturalPackageCost", Json_decode.$$int, json),
|
||||
culturalPackageSkills: Json_decode.field("culturalPackageSkills", (function (param) {
|
||||
return Json_decode.list((function (param) {
|
||||
return Json_decode.pair(Json_decode.$$int, Json_decode.$$int, param);
|
||||
}), param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
language: univ.languages,
|
||||
script: univ.literacy,
|
||||
areaKnowledge: l10n.areaKnowledge,
|
||||
areaKnowledgeShort: l10n.areaKnowledgeShort,
|
||||
socialStatus: univ.social,
|
||||
commonMundaneProfessionsAll: univ.commonMundaneProfessionsAll,
|
||||
commonMundaneProfessionsExceptions: univ.commonMundaneProfessionsExceptions,
|
||||
commonMundaneProfessionsText: l10n.commonMundaneProfessions,
|
||||
commonMagicProfessionsAll: univ.commonMagicalProfessionsAll,
|
||||
commonMagicProfessionsExceptions: univ.commonMagicalProfessionsExceptions,
|
||||
commonMagicProfessionsText: l10n.commonMagicalProfessions,
|
||||
commonBlessedProfessionsAll: univ.commonBlessedProfessionsAll,
|
||||
commonBlessedProfessionsExceptions: univ.commonBlessedProfessionsExceptions,
|
||||
commonBlessedProfessionsText: l10n.commonBlessedProfessions,
|
||||
commonAdvantages: univ.commonAdvantages,
|
||||
commonAdvantagesText: l10n.commonAdvantages,
|
||||
commonDisadvantages: univ.commonDisadvantages,
|
||||
commonDisadvantagesText: l10n.commonDisadvantages,
|
||||
uncommonAdvantages: univ.uncommonAdvantages,
|
||||
uncommonAdvantagesText: l10n.uncommonAdvantages,
|
||||
uncommonDisadvantages: univ.uncommonDisadvantages,
|
||||
uncommonDisadvantagesText: l10n.uncommonDisadvantages,
|
||||
commonSkills: univ.commonSkills,
|
||||
uncommonSkills: univ.uncommonSkills,
|
||||
commonNames: l10n.commonNames,
|
||||
culturalPackageCost: univ.culturalPackageCost,
|
||||
culturalPackageSkills: Curry._1(IntMap$OptolithClient.fromList, univ.culturalPackageSkills)
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.culturesUniv), Json_decode.list(tL10n, yamlData.culturesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
frequencyException: frequencyException,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,199 +0,0 @@
|
||||
type frequencyException =
|
||||
| Single(int)
|
||||
| Group(int);
|
||||
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
language: list(int),
|
||||
script: Maybe.t(list(int)),
|
||||
areaKnowledge: string,
|
||||
areaKnowledgeShort: string,
|
||||
socialStatus: list(int),
|
||||
commonMundaneProfessionsAll: bool,
|
||||
commonMundaneProfessionsExceptions: Maybe.t(list(frequencyException)),
|
||||
commonMundaneProfessionsText: Maybe.t(string),
|
||||
commonMagicProfessionsAll: bool,
|
||||
commonMagicProfessionsExceptions: Maybe.t(list(frequencyException)),
|
||||
commonMagicProfessionsText: Maybe.t(string),
|
||||
commonBlessedProfessionsAll: bool,
|
||||
commonBlessedProfessionsExceptions: Maybe.t(list(frequencyException)),
|
||||
commonBlessedProfessionsText: Maybe.t(string),
|
||||
commonAdvantages: Maybe.t(list(int)),
|
||||
commonAdvantagesText: Maybe.t(string),
|
||||
commonDisadvantages: Maybe.t(list(int)),
|
||||
commonDisadvantagesText: Maybe.t(string),
|
||||
uncommonAdvantages: Maybe.t(list(int)),
|
||||
uncommonAdvantagesText: Maybe.t(string),
|
||||
uncommonDisadvantages: Maybe.t(list(int)),
|
||||
uncommonDisadvantagesText: Maybe.t(string),
|
||||
commonSkills: list(int),
|
||||
uncommonSkills: Maybe.t(list(int)),
|
||||
commonNames: string,
|
||||
culturalPackageCost: int,
|
||||
culturalPackageSkills: IntMap.t(int),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
areaKnowledge: string,
|
||||
areaKnowledgeShort: string,
|
||||
commonMundaneProfessions: Maybe.t(string),
|
||||
commonMagicalProfessions: Maybe.t(string),
|
||||
commonBlessedProfessions: Maybe.t(string),
|
||||
commonAdvantages: Maybe.t(string),
|
||||
commonDisadvantages: Maybe.t(string),
|
||||
uncommonAdvantages: Maybe.t(string),
|
||||
uncommonDisadvantages: Maybe.t(string),
|
||||
commonNames: string,
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
areaKnowledge: json |> field("areaKnowledge", string),
|
||||
areaKnowledgeShort: json |> field("areaKnowledgeShort", string),
|
||||
commonMundaneProfessions:
|
||||
json |> optionalField("commonMundaneProfessions", string),
|
||||
commonMagicalProfessions:
|
||||
json |> optionalField("commonMagicalProfessions", string),
|
||||
commonBlessedProfessions:
|
||||
json |> optionalField("commonBlessedProfessions", string),
|
||||
commonAdvantages: json |> optionalField("commonAdvantages", string),
|
||||
commonDisadvantages: json |> optionalField("commonDisadvantages", string),
|
||||
uncommonAdvantages: json |> optionalField("uncommonAdvantages", string),
|
||||
uncommonDisadvantages:
|
||||
json |> optionalField("uncommonDisadvantages", string),
|
||||
commonNames: json |> field("commonNames", string),
|
||||
};
|
||||
|
||||
let frequencyException = json =>
|
||||
json
|
||||
|> field("scope", string)
|
||||
|> (
|
||||
str =>
|
||||
switch (str) {
|
||||
| "Single" => Single(json |> field("value", int))
|
||||
| "Group" => Group(json |> field("value", int))
|
||||
| _ => raise(DecodeError("Unknown frequency exception: " ++ str))
|
||||
}
|
||||
);
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
languages: list(int),
|
||||
literacy: Maybe.t(list(int)),
|
||||
social: list(int),
|
||||
commonMundaneProfessionsAll: bool,
|
||||
commonMundaneProfessionsExceptions: Maybe.t(list(frequencyException)),
|
||||
commonMagicalProfessionsAll: bool,
|
||||
commonMagicalProfessionsExceptions: Maybe.t(list(frequencyException)),
|
||||
commonBlessedProfessionsAll: bool,
|
||||
commonBlessedProfessionsExceptions: Maybe.t(list(frequencyException)),
|
||||
commonAdvantages: Maybe.t(list(int)),
|
||||
commonDisadvantages: Maybe.t(list(int)),
|
||||
uncommonAdvantages: Maybe.t(list(int)),
|
||||
uncommonDisadvantages: Maybe.t(list(int)),
|
||||
commonSkills: list(int),
|
||||
uncommonSkills: Maybe.t(list(int)),
|
||||
culturalPackageCost: int,
|
||||
culturalPackageSkills: list((int, int)),
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
languages: json |> field("languages", list(int)),
|
||||
literacy: json |> optionalField("literacy", list(int)),
|
||||
social: json |> field("social", list(int)),
|
||||
commonMundaneProfessionsAll:
|
||||
json |> field("commonMundaneProfessionsAll", bool),
|
||||
commonMundaneProfessionsExceptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"commonMundaneProfessionsExceptions",
|
||||
list(frequencyException),
|
||||
),
|
||||
commonMagicalProfessionsAll:
|
||||
json |> field("commonMagicalProfessionsAll", bool),
|
||||
commonMagicalProfessionsExceptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"commonMagicalProfessionsExceptions",
|
||||
list(frequencyException),
|
||||
),
|
||||
commonBlessedProfessionsAll:
|
||||
json |> field("commonBlessedProfessionsAll", bool),
|
||||
commonBlessedProfessionsExceptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"commonBlessedProfessionsExceptions",
|
||||
list(frequencyException),
|
||||
),
|
||||
commonAdvantages: json |> optionalField("commonAdvantages", list(int)),
|
||||
commonDisadvantages:
|
||||
json |> optionalField("commonDisadvantages", list(int)),
|
||||
uncommonAdvantages:
|
||||
json |> optionalField("uncommonAdvantages", list(int)),
|
||||
uncommonDisadvantages:
|
||||
json |> optionalField("uncommonDisadvantages", list(int)),
|
||||
commonSkills: json |> field("commonSkills", list(int)),
|
||||
uncommonSkills: json |> optionalField("uncommonSkills", list(int)),
|
||||
culturalPackageCost: json |> field("culturalPackageCost", int),
|
||||
culturalPackageSkills:
|
||||
json |> field("culturalPackageSkills", list(pair(int, int))),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
language: univ.languages,
|
||||
script: univ.literacy,
|
||||
areaKnowledge: l10n.areaKnowledge,
|
||||
areaKnowledgeShort: l10n.areaKnowledgeShort,
|
||||
socialStatus: univ.social,
|
||||
commonMundaneProfessionsAll: univ.commonMundaneProfessionsAll,
|
||||
commonMundaneProfessionsExceptions:
|
||||
univ.commonMundaneProfessionsExceptions,
|
||||
commonMundaneProfessionsText: l10n.commonMundaneProfessions,
|
||||
commonMagicProfessionsAll: univ.commonMagicalProfessionsAll,
|
||||
commonMagicProfessionsExceptions:
|
||||
univ.commonMagicalProfessionsExceptions,
|
||||
commonMagicProfessionsText: l10n.commonMagicalProfessions,
|
||||
commonBlessedProfessionsAll: univ.commonBlessedProfessionsAll,
|
||||
commonBlessedProfessionsExceptions:
|
||||
univ.commonBlessedProfessionsExceptions,
|
||||
commonBlessedProfessionsText: l10n.commonBlessedProfessions,
|
||||
commonAdvantages: univ.commonAdvantages,
|
||||
commonAdvantagesText: l10n.commonAdvantages,
|
||||
commonDisadvantages: univ.commonDisadvantages,
|
||||
commonDisadvantagesText: l10n.commonDisadvantages,
|
||||
uncommonAdvantages: univ.uncommonAdvantages,
|
||||
uncommonAdvantagesText: l10n.uncommonAdvantages,
|
||||
uncommonDisadvantages: univ.uncommonDisadvantages,
|
||||
uncommonDisadvantagesText: l10n.uncommonDisadvantages,
|
||||
commonSkills: univ.commonSkills,
|
||||
uncommonSkills: univ.uncommonSkills,
|
||||
commonNames: l10n.commonNames,
|
||||
culturalPackageCost: univ.culturalPackageCost,
|
||||
culturalPackageSkills: univ.culturalPackageSkills |> IntMap.fromList,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.culturesUniv |> list(tUniv),
|
||||
yamlData.culturesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,79 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var CheckModifier$OptolithClient = require("./CheckModifier.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
checkMod: JsonStrict$OptolithClient.optionalField("checkMod", CheckModifier$OptolithClient.Decode.t, json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
property: univ.property,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.cursesUniv), Json_decode.list(tL10n, yamlData.cursesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,90 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
check: (int, int, int),
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
property: int,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
property: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
checkMod: json |> optionalField("checkMod", CheckModifier.Decode.t),
|
||||
property: json |> field("property", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
property: univ.property,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.cursesUniv |> list(tUniv),
|
||||
yamlData.cursesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,36 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var ListH$OptolithClient = require("../../Data/ListH.bs.js");
|
||||
var StrMap$OptolithClient = require("../../Data/StrMap.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
|
||||
function t(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.string, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
short: Json_decode.field("short", Json_decode.string, json),
|
||||
calc: Json_decode.field("calc", Json_decode.string, json),
|
||||
calcHalfPrimary: JsonStrict$OptolithClient.optionalField("calcHalfPrimary", Json_decode.string, json),
|
||||
calcNoPrimary: JsonStrict$OptolithClient.optionalField("calcNoPrimary", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(StrMap$OptolithClient.fromList, ListH$OptolithClient.map((function (x) {
|
||||
return [
|
||||
x.id,
|
||||
x
|
||||
];
|
||||
}), Json_decode.list(t, yamlData.derivedCharacteristicsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* StrMap-OptolithClient Not a pure module */
|
||||
@@ -1,28 +0,0 @@
|
||||
type t = {
|
||||
id: string,
|
||||
name: string,
|
||||
short: string,
|
||||
calc: string,
|
||||
calcHalfPrimary: Maybe.t(string),
|
||||
calcNoPrimary: Maybe.t(string),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
let t = json => {
|
||||
id: json |> field("id", string),
|
||||
name: json |> field("name", string),
|
||||
short: json |> field("short", string),
|
||||
calc: json |> field("calc", string),
|
||||
calcHalfPrimary: json |> optionalField("calcHalfPrimary", string),
|
||||
calcNoPrimary: json |> optionalField("calcNoPrimary", string),
|
||||
};
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
yamlData.derivedCharacteristicsL10n
|
||||
|> list(t)
|
||||
|> ListH.map(x => (x.id, x))
|
||||
|> StrMap.fromList;
|
||||
};
|
||||
@@ -1,112 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_Advantage$OptolithClient = require("./Static_Advantage.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
var Static_SelectOption$OptolithClient = require("./Static_SelectOption.bs.js");
|
||||
var Static_Prerequisites$OptolithClient = require("./Static_Prerequisites.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
nameInWiki: JsonStrict$OptolithClient.optionalField("nameInWiki", Json_decode.string, json),
|
||||
rules: Json_decode.field("rules", Json_decode.string, json),
|
||||
selectOptions: JsonStrict$OptolithClient.optionalField("selectOptions", (function (param) {
|
||||
return Json_decode.list(Static_SelectOption$OptolithClient.Decode.tL10n, param);
|
||||
}), json),
|
||||
input: JsonStrict$OptolithClient.optionalField("input", Json_decode.string, json),
|
||||
range: JsonStrict$OptolithClient.optionalField("range", Json_decode.string, json),
|
||||
actions: JsonStrict$OptolithClient.optionalField("actions", Json_decode.string, json),
|
||||
prerequisites: JsonStrict$OptolithClient.optionalField("prerequisites", Json_decode.string, json),
|
||||
prerequisitesIndex: JsonStrict$OptolithClient.optionalField("prerequisitesIndex", Static_Prerequisites$OptolithClient.Decode.tIndexWithLevelL10n, json),
|
||||
prerequisitesStart: JsonStrict$OptolithClient.optionalField("prerequisitesStart", Json_decode.string, json),
|
||||
prerequisitesEnd: JsonStrict$OptolithClient.optionalField("prerequisitesEnd", Json_decode.string, json),
|
||||
apValue: JsonStrict$OptolithClient.optionalField("apValue", Json_decode.string, json),
|
||||
apValueAppend: JsonStrict$OptolithClient.optionalField("apValueAppend", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
var cost = Static_Advantage$OptolithClient.Decode.cost;
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
cost: JsonStrict$OptolithClient.optionalField("cost", cost, json),
|
||||
noMaxAPInfluence: JsonStrict$OptolithClient.optionalField("noMaxAPInfluence", Json_decode.bool, json),
|
||||
isExclusiveToArcaneSpellworks: JsonStrict$OptolithClient.optionalField("isExclusiveToArcaneSpellworks", Json_decode.bool, json),
|
||||
levels: JsonStrict$OptolithClient.optionalField("levels", Json_decode.$$int, json),
|
||||
max: JsonStrict$OptolithClient.optionalField("max", Json_decode.$$int, json),
|
||||
selectOptionCategories: JsonStrict$OptolithClient.optionalField("selectOptionCategories", (function (param) {
|
||||
return Json_decode.list(Static_SelectOption$OptolithClient.Decode.categoryWithGroups, param);
|
||||
}), json),
|
||||
selectOptions: JsonStrict$OptolithClient.optionalField("selectOptions", (function (param) {
|
||||
return Json_decode.list(Static_SelectOption$OptolithClient.Decode.tUniv, param);
|
||||
}), json),
|
||||
prerequisites: Static_Prerequisites$OptolithClient.Decode.tWithLevelDisAdv(json),
|
||||
prerequisitesIndex: JsonStrict$OptolithClient.optionalField("prerequisitesIndex", Static_Prerequisites$OptolithClient.Decode.tIndexWithLevelUniv, json),
|
||||
gr: Json_decode.field("gr", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameInWiki: l10n.nameInWiki,
|
||||
noMaxAPInfluence: Maybe$OptolithClient.fromMaybe(false, univ.noMaxAPInfluence),
|
||||
isExclusiveToArcaneSpellworks: Maybe$OptolithClient.fromMaybe(false, univ.isExclusiveToArcaneSpellworks),
|
||||
levels: univ.levels,
|
||||
max: univ.max,
|
||||
rules: l10n.rules,
|
||||
selectOptions: Static_SelectOption$OptolithClient.Decode.mergeSelectOptions(l10n.selectOptions, univ.selectOptions, Static_SelectOption$OptolithClient.Decode.resolveCategories(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, univ.selectOptionCategories)),
|
||||
input: l10n.input,
|
||||
range: l10n.range,
|
||||
actions: l10n.actions,
|
||||
prerequisites: univ.prerequisites,
|
||||
prerequisitesText: l10n.prerequisites,
|
||||
prerequisitesTextIndex: Static_Prerequisites$OptolithClient.Decode.tIndexWithLevel(univ.prerequisitesIndex, l10n.prerequisitesIndex),
|
||||
prerequisitesTextStart: l10n.prerequisitesStart,
|
||||
prerequisitesTextEnd: l10n.prerequisitesEnd,
|
||||
apValue: univ.cost,
|
||||
apValueText: l10n.apValue,
|
||||
apValueTextAppend: l10n.apValueAppend,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, (function (param, param$1) {
|
||||
return t(blessings, cantrips, combatTechniques, liturgicalChants, skills, spells, param, param$1);
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.disadvantagesUniv), Json_decode.list(tL10n, yamlData.disadvantagesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
cost: cost,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,211 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameInWiki: Maybe.t(string),
|
||||
noMaxAPInfluence: bool,
|
||||
isExclusiveToArcaneSpellworks: bool,
|
||||
levels: Maybe.t(int),
|
||||
max: Maybe.t(int),
|
||||
rules: string,
|
||||
selectOptions: Static_SelectOption.map,
|
||||
input: Maybe.t(string),
|
||||
range: Maybe.t(string),
|
||||
actions: Maybe.t(string),
|
||||
prerequisites: Static_Prerequisites.tWithLevelDisAdv,
|
||||
prerequisitesText: Maybe.t(string),
|
||||
prerequisitesTextIndex: Static_Prerequisites.tIndexWithLevel,
|
||||
prerequisitesTextStart: Maybe.t(string),
|
||||
prerequisitesTextEnd: Maybe.t(string),
|
||||
apValue: Maybe.t(Static_Advantage.cost),
|
||||
apValueText: Maybe.t(string),
|
||||
apValueTextAppend: Maybe.t(string),
|
||||
gr: int,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameInWiki: Maybe.t(string),
|
||||
rules: string,
|
||||
selectOptions: Maybe.t(list(Static_SelectOption.Decode.tL10n)),
|
||||
input: Maybe.t(string),
|
||||
range: Maybe.t(string),
|
||||
actions: Maybe.t(string),
|
||||
prerequisites: Maybe.t(string),
|
||||
prerequisitesIndex:
|
||||
Maybe.t(Static_Prerequisites.Decode.tIndexWithLevelL10n),
|
||||
prerequisitesStart: Maybe.t(string),
|
||||
prerequisitesEnd: Maybe.t(string),
|
||||
apValue: Maybe.t(string),
|
||||
apValueAppend: Maybe.t(string),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
nameInWiki: json |> optionalField("nameInWiki", string),
|
||||
rules: json |> field("rules", string),
|
||||
selectOptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"selectOptions",
|
||||
list(Static_SelectOption.Decode.tL10n),
|
||||
),
|
||||
input: json |> optionalField("input", string),
|
||||
range: json |> optionalField("range", string),
|
||||
actions: json |> optionalField("actions", string),
|
||||
prerequisites: json |> optionalField("prerequisites", string),
|
||||
prerequisitesIndex:
|
||||
json
|
||||
|> optionalField(
|
||||
"prerequisitesIndex",
|
||||
Static_Prerequisites.Decode.tIndexWithLevelL10n,
|
||||
),
|
||||
prerequisitesStart: json |> optionalField("prerequisitesStart", string),
|
||||
prerequisitesEnd: json |> optionalField("prerequisitesEnd", string),
|
||||
apValue: json |> optionalField("apValue", string),
|
||||
apValueAppend: json |> optionalField("apValueAppend", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
let cost = Static_Advantage.Decode.cost;
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
cost: Maybe.t(Static_Advantage.cost),
|
||||
noMaxAPInfluence: Maybe.t(bool),
|
||||
isExclusiveToArcaneSpellworks: Maybe.t(bool),
|
||||
levels: Maybe.t(int),
|
||||
max: Maybe.t(int),
|
||||
selectOptionCategories:
|
||||
Maybe.t(list(Static_SelectOption.Decode.categoryWithGroups)),
|
||||
selectOptions: Maybe.t(list(Static_SelectOption.Decode.tUniv)),
|
||||
prerequisites: Static_Prerequisites.tWithLevelDisAdv,
|
||||
prerequisitesIndex:
|
||||
Maybe.t(Static_Prerequisites.Decode.tIndexWithLevelUniv),
|
||||
gr: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
cost: json |> optionalField("cost", cost),
|
||||
noMaxAPInfluence: json |> optionalField("noMaxAPInfluence", bool),
|
||||
isExclusiveToArcaneSpellworks:
|
||||
json |> optionalField("isExclusiveToArcaneSpellworks", bool),
|
||||
levels: json |> optionalField("levels", int),
|
||||
max: json |> optionalField("max", int),
|
||||
selectOptionCategories:
|
||||
json
|
||||
|> optionalField(
|
||||
"selectOptionCategories",
|
||||
list(Static_SelectOption.Decode.categoryWithGroups),
|
||||
),
|
||||
selectOptions:
|
||||
json
|
||||
|> optionalField(
|
||||
"selectOptions",
|
||||
list(Static_SelectOption.Decode.tUniv),
|
||||
),
|
||||
prerequisites: json |> Static_Prerequisites.Decode.tWithLevelDisAdv,
|
||||
prerequisitesIndex:
|
||||
json
|
||||
|> optionalField(
|
||||
"prerequisitesIndex",
|
||||
Static_Prerequisites.Decode.tIndexWithLevelUniv,
|
||||
),
|
||||
gr: json |> field("gr", int),
|
||||
};
|
||||
|
||||
let t =
|
||||
(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
univ,
|
||||
l10n,
|
||||
) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameInWiki: l10n.nameInWiki,
|
||||
noMaxAPInfluence: univ.noMaxAPInfluence |> Maybe.fromMaybe(false),
|
||||
isExclusiveToArcaneSpellworks:
|
||||
univ.isExclusiveToArcaneSpellworks |> Maybe.fromMaybe(false),
|
||||
levels: univ.levels,
|
||||
max: univ.max,
|
||||
rules: l10n.rules,
|
||||
selectOptions:
|
||||
univ.selectOptionCategories
|
||||
|> Static_SelectOption.Decode.resolveCategories(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
)
|
||||
|> Static_SelectOption.Decode.mergeSelectOptions(
|
||||
l10n.selectOptions,
|
||||
univ.selectOptions,
|
||||
),
|
||||
input: l10n.input,
|
||||
range: l10n.range,
|
||||
actions: l10n.actions,
|
||||
prerequisites: univ.prerequisites,
|
||||
prerequisitesText: l10n.prerequisites,
|
||||
prerequisitesTextIndex:
|
||||
Static_Prerequisites.Decode.tIndexWithLevel(
|
||||
univ.prerequisitesIndex,
|
||||
l10n.prerequisitesIndex,
|
||||
),
|
||||
prerequisitesTextStart: l10n.prerequisitesStart,
|
||||
prerequisitesTextEnd: l10n.prerequisitesEnd,
|
||||
apValue: univ.cost,
|
||||
apValueText: l10n.apValue,
|
||||
apValueTextAppend: l10n.apValueAppend,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all =
|
||||
(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
yamlData: Yaml_Raw.yamlData,
|
||||
) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t(
|
||||
blessings,
|
||||
cantrips,
|
||||
combatTechniques,
|
||||
liturgicalChants,
|
||||
skills,
|
||||
spells,
|
||||
),
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.disadvantagesUniv |> list(tUniv),
|
||||
yamlData.disadvantagesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,79 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var CheckModifier$OptolithClient = require("./CheckModifier.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
checkMod: JsonStrict$OptolithClient.optionalField("checkMod", CheckModifier$OptolithClient.Decode.t, json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
property: univ.property,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.dominationRitualsUniv), Json_decode.list(tL10n, yamlData.dominationRitualsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,90 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
check: (int, int, int),
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
property: int,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
property: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
checkMod: json |> optionalField("checkMod", CheckModifier.Decode.t),
|
||||
property: json |> field("property", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
property: univ.property,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.dominationRitualsUniv |> list(tUniv),
|
||||
yamlData.dominationRitualsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,80 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var IC$OptolithClient = require("../Utilities/IC.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var CheckModifier$OptolithClient = require("./CheckModifier.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
checkMod: JsonStrict$OptolithClient.optionalField("checkMod", CheckModifier$OptolithClient.Decode.t, json),
|
||||
skill: JsonStrict$OptolithClient.optionalField("skill", Json_decode.$$int, json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json),
|
||||
ic: Json_decode.field("ic", IC$OptolithClient.Decode.t, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
skill: univ.skill,
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.elvenMagicalSongsUniv), Json_decode.list(tL10n, yamlData.elvenMagicalSongsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,90 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
check: (int, int, int),
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
skill: Maybe.t(int),
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
skill: Maybe.t(int),
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
checkMod: json |> optionalField("checkMod", CheckModifier.Decode.t),
|
||||
skill: json |> optionalField("skill", int),
|
||||
property: json |> field("property", int),
|
||||
ic: json |> field("ic", IC.Decode.t),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
skill: univ.skill,
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.elvenMagicalSongsUniv |> list(tUniv),
|
||||
yamlData.elvenMagicalSongsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,70 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function item(json) {
|
||||
return [
|
||||
Json_decode.field("id", Json_decode.$$int, json),
|
||||
JsonStrict$OptolithClient.optionalField("amount", Json_decode.$$int, json)
|
||||
];
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
items: Json_decode.field("items", (function (param) {
|
||||
return Json_decode.list(item, param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
items: Curry._2(IntMap$OptolithClient.map, (function (param) {
|
||||
return Maybe$OptolithClient.fromMaybe(1, param);
|
||||
}), Curry._1(IntMap$OptolithClient.fromList, univ.items)),
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.equipmentPackagesUniv), Json_decode.list(tL10n, yamlData.equipmentPackagesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,63 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
items: IntMap.t(int),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
let%private item = json => (
|
||||
json |> field("id", int),
|
||||
json |> optionalField("amount", int),
|
||||
);
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
items: list((int, Maybe.t(int))),
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
items: json |> field("items", list(item)),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
items: IntMap.fromList(univ.items) |> IntMap.map(Maybe.fromMaybe(1)),
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.equipmentPackagesUniv |> list(tUniv),
|
||||
yamlData.equipmentPackagesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
|
||||
function t(json) {
|
||||
return {
|
||||
date: Json_decode.field("id", Json_decode.date, json),
|
||||
description: Json_decode.field("id", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function list(json) {
|
||||
return Maybe$OptolithClient.fromMaybe(/* [] */0, JsonStrict$OptolithClient.maybe((function (param) {
|
||||
return Json_decode.list(t, param);
|
||||
}), json));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
t: t,
|
||||
list: list
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* No side effect */
|
||||
@@ -1,7 +0,0 @@
|
||||
/* TypeScript file generated from Static_Erratum.re by genType. */
|
||||
/* eslint-disable import/first */
|
||||
|
||||
|
||||
// tslint:disable-next-line:interface-over-type-literal
|
||||
export type t = { readonly date: Date; readonly description: string };
|
||||
export type Erratum = t;
|
||||
@@ -1,18 +0,0 @@
|
||||
[@genType "Erratum"]
|
||||
type t = {
|
||||
date: Js.Date.t,
|
||||
description: string,
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
let t = json => {
|
||||
date: json |> field("id", date),
|
||||
description: json |> field("id", string),
|
||||
};
|
||||
|
||||
let list = json =>
|
||||
json |> maybe(Json.Decode.list(t)) |> Maybe.fromMaybe([]);
|
||||
};
|
||||
@@ -1,63 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
ap: Json_decode.field("ap", Json_decode.$$int, json),
|
||||
maxAttributeValue: Json_decode.field("maxAttributeValue", Json_decode.$$int, json),
|
||||
maxSkillRating: Json_decode.field("maxSkillRating", Json_decode.$$int, json),
|
||||
maxCombatTechniqueRating: Json_decode.field("maxCombatTechniqueRating", Json_decode.$$int, json),
|
||||
maxTotalAttributeValues: Json_decode.field("maxTotalAttributeValues", Json_decode.$$int, json),
|
||||
maxSpellsLiturgicalChants: Json_decode.field("maxSpellsLiturgicalChants", Json_decode.$$int, json),
|
||||
maxUnfamiliarSpells: Json_decode.field("maxUnfamiliarSpells", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
ap: univ.ap,
|
||||
maxAttributeValue: univ.maxAttributeValue,
|
||||
maxSkillRating: univ.maxSkillRating,
|
||||
maxCombatTechniqueRating: univ.maxCombatTechniqueRating,
|
||||
maxTotalAttributeValues: univ.maxTotalAttributeValues,
|
||||
maxSpellsLiturgicalChants: univ.maxSpellsLiturgicalChants,
|
||||
maxUnfamiliarSpells: univ.maxUnfamiliarSpells
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.experienceLevelsUniv), Json_decode.list(tL10n, yamlData.experienceLevelsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,74 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
ap: int,
|
||||
maxAttributeValue: int,
|
||||
maxSkillRating: int,
|
||||
maxCombatTechniqueRating: int,
|
||||
maxTotalAttributeValues: int,
|
||||
maxSpellsLiturgicalChants: int,
|
||||
maxUnfamiliarSpells: int,
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
ap: int,
|
||||
maxAttributeValue: int,
|
||||
maxSkillRating: int,
|
||||
maxCombatTechniqueRating: int,
|
||||
maxTotalAttributeValues: int,
|
||||
maxSpellsLiturgicalChants: int,
|
||||
maxUnfamiliarSpells: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
ap: json |> field("ap", int),
|
||||
maxAttributeValue: json |> field("maxAttributeValue", int),
|
||||
maxSkillRating: json |> field("maxSkillRating", int),
|
||||
maxCombatTechniqueRating: json |> field("maxCombatTechniqueRating", int),
|
||||
maxTotalAttributeValues: json |> field("maxTotalAttributeValues", int),
|
||||
maxSpellsLiturgicalChants:
|
||||
json |> field("maxSpellsLiturgicalChants", int),
|
||||
maxUnfamiliarSpells: json |> field("maxUnfamiliarSpells", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
ap: univ.ap,
|
||||
maxAttributeValue: univ.maxAttributeValue,
|
||||
maxSkillRating: univ.maxSkillRating,
|
||||
maxCombatTechniqueRating: univ.maxCombatTechniqueRating,
|
||||
maxTotalAttributeValues: univ.maxTotalAttributeValues,
|
||||
maxSpellsLiturgicalChants: univ.maxSpellsLiturgicalChants,
|
||||
maxUnfamiliarSpells: univ.maxUnfamiliarSpells,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.experienceLevelsUniv |> list(tUniv),
|
||||
yamlData.experienceLevelsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,61 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
description: Json_decode.field("description", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
level: Json_decode.field("level", Json_decode.$$int, json),
|
||||
subject: Json_decode.field("subject", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
level: univ.level,
|
||||
subject: univ.subject,
|
||||
description: l10n.description,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.focusRulesUniv), Json_decode.list(tL10n, yamlData.focusRulesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,65 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
level: int,
|
||||
subject: int,
|
||||
description: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
description: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
description: json |> field("description", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
level: int,
|
||||
subject: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
level: json |> field("level", int),
|
||||
subject: json |> field("subject", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
level: univ.level,
|
||||
subject: univ.subject,
|
||||
description: l10n.description,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.focusRulesUniv |> list(tUniv),
|
||||
yamlData.focusRulesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,94 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var CheckModifier$OptolithClient = require("./CheckModifier.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
var Static_Prerequisites$OptolithClient = require("./Static_Prerequisites.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
ritualTime: Json_decode.field("ritualTime", Json_decode.string, json),
|
||||
ritualTimeShort: Json_decode.field("ritualTimeShort", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
range: Json_decode.field("range", Json_decode.string, json),
|
||||
rangeShort: Json_decode.field("rangeShort", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
target: Json_decode.field("target", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
checkMod: JsonStrict$OptolithClient.optionalField("checkMod", CheckModifier$OptolithClient.Decode.t, json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json),
|
||||
activatablePrerequisites: JsonStrict$OptolithClient.optionalField("activatablePrerequisites", (function (param) {
|
||||
return Json_decode.list(Static_Prerequisites$OptolithClient.Decode.activatable, param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
ritualTime: l10n.ritualTime,
|
||||
ritualTimeShort: l10n.ritualTimeShort,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
range: l10n.range,
|
||||
rangeShort: l10n.rangeShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
target: l10n.target,
|
||||
property: univ.property,
|
||||
activatablePrerequisites: univ.activatablePrerequisites,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.geodeRitualsUniv), Json_decode.list(tL10n, yamlData.geodeRitualsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,120 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
check: (int, int, int),
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
effect: string,
|
||||
ritualTime: string,
|
||||
ritualTimeShort: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
range: string,
|
||||
rangeShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
target: string,
|
||||
property: int,
|
||||
activatablePrerequisites: Maybe.t(list(Static_Prerequisites.activatable)),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
ritualTime: string,
|
||||
ritualTimeShort: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
range: string,
|
||||
rangeShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
target: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
ritualTime: json |> field("ritualTime", string),
|
||||
ritualTimeShort: json |> field("ritualTimeShort", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
range: json |> field("range", string),
|
||||
rangeShort: json |> field("rangeShort", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
target: json |> field("target", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
property: int,
|
||||
activatablePrerequisites:
|
||||
Maybe.t(list(Static_Prerequisites.activatable)),
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
checkMod: json |> optionalField("checkMod", CheckModifier.Decode.t),
|
||||
property: json |> field("property", int),
|
||||
activatablePrerequisites:
|
||||
json
|
||||
|> optionalField(
|
||||
"activatablePrerequisites",
|
||||
list(Static_Prerequisites.Decode.activatable),
|
||||
),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
ritualTime: l10n.ritualTime,
|
||||
ritualTimeShort: l10n.ritualTimeShort,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
range: l10n.range,
|
||||
rangeShort: l10n.rangeShort,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
target: l10n.target,
|
||||
property: univ.property,
|
||||
activatablePrerequisites: univ.activatablePrerequisites,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.geodeRitualsUniv |> list(tUniv),
|
||||
yamlData.geodeRitualsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,270 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var GenericHelpers$OptolithClient = require("../Utilities/GenericHelpers.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function info(json) {
|
||||
return {
|
||||
note: JsonStrict$OptolithClient.optionalField("note", Json_decode.string, json),
|
||||
rules: JsonStrict$OptolithClient.optionalField("rules", Json_decode.string, json),
|
||||
advantage: JsonStrict$OptolithClient.optionalField("advantage", Json_decode.string, json),
|
||||
disadvantage: JsonStrict$OptolithClient.optionalField("disadvantage", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tL10n(json) {
|
||||
var partial_arg_0 = function (json) {
|
||||
return {
|
||||
hd: info(json),
|
||||
tl: /* [] */0
|
||||
};
|
||||
};
|
||||
var partial_arg_1 = {
|
||||
hd: (function (json) {
|
||||
return Json_decode.list(info, json);
|
||||
}),
|
||||
tl: /* [] */0
|
||||
};
|
||||
var partial_arg = {
|
||||
hd: partial_arg_0,
|
||||
tl: partial_arg_1
|
||||
};
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
info: Json_decode.field("versions", (function (param) {
|
||||
return Json_decode.oneOf(partial_arg, param);
|
||||
}), json)
|
||||
};
|
||||
}
|
||||
|
||||
function mundaneItem(json) {
|
||||
return {
|
||||
structurePoints: JsonStrict$OptolithClient.optionalField("structurePoints", GenericHelpers$OptolithClient.Decode.oneOrMany(Json_decode.$$int), json)
|
||||
};
|
||||
}
|
||||
|
||||
function newAttribute(json) {
|
||||
return {
|
||||
attribute: Json_decode.field("attribute", Json_decode.$$int, json),
|
||||
threshold: Json_decode.field("threshold", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function agilityStrength(json) {
|
||||
var x = Json_decode.pair(Json_decode.$$int, Json_decode.$$int, json);
|
||||
return {
|
||||
agility: x[0],
|
||||
strength: x[1]
|
||||
};
|
||||
}
|
||||
|
||||
function partial_arg_0(json) {
|
||||
return {
|
||||
TAG: /* DefaultAttribute */0,
|
||||
_0: Json_decode.$$int(json)
|
||||
};
|
||||
}
|
||||
|
||||
var partial_arg_1 = {
|
||||
hd: (function (json) {
|
||||
return {
|
||||
TAG: /* DifferentAttribute */1,
|
||||
_0: newAttribute(json)
|
||||
};
|
||||
}),
|
||||
tl: {
|
||||
hd: (function (json) {
|
||||
return {
|
||||
TAG: /* AgilityStrength */2,
|
||||
_0: agilityStrength(json)
|
||||
};
|
||||
}),
|
||||
tl: /* [] */0
|
||||
}
|
||||
};
|
||||
|
||||
var partial_arg = {
|
||||
hd: partial_arg_0,
|
||||
tl: partial_arg_1
|
||||
};
|
||||
|
||||
function primaryAttributeDamageThreshold(param) {
|
||||
return Json_decode.oneOf(partial_arg, param);
|
||||
}
|
||||
|
||||
function meleeWeapon(json) {
|
||||
return {
|
||||
combatTechnique: Json_decode.field("combatTechnique", Json_decode.$$int, json),
|
||||
damage: {
|
||||
amount: Json_decode.field("damageDiceNumber", Json_decode.$$int, json),
|
||||
sides: Json_decode.field("damageDiceSides", Json_decode.$$int, json),
|
||||
flat: JsonStrict$OptolithClient.optionalField("damageFlat", Json_decode.$$int, json)
|
||||
},
|
||||
primaryAttributeDamageThreshold: JsonStrict$OptolithClient.optionalField("damageThreshold", primaryAttributeDamageThreshold, json),
|
||||
at: JsonStrict$OptolithClient.optionalField("at", Json_decode.$$int, json),
|
||||
pa: JsonStrict$OptolithClient.optionalField("pa", Json_decode.$$int, json),
|
||||
reach: JsonStrict$OptolithClient.optionalField("reach", Json_decode.$$int, json),
|
||||
length: JsonStrict$OptolithClient.optionalField("length", Json_decode.$$int, json),
|
||||
structurePoints: JsonStrict$OptolithClient.optionalField("structurePoints", Json_decode.$$int, json),
|
||||
isParryingWeapon: Json_decode.field("isParryingWeapon", Json_decode.bool, json),
|
||||
isTwoHandedWeapon: Json_decode.field("isTwoHandedWeapon", Json_decode.bool, json),
|
||||
isImprovisedWeapon: Json_decode.field("isImprovisedWeapon", Json_decode.bool, json)
|
||||
};
|
||||
}
|
||||
|
||||
function rangedWeapon(json) {
|
||||
return {
|
||||
combatTechnique: Json_decode.field("combatTechnique", Json_decode.$$int, json),
|
||||
damage: Maybe$OptolithClient.Monad.liftM2((function (amount, sides) {
|
||||
return {
|
||||
amount: amount,
|
||||
sides: sides,
|
||||
flat: JsonStrict$OptolithClient.optionalField("damageFlat", Json_decode.$$int, json)
|
||||
};
|
||||
}), JsonStrict$OptolithClient.optionalField("damageDiceNumber", Json_decode.$$int, json), JsonStrict$OptolithClient.optionalField("damageDiceSides", Json_decode.$$int, json)),
|
||||
length: JsonStrict$OptolithClient.optionalField("length", Json_decode.$$int, json),
|
||||
range: [
|
||||
Json_decode.field("closeRange", Json_decode.$$int, json),
|
||||
Json_decode.field("mediumRange", Json_decode.$$int, json),
|
||||
Json_decode.field("farRange", Json_decode.$$int, json)
|
||||
],
|
||||
reloadTime: Json_decode.field("reloadTime", GenericHelpers$OptolithClient.Decode.oneOrMany(Json_decode.$$int), json),
|
||||
ammunition: JsonStrict$OptolithClient.optionalField("ammunition", Json_decode.$$int, json),
|
||||
isImprovisedWeapon: Json_decode.field("isImprovisedWeapon", Json_decode.bool, json)
|
||||
};
|
||||
}
|
||||
|
||||
function combinedWeapon(json) {
|
||||
return [
|
||||
Json_decode.field("melee", meleeWeapon, json),
|
||||
Json_decode.field("ranged", rangedWeapon, json)
|
||||
];
|
||||
}
|
||||
|
||||
function armor(json) {
|
||||
return {
|
||||
protection: Json_decode.field("protection", Json_decode.$$int, json),
|
||||
encumbrance: Json_decode.field("encumbrance", Json_decode.$$int, json),
|
||||
hasAdditionalPenalties: Json_decode.field("hasAdditionalPenalties", Json_decode.bool, json),
|
||||
armorType: Json_decode.field("armorType", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function partial_arg_0$1(json) {
|
||||
return {
|
||||
TAG: /* MundaneItem */0,
|
||||
_0: mundaneItem(json)
|
||||
};
|
||||
}
|
||||
|
||||
var partial_arg_1$1 = {
|
||||
hd: (function (json) {
|
||||
return {
|
||||
TAG: /* MeleeWeapon */1,
|
||||
_0: meleeWeapon(json)
|
||||
};
|
||||
}),
|
||||
tl: {
|
||||
hd: (function (json) {
|
||||
return {
|
||||
TAG: /* RangedWeapon */2,
|
||||
_0: rangedWeapon(json)
|
||||
};
|
||||
}),
|
||||
tl: {
|
||||
hd: (function (json) {
|
||||
var param = combinedWeapon(json);
|
||||
return {
|
||||
TAG: /* CombinedWeapon */3,
|
||||
_0: param[0],
|
||||
_1: param[1]
|
||||
};
|
||||
}),
|
||||
tl: {
|
||||
hd: (function (json) {
|
||||
return {
|
||||
TAG: /* Armor */4,
|
||||
_0: armor(json)
|
||||
};
|
||||
}),
|
||||
tl: /* [] */0
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var partial_arg$1 = {
|
||||
hd: partial_arg_0$1,
|
||||
tl: partial_arg_1$1
|
||||
};
|
||||
|
||||
function special(param) {
|
||||
return Json_decode.oneOf(partial_arg$1, param);
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
price: JsonStrict$OptolithClient.optionalField("price", Json_decode.$$int, json),
|
||||
weight: JsonStrict$OptolithClient.optionalField("weight", Json_decode.$$int, json),
|
||||
special: JsonStrict$OptolithClient.optionalField("special", (function (param) {
|
||||
return Json_decode.oneOf(/* [] */0, param);
|
||||
}), json),
|
||||
gr: Json_decode.field("gr", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
price: univ.price,
|
||||
weight: univ.weight,
|
||||
special: univ.special,
|
||||
info: l10n.info,
|
||||
gr: univ.gr
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.equipmentUniv), Json_decode.list(tL10n, yamlData.equipmentL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
info: info,
|
||||
tL10n: tL10n,
|
||||
mundaneItem: mundaneItem,
|
||||
newAttribute: newAttribute,
|
||||
agilityStrength: agilityStrength,
|
||||
primaryAttributeDamageThreshold: primaryAttributeDamageThreshold,
|
||||
meleeWeapon: meleeWeapon,
|
||||
rangedWeapon: rangedWeapon,
|
||||
combinedWeapon: combinedWeapon,
|
||||
armor: armor,
|
||||
special: special,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,238 +0,0 @@
|
||||
open GenericHelpers;
|
||||
|
||||
type info = {
|
||||
note: Maybe.t(string),
|
||||
rules: Maybe.t(string),
|
||||
advantage: Maybe.t(string),
|
||||
disadvantage: Maybe.t(string),
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
type mundaneItem = {structurePoints: Maybe.t(oneOrMany(int))};
|
||||
|
||||
type newAttribute = {
|
||||
attribute: int,
|
||||
threshold: int,
|
||||
};
|
||||
|
||||
type agilityStrength = {
|
||||
agility: int,
|
||||
strength: int,
|
||||
};
|
||||
|
||||
type primaryAttributeDamageThreshold =
|
||||
| DefaultAttribute(int)
|
||||
| DifferentAttribute(newAttribute)
|
||||
| AgilityStrength(agilityStrength);
|
||||
|
||||
type damage = {
|
||||
amount: int,
|
||||
sides: int,
|
||||
flat: Maybe.t(int),
|
||||
};
|
||||
|
||||
type meleeWeapon = {
|
||||
combatTechnique: int,
|
||||
damage,
|
||||
primaryAttributeDamageThreshold: Maybe.t(primaryAttributeDamageThreshold),
|
||||
at: Maybe.t(int),
|
||||
pa: Maybe.t(int),
|
||||
reach: Maybe.t(int),
|
||||
length: Maybe.t(int),
|
||||
structurePoints: Maybe.t(int),
|
||||
isParryingWeapon: bool,
|
||||
isTwoHandedWeapon: bool,
|
||||
isImprovisedWeapon: bool,
|
||||
};
|
||||
|
||||
type rangedWeapon = {
|
||||
combatTechnique: int,
|
||||
damage: Maybe.t(damage),
|
||||
length: Maybe.t(int),
|
||||
range: (int, int, int),
|
||||
reloadTime: oneOrMany(int),
|
||||
ammunition: Maybe.t(int),
|
||||
isImprovisedWeapon: bool,
|
||||
};
|
||||
|
||||
type armor = {
|
||||
protection: int,
|
||||
encumbrance: int,
|
||||
hasAdditionalPenalties: bool,
|
||||
armorType: int,
|
||||
};
|
||||
|
||||
type special =
|
||||
| MundaneItem(mundaneItem)
|
||||
| MeleeWeapon(meleeWeapon)
|
||||
| RangedWeapon(rangedWeapon)
|
||||
| CombinedWeapon(meleeWeapon, rangedWeapon)
|
||||
| Armor(armor);
|
||||
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
price: Maybe.t(int),
|
||||
weight: Maybe.t(int),
|
||||
special: Maybe.t(special),
|
||||
info: list(info),
|
||||
gr: int,
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
open GenericHelpers.Decode;
|
||||
|
||||
let info = json => {
|
||||
note: json |> optionalField("note", string),
|
||||
rules: json |> optionalField("rules", string),
|
||||
advantage: json |> optionalField("advantage", string),
|
||||
disadvantage: json |> optionalField("disadvantage", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
info: list(info),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
info:
|
||||
json
|
||||
|> field(
|
||||
"versions",
|
||||
oneOf([
|
||||
json => json |> info |> (x => [x]),
|
||||
json => json |> list(info),
|
||||
]),
|
||||
),
|
||||
};
|
||||
|
||||
let mundaneItem = json => {
|
||||
structurePoints:
|
||||
json |> optionalField("structurePoints", oneOrMany(int)),
|
||||
};
|
||||
|
||||
let newAttribute = json => {
|
||||
attribute: json |> field("attribute", int),
|
||||
threshold: json |> field("threshold", int),
|
||||
};
|
||||
|
||||
let agilityStrength = json =>
|
||||
json |> pair(int, int) |> (x => {agility: fst(x), strength: snd(x)});
|
||||
|
||||
let primaryAttributeDamageThreshold =
|
||||
oneOf([
|
||||
json => json |> int |> (x => DefaultAttribute(x)),
|
||||
json => json |> newAttribute |> (x => DifferentAttribute(x)),
|
||||
json => json |> agilityStrength |> (x => AgilityStrength(x)),
|
||||
]);
|
||||
|
||||
let meleeWeapon = json => {
|
||||
combatTechnique: json |> field("combatTechnique", int),
|
||||
damage: {
|
||||
amount: json |> field("damageDiceNumber", int),
|
||||
sides: json |> field("damageDiceSides", int),
|
||||
flat: json |> optionalField("damageFlat", int),
|
||||
},
|
||||
primaryAttributeDamageThreshold:
|
||||
json
|
||||
|> optionalField("damageThreshold", primaryAttributeDamageThreshold),
|
||||
at: json |> optionalField("at", int),
|
||||
pa: json |> optionalField("pa", int),
|
||||
reach: json |> optionalField("reach", int),
|
||||
length: json |> optionalField("length", int),
|
||||
structurePoints: json |> optionalField("structurePoints", int),
|
||||
isParryingWeapon: json |> field("isParryingWeapon", bool),
|
||||
isTwoHandedWeapon: json |> field("isTwoHandedWeapon", bool),
|
||||
isImprovisedWeapon: json |> field("isImprovisedWeapon", bool),
|
||||
};
|
||||
|
||||
let rangedWeapon = json =>
|
||||
Maybe.Monad.{
|
||||
combatTechnique: json |> field("combatTechnique", int),
|
||||
damage:
|
||||
liftM2(
|
||||
(amount, sides) =>
|
||||
{amount, sides, flat: json |> optionalField("damageFlat", int)},
|
||||
json |> optionalField("damageDiceNumber", int),
|
||||
json |> optionalField("damageDiceSides", int),
|
||||
),
|
||||
length: json |> optionalField("length", int),
|
||||
range: (
|
||||
json |> field("closeRange", int),
|
||||
json |> field("mediumRange", int),
|
||||
json |> field("farRange", int),
|
||||
),
|
||||
reloadTime: json |> field("reloadTime", oneOrMany(int)),
|
||||
ammunition: json |> optionalField("ammunition", int),
|
||||
isImprovisedWeapon: json |> field("isImprovisedWeapon", bool),
|
||||
};
|
||||
|
||||
let combinedWeapon = json => (
|
||||
json |> field("melee", meleeWeapon),
|
||||
json |> field("ranged", rangedWeapon),
|
||||
);
|
||||
|
||||
let armor = json => {
|
||||
protection: json |> field("protection", int),
|
||||
encumbrance: json |> field("encumbrance", int),
|
||||
hasAdditionalPenalties: json |> field("hasAdditionalPenalties", bool),
|
||||
armorType: json |> field("armorType", int),
|
||||
};
|
||||
|
||||
let special =
|
||||
oneOf([
|
||||
json => json |> mundaneItem |> (x => MundaneItem(x)),
|
||||
json => json |> meleeWeapon |> (x => MeleeWeapon(x)),
|
||||
json => json |> rangedWeapon |> (x => RangedWeapon(x)),
|
||||
json => json |> combinedWeapon |> (((m, r)) => CombinedWeapon(m, r)),
|
||||
json => json |> armor |> (x => Armor(x)),
|
||||
]);
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
price: Maybe.t(int),
|
||||
weight: Maybe.t(int),
|
||||
special: Maybe.t(special),
|
||||
gr: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
price: json |> optionalField("price", int),
|
||||
weight: json |> optionalField("weight", int),
|
||||
special: json |> optionalField("special", oneOf([])),
|
||||
gr: json |> field("gr", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
price: univ.price,
|
||||
weight: univ.weight,
|
||||
special: univ.special,
|
||||
info: l10n.info,
|
||||
gr: univ.gr,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.equipmentUniv |> list(tUniv),
|
||||
yamlData.equipmentL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,232 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var IC$OptolithClient = require("../Utilities/IC.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var Maybe$OptolithClient = require("../../Data/Maybe.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var CheckModifier$OptolithClient = require("./CheckModifier.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function enhancementLevelL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function enhancementL10n(json) {
|
||||
return {
|
||||
target: Json_decode.field("target", Json_decode.$$int, json),
|
||||
level1: Json_decode.field("level1", enhancementLevelL10n, json),
|
||||
level2: Json_decode.field("level2", enhancementLevelL10n, json),
|
||||
level3: Json_decode.field("level3", enhancementLevelL10n, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function enhancementLevel1Univ(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
cost: Json_decode.field("cost", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function level3Prerequisite(json) {
|
||||
var x = Json_decode.$$int(json);
|
||||
if (x === 1) {
|
||||
return 1;
|
||||
}
|
||||
throw {
|
||||
RE_EXN_ID: Json_decode.DecodeError,
|
||||
_1: "Unknown level 2 prerequisite: " + Int$OptolithClient.show(x),
|
||||
Error: new Error()
|
||||
};
|
||||
}
|
||||
|
||||
function enhancementLevel2Univ(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
cost: Json_decode.field("cost", Json_decode.$$int, json),
|
||||
requireLevel1: Maybe$OptolithClient.isJust(JsonStrict$OptolithClient.optionalField("previousRequirement", level3Prerequisite, json))
|
||||
};
|
||||
}
|
||||
|
||||
function level3Prerequisite$1(json) {
|
||||
var x = Json_decode.$$int(json);
|
||||
if (x === 1) {
|
||||
return /* First */0;
|
||||
}
|
||||
if (x === 2) {
|
||||
return /* Second */1;
|
||||
}
|
||||
throw {
|
||||
RE_EXN_ID: Json_decode.DecodeError,
|
||||
_1: "Unknown level 3 prerequisite: " + Int$OptolithClient.show(x),
|
||||
Error: new Error()
|
||||
};
|
||||
}
|
||||
|
||||
function enhancementLevel3Univ(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
cost: Json_decode.field("cost", Json_decode.$$int, json),
|
||||
requirePrevious: JsonStrict$OptolithClient.optionalField("previousRequirement", level3Prerequisite$1, json)
|
||||
};
|
||||
}
|
||||
|
||||
function enhancementUniv(json) {
|
||||
return {
|
||||
target: Json_decode.field("target", Json_decode.$$int, json),
|
||||
level1: Json_decode.field("level1", enhancementLevel1Univ, json),
|
||||
level2: Json_decode.field("level2", enhancementLevel2Univ, json),
|
||||
level3: Json_decode.field("level3", enhancementLevel3Univ, json)
|
||||
};
|
||||
}
|
||||
|
||||
function enhancement(univ, l10n) {
|
||||
return {
|
||||
target: univ.target,
|
||||
level1: {
|
||||
id: univ.level1.id,
|
||||
name: l10n.level1.name,
|
||||
effect: l10n.level1.effect,
|
||||
cost: univ.level1.cost
|
||||
},
|
||||
level2: {
|
||||
id: univ.level2.id,
|
||||
name: l10n.level2.name,
|
||||
effect: l10n.level2.effect,
|
||||
cost: univ.level2.cost,
|
||||
requireLevel1: univ.level2.requireLevel1
|
||||
},
|
||||
level3: {
|
||||
id: univ.level3.id,
|
||||
name: l10n.level3.name,
|
||||
effect: l10n.level3.effect,
|
||||
cost: univ.level3.cost,
|
||||
requirePrevious: univ.level3.requirePrevious
|
||||
},
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
};
|
||||
}
|
||||
|
||||
function enhancements(yamlData) {
|
||||
return Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, enhancement, (function (x) {
|
||||
return x.target;
|
||||
}), (function (x) {
|
||||
return x.target;
|
||||
}), Json_decode.list(enhancementUniv, yamlData.liturgicalChantEnhancementsUniv), Json_decode.list(enhancementL10n, yamlData.liturgicalChantEnhancementsL10n));
|
||||
}
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
castingTime: Json_decode.field("castingTime", Json_decode.string, json),
|
||||
castingTimeShort: Json_decode.field("castingTimeShort", Json_decode.string, json),
|
||||
kpCost: Json_decode.field("kpCost", Json_decode.string, json),
|
||||
kpCostShort: Json_decode.field("kpCostShort", Json_decode.string, json),
|
||||
range: Json_decode.field("range", Json_decode.string, json),
|
||||
rangeShort: Json_decode.field("rangeShort", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
target: Json_decode.field("target", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
checkMod: JsonStrict$OptolithClient.optionalField("checkMod", CheckModifier$OptolithClient.Decode.t, json),
|
||||
castingTimeNoMod: Json_decode.field("castingTimeNoMod", Json_decode.bool, json),
|
||||
kpCostNoMod: Json_decode.field("kpCostNoMod", Json_decode.bool, json),
|
||||
rangeNoMod: Json_decode.field("rangeNoMod", Json_decode.bool, json),
|
||||
durationNoMod: Json_decode.field("durationNoMod", Json_decode.bool, json),
|
||||
traditions: Json_decode.field("traditions", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
aspects: JsonStrict$OptolithClient.optionalField("traditions", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
ic: Json_decode.field("ic", IC$OptolithClient.Decode.t, json),
|
||||
gr: Json_decode.field("gr", Json_decode.$$int, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
castingTime: l10n.castingTime,
|
||||
castingTimeShort: l10n.castingTimeShort,
|
||||
castingTimeNoMod: univ.castingTimeNoMod,
|
||||
kpCost: l10n.kpCost,
|
||||
kpCostShort: l10n.kpCostShort,
|
||||
kpCostNoMod: univ.kpCostNoMod,
|
||||
range: l10n.range,
|
||||
rangeShort: l10n.rangeShort,
|
||||
rangeNoMod: univ.rangeNoMod,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
durationNoMod: univ.durationNoMod,
|
||||
target: l10n.target,
|
||||
traditions: univ.traditions,
|
||||
aspects: Maybe$OptolithClient.fromMaybe(/* [] */0, univ.aspects),
|
||||
ic: univ.ic,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.liturgicalChantsUniv), Json_decode.list(tL10n, yamlData.liturgicalChantsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
enhancementLevelL10n: enhancementLevelL10n,
|
||||
enhancementL10n: enhancementL10n,
|
||||
enhancementLevel1Univ: enhancementLevel1Univ,
|
||||
enhancementLevel2Univ: enhancementLevel2Univ,
|
||||
level3Prerequisite: level3Prerequisite$1,
|
||||
enhancementLevel3Univ: enhancementLevel3Univ,
|
||||
enhancementUniv: enhancementUniv,
|
||||
enhancement: enhancement,
|
||||
enhancements: enhancements,
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,321 +0,0 @@
|
||||
type enhancementLevel1 = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
cost: int,
|
||||
};
|
||||
|
||||
type enhancementLevel2 = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
cost: int,
|
||||
requireLevel1: bool,
|
||||
};
|
||||
|
||||
type level3Prerequisite =
|
||||
| First
|
||||
| Second;
|
||||
|
||||
type enhancementLevel3 = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
cost: int,
|
||||
requirePrevious: Maybe.t(level3Prerequisite),
|
||||
};
|
||||
|
||||
type enhancement = {
|
||||
target: int,
|
||||
level1: enhancementLevel1,
|
||||
level2: enhancementLevel2,
|
||||
level3: enhancementLevel3,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
check: (int, int, int),
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
effect: string,
|
||||
castingTime: string,
|
||||
castingTimeShort: string,
|
||||
castingTimeNoMod: bool,
|
||||
kpCost: string,
|
||||
kpCostShort: string,
|
||||
kpCostNoMod: bool,
|
||||
range: string,
|
||||
rangeShort: string,
|
||||
rangeNoMod: bool,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
durationNoMod: bool,
|
||||
target: string,
|
||||
traditions: list(int),
|
||||
aspects: list(int),
|
||||
ic: IC.t,
|
||||
gr: int,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type enhancementLevelL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
};
|
||||
|
||||
let enhancementLevelL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
};
|
||||
|
||||
type enhancementL10n = {
|
||||
target: int,
|
||||
level1: enhancementLevelL10n,
|
||||
level2: enhancementLevelL10n,
|
||||
level3: enhancementLevelL10n,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let enhancementL10n = json => {
|
||||
target: json |> field("target", int),
|
||||
level1: json |> field("level1", enhancementLevelL10n),
|
||||
level2: json |> field("level2", enhancementLevelL10n),
|
||||
level3: json |> field("level3", enhancementLevelL10n),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type enhancementLevel1Univ = {
|
||||
id: int,
|
||||
cost: int,
|
||||
};
|
||||
|
||||
let enhancementLevel1Univ = json => {
|
||||
id: json |> field("id", int),
|
||||
cost: json |> field("cost", int),
|
||||
};
|
||||
|
||||
type enhancementLevel2Univ = {
|
||||
id: int,
|
||||
cost: int,
|
||||
requireLevel1: bool,
|
||||
};
|
||||
|
||||
let level3Prerequisite = json =>
|
||||
json
|
||||
|> int
|
||||
|> (
|
||||
x =>
|
||||
switch (x) {
|
||||
| 1 => 1
|
||||
| y =>
|
||||
raise(
|
||||
DecodeError("Unknown level 2 prerequisite: " ++ Int.show(y)),
|
||||
)
|
||||
}
|
||||
);
|
||||
|
||||
let enhancementLevel2Univ = json => {
|
||||
id: json |> field("id", int),
|
||||
cost: json |> field("cost", int),
|
||||
requireLevel1:
|
||||
json
|
||||
|> optionalField("previousRequirement", level3Prerequisite)
|
||||
|> Maybe.isJust,
|
||||
};
|
||||
|
||||
type enhancementLevel3Univ = {
|
||||
id: int,
|
||||
cost: int,
|
||||
requirePrevious: Maybe.t(level3Prerequisite),
|
||||
};
|
||||
|
||||
let level3Prerequisite = json =>
|
||||
json
|
||||
|> int
|
||||
|> (
|
||||
x =>
|
||||
switch (x) {
|
||||
| 1 => First
|
||||
| 2 => Second
|
||||
| y =>
|
||||
raise(
|
||||
DecodeError("Unknown level 3 prerequisite: " ++ Int.show(y)),
|
||||
)
|
||||
}
|
||||
);
|
||||
|
||||
let enhancementLevel3Univ = json => {
|
||||
id: json |> field("id", int),
|
||||
cost: json |> field("cost", int),
|
||||
requirePrevious:
|
||||
json |> optionalField("previousRequirement", level3Prerequisite),
|
||||
};
|
||||
|
||||
type enhancementUniv = {
|
||||
target: int,
|
||||
level1: enhancementLevel1Univ,
|
||||
level2: enhancementLevel2Univ,
|
||||
level3: enhancementLevel3Univ,
|
||||
};
|
||||
|
||||
let enhancementUniv = json => {
|
||||
target: json |> field("target", int),
|
||||
level1: json |> field("level1", enhancementLevel1Univ),
|
||||
level2: json |> field("level2", enhancementLevel2Univ),
|
||||
level3: json |> field("level3", enhancementLevel3Univ),
|
||||
};
|
||||
|
||||
let enhancement = (univ, l10n: enhancementL10n): enhancement => {
|
||||
target: univ.target,
|
||||
level1: {
|
||||
id: univ.level1.id,
|
||||
name: l10n.level1.name,
|
||||
effect: l10n.level1.effect,
|
||||
cost: univ.level1.cost,
|
||||
},
|
||||
level2: {
|
||||
id: univ.level2.id,
|
||||
name: l10n.level2.name,
|
||||
effect: l10n.level2.effect,
|
||||
cost: univ.level2.cost,
|
||||
requireLevel1: univ.level2.requireLevel1,
|
||||
},
|
||||
level3: {
|
||||
id: univ.level3.id,
|
||||
name: l10n.level3.name,
|
||||
effect: l10n.level3.effect,
|
||||
cost: univ.level3.cost,
|
||||
requirePrevious: univ.level3.requirePrevious,
|
||||
},
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
};
|
||||
|
||||
let enhancements = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
enhancement,
|
||||
x => x.target,
|
||||
x => x.target,
|
||||
yamlData.liturgicalChantEnhancementsUniv |> list(enhancementUniv),
|
||||
yamlData.liturgicalChantEnhancementsL10n |> list(enhancementL10n),
|
||||
);
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
effect: string,
|
||||
castingTime: string,
|
||||
castingTimeShort: string,
|
||||
kpCost: string,
|
||||
kpCostShort: string,
|
||||
range: string,
|
||||
rangeShort: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
target: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
effect: json |> field("effect", string),
|
||||
castingTime: json |> field("castingTime", string),
|
||||
castingTimeShort: json |> field("castingTimeShort", string),
|
||||
kpCost: json |> field("kpCost", string),
|
||||
kpCostShort: json |> field("kpCostShort", string),
|
||||
range: json |> field("range", string),
|
||||
rangeShort: json |> field("rangeShort", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
target: json |> field("target", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
checkMod: Maybe.t(CheckModifier.t),
|
||||
castingTimeNoMod: bool,
|
||||
kpCostNoMod: bool,
|
||||
rangeNoMod: bool,
|
||||
durationNoMod: bool,
|
||||
traditions: list(int),
|
||||
aspects: Maybe.t(list(int)),
|
||||
ic: IC.t,
|
||||
gr: int,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
checkMod: json |> optionalField("checkMod", CheckModifier.Decode.t),
|
||||
castingTimeNoMod: json |> field("castingTimeNoMod", bool),
|
||||
kpCostNoMod: json |> field("kpCostNoMod", bool),
|
||||
rangeNoMod: json |> field("rangeNoMod", bool),
|
||||
durationNoMod: json |> field("durationNoMod", bool),
|
||||
traditions: json |> field("traditions", list(int)),
|
||||
aspects: json |> optionalField("traditions", list(int)),
|
||||
ic: json |> field("ic", IC.Decode.t),
|
||||
gr: json |> field("gr", int),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
checkMod: univ.checkMod,
|
||||
effect: l10n.effect,
|
||||
castingTime: l10n.castingTime,
|
||||
castingTimeShort: l10n.castingTimeShort,
|
||||
castingTimeNoMod: univ.castingTimeNoMod,
|
||||
kpCost: l10n.kpCost,
|
||||
kpCostShort: l10n.kpCostShort,
|
||||
kpCostNoMod: univ.kpCostNoMod,
|
||||
range: l10n.range,
|
||||
rangeShort: l10n.rangeShort,
|
||||
rangeNoMod: univ.rangeNoMod,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
durationNoMod: univ.durationNoMod,
|
||||
target: l10n.target,
|
||||
traditions: univ.traditions,
|
||||
aspects: univ.aspects |> Maybe.fromMaybe([]),
|
||||
ic: univ.ic,
|
||||
gr: univ.gr,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.liturgicalChantsUniv |> list(tUniv),
|
||||
yamlData.liturgicalChantsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,95 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var IC$OptolithClient = require("../Utilities/IC.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var IntSet$OptolithClient = require("../../Data/IntSet.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function nameByTradition(json) {
|
||||
return [
|
||||
Json_decode.field("id", Json_decode.$$int, json),
|
||||
Json_decode.field("name", Json_decode.string, json)
|
||||
];
|
||||
}
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
nameByTradition: Json_decode.field("nameByTradition", (function (param) {
|
||||
return Json_decode.list(nameByTradition, param);
|
||||
}), json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
musictraditions: Json_decode.field("musictraditions", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json),
|
||||
ic: Json_decode.field("ic", IC$OptolithClient.Decode.t, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameByTradition: Curry._1(IntMap$OptolithClient.fromList, l10n.nameByTradition),
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
effect: l10n.effect,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
musictraditions: Curry._1(IntSet$OptolithClient.fromList, univ.musictraditions),
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.magicalDancesUniv), Json_decode.list(tL10n, yamlData.magicalDancesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
nameByTradition: nameByTradition,
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,102 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameByTradition: IntMap.t(string),
|
||||
check: (int, int, int),
|
||||
effect: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
musictraditions: IntSet.t,
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
|
||||
let nameByTradition = json => (
|
||||
json |> field("id", int),
|
||||
json |> field("name", string),
|
||||
);
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameByTradition: list((int, string)),
|
||||
effect: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
nameByTradition: json |> field("nameByTradition", list(nameByTradition)),
|
||||
effect: json |> field("effect", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
musictraditions: list(int),
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
musictraditions: json |> field("musictraditions", list(int)),
|
||||
property: json |> field("property", int),
|
||||
ic: json |> field("ic", IC.Decode.t),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameByTradition: l10n.nameByTradition |> IntMap.fromList,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
effect: l10n.effect,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
musictraditions: univ.musictraditions |> IntSet.fromList,
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.magicalDancesUniv |> list(tUniv),
|
||||
yamlData.magicalDancesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,98 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var IC$OptolithClient = require("../Utilities/IC.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var IntSet$OptolithClient = require("../../Data/IntSet.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
var Static_Erratum$OptolithClient = require("./Static_Erratum.bs.js");
|
||||
var Static_SourceRef$OptolithClient = require("./Static_SourceRef.bs.js");
|
||||
|
||||
function nameByTradition(json) {
|
||||
return [
|
||||
Json_decode.field("id", Json_decode.$$int, json),
|
||||
Json_decode.field("name", Json_decode.string, json)
|
||||
];
|
||||
}
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json),
|
||||
nameByTradition: Json_decode.field("nameByTradition", (function (param) {
|
||||
return Json_decode.list(nameByTradition, param);
|
||||
}), json),
|
||||
effect: Json_decode.field("effect", Json_decode.string, json),
|
||||
duration: Json_decode.field("duration", Json_decode.string, json),
|
||||
durationShort: Json_decode.field("durationShort", Json_decode.string, json),
|
||||
aeCost: Json_decode.field("aeCost", Json_decode.string, json),
|
||||
aeCostShort: Json_decode.field("aeCostShort", Json_decode.string, json),
|
||||
src: Json_decode.field("src", Static_SourceRef$OptolithClient.Decode.list, json),
|
||||
errata: Json_decode.field("errata", Static_Erratum$OptolithClient.Decode.list, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
check1: Json_decode.field("check1", Json_decode.$$int, json),
|
||||
check2: Json_decode.field("check2", Json_decode.$$int, json),
|
||||
check3: Json_decode.field("check3", Json_decode.$$int, json),
|
||||
skill: JsonStrict$OptolithClient.optionalField("skill", Json_decode.$$int, json),
|
||||
musictraditions: Json_decode.field("musictraditions", (function (param) {
|
||||
return Json_decode.list(Json_decode.$$int, param);
|
||||
}), json),
|
||||
property: Json_decode.field("property", Json_decode.$$int, json),
|
||||
ic: Json_decode.field("ic", IC$OptolithClient.Decode.t, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameByTradition: Curry._1(IntMap$OptolithClient.fromList, l10n.nameByTradition),
|
||||
check: [
|
||||
univ.check1,
|
||||
univ.check2,
|
||||
univ.check3
|
||||
],
|
||||
effect: l10n.effect,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
skill: univ.skill,
|
||||
musictraditions: Curry._1(IntSet$OptolithClient.fromList, univ.musictraditions),
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.magicalMelodiesUniv), Json_decode.list(tL10n, yamlData.magicalMelodiesL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
nameByTradition: nameByTradition,
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,107 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameByTradition: IntMap.t(string),
|
||||
check: (int, int, int),
|
||||
effect: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
skill: Maybe.t(int),
|
||||
musictraditions: IntSet.t,
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
let nameByTradition = json => (
|
||||
json |> field("id", int),
|
||||
json |> field("name", string),
|
||||
);
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
nameByTradition: list((int, string)),
|
||||
effect: string,
|
||||
duration: string,
|
||||
durationShort: string,
|
||||
aeCost: string,
|
||||
aeCostShort: string,
|
||||
src: list(Static_SourceRef.t),
|
||||
errata: list(Static_Erratum.t),
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
nameByTradition: json |> field("nameByTradition", list(nameByTradition)),
|
||||
effect: json |> field("effect", string),
|
||||
duration: json |> field("duration", string),
|
||||
durationShort: json |> field("durationShort", string),
|
||||
aeCost: json |> field("aeCost", string),
|
||||
aeCostShort: json |> field("aeCostShort", string),
|
||||
src: json |> field("src", Static_SourceRef.Decode.list),
|
||||
errata: json |> field("errata", Static_Erratum.Decode.list),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
check1: int,
|
||||
check2: int,
|
||||
check3: int,
|
||||
skill: Maybe.t(int),
|
||||
musictraditions: list(int),
|
||||
property: int,
|
||||
ic: IC.t,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
check1: json |> field("check1", int),
|
||||
check2: json |> field("check2", int),
|
||||
check3: json |> field("check3", int),
|
||||
skill: json |> optionalField("skill", int),
|
||||
musictraditions: json |> field("musictraditions", list(int)),
|
||||
property: json |> field("property", int),
|
||||
ic: json |> field("ic", IC.Decode.t),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
name: l10n.name,
|
||||
nameByTradition: l10n.nameByTradition |> IntMap.fromList,
|
||||
check: (univ.check1, univ.check2, univ.check3),
|
||||
effect: l10n.effect,
|
||||
duration: l10n.duration,
|
||||
durationShort: l10n.durationShort,
|
||||
aeCost: l10n.aeCost,
|
||||
aeCostShort: l10n.aeCostShort,
|
||||
skill: univ.skill,
|
||||
musictraditions: univ.musictraditions |> IntSet.fromList,
|
||||
property: univ.property,
|
||||
ic: univ.ic,
|
||||
src: l10n.src,
|
||||
errata: l10n.errata,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.magicalMelodiesUniv |> list(tUniv),
|
||||
yamlData.magicalMelodiesL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,68 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Curry = require("bs-platform/lib/js/curry.js");
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
var Int$OptolithClient = require("../../Data/Int.bs.js");
|
||||
var IntMap$OptolithClient = require("../../Data/IntMap.bs.js");
|
||||
var Yaml_Zip$OptolithClient = require("../Utilities/Yaml_Zip.bs.js");
|
||||
var JsonStrict$OptolithClient = require("../Utilities/JsonStrict.bs.js");
|
||||
|
||||
function tL10n(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
name: Json_decode.field("name", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
function tUniv(json) {
|
||||
return {
|
||||
id: Json_decode.field("id", Json_decode.$$int, json),
|
||||
numId: JsonStrict$OptolithClient.optionalField("numId", Json_decode.$$int, json),
|
||||
primary: JsonStrict$OptolithClient.optionalField("primary", Json_decode.$$int, json),
|
||||
aeMod: JsonStrict$OptolithClient.optionalField("aeMod", Json_decode.$$float, json),
|
||||
canLearnCantrips: Json_decode.field("canLearnCantrips", Json_decode.bool, json),
|
||||
canLearnSpells: Json_decode.field("canLearnSpells", Json_decode.bool, json),
|
||||
canLearnRituals: Json_decode.field("canLearnRituals", Json_decode.bool, json),
|
||||
allowMultipleTraditions: Json_decode.field("allowMultipleTraditions", Json_decode.bool, json),
|
||||
isDisAdvAPMaxHalved: Json_decode.field("isDisAdvAPMaxHalved", Json_decode.bool, json),
|
||||
areDisAdvRequiredApplyToMagActionsOrApps: Json_decode.field("areDisAdvRequiredApplyToMagActionsOrApps", Json_decode.bool, json)
|
||||
};
|
||||
}
|
||||
|
||||
function t(univ, l10n) {
|
||||
return [
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
numId: univ.numId,
|
||||
name: l10n.name,
|
||||
primary: univ.primary,
|
||||
aeMod: univ.aeMod,
|
||||
canLearnCantrips: univ.canLearnCantrips,
|
||||
canLearnSpells: univ.canLearnSpells,
|
||||
canLearnRituals: univ.canLearnRituals,
|
||||
allowMultipleTraditions: univ.allowMultipleTraditions,
|
||||
isDisAdvAPMaxHalved: univ.isDisAdvAPMaxHalved,
|
||||
areDisAdvRequiredApplyToMagActionsOrApps: univ.areDisAdvRequiredApplyToMagActionsOrApps
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
function all(yamlData) {
|
||||
return Curry._1(IntMap$OptolithClient.fromList, Yaml_Zip$OptolithClient.zipBy(Int$OptolithClient.show, t, (function (x) {
|
||||
return x.id;
|
||||
}), (function (x) {
|
||||
return x.id;
|
||||
}), Json_decode.list(tUniv, yamlData.magicalTraditionsUniv), Json_decode.list(tL10n, yamlData.magicalTraditionsL10n)));
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
tL10n: tL10n,
|
||||
tUniv: tUniv,
|
||||
t: t,
|
||||
all: all
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* IntMap-OptolithClient Not a pure module */
|
||||
@@ -1,84 +0,0 @@
|
||||
type t = {
|
||||
id: int,
|
||||
numId: Maybe.t(int),
|
||||
name: string,
|
||||
primary: Maybe.t(int),
|
||||
aeMod: Maybe.t(float),
|
||||
canLearnCantrips: bool,
|
||||
canLearnSpells: bool,
|
||||
canLearnRituals: bool,
|
||||
allowMultipleTraditions: bool,
|
||||
isDisAdvAPMaxHalved: bool,
|
||||
areDisAdvRequiredApplyToMagActionsOrApps: bool,
|
||||
};
|
||||
|
||||
module Decode = {
|
||||
open Json.Decode;
|
||||
open JsonStrict;
|
||||
|
||||
type tL10n = {
|
||||
id: int,
|
||||
name: string,
|
||||
};
|
||||
|
||||
let tL10n = json => {
|
||||
id: json |> field("id", int),
|
||||
name: json |> field("name", string),
|
||||
};
|
||||
|
||||
type tUniv = {
|
||||
id: int,
|
||||
numId: Maybe.t(int),
|
||||
primary: Maybe.t(int),
|
||||
aeMod: Maybe.t(float),
|
||||
canLearnCantrips: bool,
|
||||
canLearnSpells: bool,
|
||||
canLearnRituals: bool,
|
||||
allowMultipleTraditions: bool,
|
||||
isDisAdvAPMaxHalved: bool,
|
||||
areDisAdvRequiredApplyToMagActionsOrApps: bool,
|
||||
};
|
||||
|
||||
let tUniv = json => {
|
||||
id: json |> field("id", int),
|
||||
numId: json |> optionalField("numId", int),
|
||||
primary: json |> optionalField("primary", int),
|
||||
aeMod: json |> optionalField("aeMod", Json.Decode.float),
|
||||
canLearnCantrips: json |> field("canLearnCantrips", bool),
|
||||
canLearnSpells: json |> field("canLearnSpells", bool),
|
||||
canLearnRituals: json |> field("canLearnRituals", bool),
|
||||
allowMultipleTraditions: json |> field("allowMultipleTraditions", bool),
|
||||
isDisAdvAPMaxHalved: json |> field("isDisAdvAPMaxHalved", bool),
|
||||
areDisAdvRequiredApplyToMagActionsOrApps:
|
||||
json |> field("areDisAdvRequiredApplyToMagActionsOrApps", bool),
|
||||
};
|
||||
|
||||
let t = (univ, l10n) => (
|
||||
univ.id,
|
||||
{
|
||||
id: univ.id,
|
||||
numId: univ.numId,
|
||||
name: l10n.name,
|
||||
primary: univ.primary,
|
||||
aeMod: univ.aeMod,
|
||||
canLearnCantrips: univ.canLearnCantrips,
|
||||
canLearnSpells: univ.canLearnSpells,
|
||||
canLearnRituals: univ.canLearnRituals,
|
||||
allowMultipleTraditions: univ.allowMultipleTraditions,
|
||||
isDisAdvAPMaxHalved: univ.isDisAdvAPMaxHalved,
|
||||
areDisAdvRequiredApplyToMagActionsOrApps:
|
||||
univ.areDisAdvRequiredApplyToMagActionsOrApps,
|
||||
},
|
||||
);
|
||||
|
||||
let all = (yamlData: Yaml_Raw.yamlData) =>
|
||||
Yaml_Zip.zipBy(
|
||||
Int.show,
|
||||
t,
|
||||
x => x.id,
|
||||
x => x.id,
|
||||
yamlData.magicalTraditionsUniv |> list(tUniv),
|
||||
yamlData.magicalTraditionsL10n |> list(tL10n),
|
||||
)
|
||||
|> IntMap.fromList;
|
||||
};
|
||||
@@ -1,834 +0,0 @@
|
||||
// Generated by ReScript, PLEASE EDIT WITH CARE
|
||||
'use strict';
|
||||
|
||||
var Json_decode = require("@glennsl/bs-json/src/Json_decode.bs.js");
|
||||
|
||||
function t(locale, json) {
|
||||
return {
|
||||
id: locale,
|
||||
macosmenubar_aboutapp: Json_decode.field("macosmenubar.aboutapp", Json_decode.string, json),
|
||||
macosmenubar_preferences: Json_decode.field("macosmenubar.preferences", Json_decode.string, json),
|
||||
macosmenubar_quit: Json_decode.field("macosmenubar.quit", Json_decode.string, json),
|
||||
macosmenubar_edit: Json_decode.field("macosmenubar.edit", Json_decode.string, json),
|
||||
macosmenubar_view: Json_decode.field("macosmenubar.view", Json_decode.string, json),
|
||||
initialization_loadtableserror: Json_decode.field("initialization.loadtableserror", Json_decode.string, json),
|
||||
header_tabs_heroes: Json_decode.field("header.tabs.heroes", Json_decode.string, json),
|
||||
header_tabs_groups: Json_decode.field("header.tabs.groups", Json_decode.string, json),
|
||||
header_tabs_wiki: Json_decode.field("header.tabs.wiki", Json_decode.string, json),
|
||||
header_tabs_faq: Json_decode.field("header.tabs.faq", Json_decode.string, json),
|
||||
header_tabs_about: Json_decode.field("header.tabs.about", Json_decode.string, json),
|
||||
header_tabs_imprint: Json_decode.field("header.tabs.imprint", Json_decode.string, json),
|
||||
header_tabs_thirdpartylicenses: Json_decode.field("header.tabs.thirdpartylicenses", Json_decode.string, json),
|
||||
header_tabs_lastchanges: Json_decode.field("header.tabs.lastchanges", Json_decode.string, json),
|
||||
header_tabs_profile: Json_decode.field("header.tabs.profile", Json_decode.string, json),
|
||||
header_tabs_overview: Json_decode.field("header.tabs.overview", Json_decode.string, json),
|
||||
header_tabs_personaldata: Json_decode.field("header.tabs.personaldata", Json_decode.string, json),
|
||||
header_tabs_charactersheet: Json_decode.field("header.tabs.charactersheet", Json_decode.string, json),
|
||||
header_tabs_pact: Json_decode.field("header.tabs.pact", Json_decode.string, json),
|
||||
header_tabs_rules: Json_decode.field("header.tabs.rules", Json_decode.string, json),
|
||||
header_tabs_racecultureandprofession: Json_decode.field("header.tabs.racecultureandprofession", Json_decode.string, json),
|
||||
header_tabs_race: Json_decode.field("header.tabs.race", Json_decode.string, json),
|
||||
header_tabs_culture: Json_decode.field("header.tabs.culture", Json_decode.string, json),
|
||||
header_tabs_profession: Json_decode.field("header.tabs.profession", Json_decode.string, json),
|
||||
header_tabs_attributes: Json_decode.field("header.tabs.attributes", Json_decode.string, json),
|
||||
header_tabs_advantagesanddisadvantages: Json_decode.field("header.tabs.advantagesanddisadvantages", Json_decode.string, json),
|
||||
header_tabs_advantages: Json_decode.field("header.tabs.advantages", Json_decode.string, json),
|
||||
header_tabs_disadvantages: Json_decode.field("header.tabs.disadvantages", Json_decode.string, json),
|
||||
header_tabs_abilities: Json_decode.field("header.tabs.abilities", Json_decode.string, json),
|
||||
header_tabs_skills: Json_decode.field("header.tabs.skills", Json_decode.string, json),
|
||||
header_tabs_combattechniques: Json_decode.field("header.tabs.combattechniques", Json_decode.string, json),
|
||||
header_tabs_specialabilities: Json_decode.field("header.tabs.specialabilities", Json_decode.string, json),
|
||||
header_tabs_spells: Json_decode.field("header.tabs.spells", Json_decode.string, json),
|
||||
header_tabs_liturgicalchants: Json_decode.field("header.tabs.liturgicalchants", Json_decode.string, json),
|
||||
header_tabs_belongings: Json_decode.field("header.tabs.belongings", Json_decode.string, json),
|
||||
header_tabs_equipment: Json_decode.field("header.tabs.equipment", Json_decode.string, json),
|
||||
header_tabs_hitzonearmor: Json_decode.field("header.tabs.hitzonearmor", Json_decode.string, json),
|
||||
header_tabs_pets: Json_decode.field("header.tabs.pets", Json_decode.string, json),
|
||||
header_apleft: Json_decode.field("header.apleft", Json_decode.string, json),
|
||||
header_savebtn: Json_decode.field("header.savebtn", Json_decode.string, json),
|
||||
header_aptooltip_title: Json_decode.field("header.aptooltip.title", Json_decode.string, json),
|
||||
header_aptooltip_total: Json_decode.field("header.aptooltip.total", Json_decode.string, json),
|
||||
header_aptooltip_spent: Json_decode.field("header.aptooltip.spent", Json_decode.string, json),
|
||||
header_aptooltip_spentonadvantages: Json_decode.field("header.aptooltip.spentonadvantages", Json_decode.string, json),
|
||||
header_aptooltip_spentonmagicadvantages: Json_decode.field("header.aptooltip.spentonmagicadvantages", Json_decode.string, json),
|
||||
header_aptooltip_spentonblessedadvantages: Json_decode.field("header.aptooltip.spentonblessedadvantages", Json_decode.string, json),
|
||||
header_aptooltip_spentondisadvantages: Json_decode.field("header.aptooltip.spentondisadvantages", Json_decode.string, json),
|
||||
header_aptooltip_spentonmagicdisadvantages: Json_decode.field("header.aptooltip.spentonmagicdisadvantages", Json_decode.string, json),
|
||||
header_aptooltip_spentonblesseddisadvantages: Json_decode.field("header.aptooltip.spentonblesseddisadvantages", Json_decode.string, json),
|
||||
header_aptooltip_spentonrace: Json_decode.field("header.aptooltip.spentonrace", Json_decode.string, json),
|
||||
header_aptooltip_spentonprofession: Json_decode.field("header.aptooltip.spentonprofession", Json_decode.string, json),
|
||||
header_aptooltip_spentonattributes: Json_decode.field("header.aptooltip.spentonattributes", Json_decode.string, json),
|
||||
header_aptooltip_spentonskills: Json_decode.field("header.aptooltip.spentonskills", Json_decode.string, json),
|
||||
header_aptooltip_spentoncombattechniques: Json_decode.field("header.aptooltip.spentoncombattechniques", Json_decode.string, json),
|
||||
header_aptooltip_spentonspells: Json_decode.field("header.aptooltip.spentonspells", Json_decode.string, json),
|
||||
header_aptooltip_spentoncantrips: Json_decode.field("header.aptooltip.spentoncantrips", Json_decode.string, json),
|
||||
header_aptooltip_spentonliturgicalchants: Json_decode.field("header.aptooltip.spentonliturgicalchants", Json_decode.string, json),
|
||||
header_aptooltip_spentonblessings: Json_decode.field("header.aptooltip.spentonblessings", Json_decode.string, json),
|
||||
header_aptooltip_spentonspecialabilities: Json_decode.field("header.aptooltip.spentonspecialabilities", Json_decode.string, json),
|
||||
header_aptooltip_spentonenergies: Json_decode.field("header.aptooltip.spentonenergies", Json_decode.string, json),
|
||||
header_dialogs_herosaved: Json_decode.field("header.dialogs.herosaved", Json_decode.string, json),
|
||||
header_dialogs_allsaved: Json_decode.field("header.dialogs.allsaved", Json_decode.string, json),
|
||||
header_dialogs_everythingelsesaved: Json_decode.field("header.dialogs.everythingelsesaved", Json_decode.string, json),
|
||||
header_dialogs_saveconfigerror_title: Json_decode.field("header.dialogs.saveconfigerror.title", Json_decode.string, json),
|
||||
header_dialogs_saveconfigerror_message: Json_decode.field("header.dialogs.saveconfigerror.message", Json_decode.string, json),
|
||||
header_dialogs_saveheroeserror_title: Json_decode.field("header.dialogs.saveheroeserror.title", Json_decode.string, json),
|
||||
header_dialogs_saveheroeserror_message: Json_decode.field("header.dialogs.saveheroeserror.message", Json_decode.string, json),
|
||||
general_weightvalue: Json_decode.field("general.weightvalue", Json_decode.string, json),
|
||||
general_pricevalue: Json_decode.field("general.pricevalue", Json_decode.string, json),
|
||||
general_lengthvalue: Json_decode.field("general.lengthvalue", Json_decode.string, json),
|
||||
general_dice: Json_decode.field("general.dice", Json_decode.string, json),
|
||||
general_none: Json_decode.field("general.none", Json_decode.string, json),
|
||||
general_or: Json_decode.field("general.or", Json_decode.string, json),
|
||||
general_and: Json_decode.field("general.and", Json_decode.string, json),
|
||||
general_error: Json_decode.field("general.error", Json_decode.string, json),
|
||||
general_errorcode: Json_decode.field("general.errorcode", Json_decode.string, json),
|
||||
general_emptylistplaceholder: Json_decode.field("general.emptylistplaceholder", Json_decode.string, json),
|
||||
general_emptylistnoresultsplaceholder: Json_decode.field("general.emptylistnoresultsplaceholder", Json_decode.string, json),
|
||||
general_apvalue: Json_decode.field("general.apvalue", Json_decode.string, json),
|
||||
general_apvalue_short: Json_decode.field("general.apvalue.short", Json_decode.string, json),
|
||||
general_withapvalue: Json_decode.field("general.withapvalue", Json_decode.string, json),
|
||||
general_filters_searchfield_placeholder: Json_decode.field("general.filters.searchfield.placeholder", Json_decode.string, json),
|
||||
general_filters_sort_alphabetically: Json_decode.field("general.filters.sort.alphabetically", Json_decode.string, json),
|
||||
general_filters_sort_bydatemodified: Json_decode.field("general.filters.sort.bydatemodified", Json_decode.string, json),
|
||||
general_filters_sort_bygroup: Json_decode.field("general.filters.sort.bygroup", Json_decode.string, json),
|
||||
general_filters_sort_byimprovementcost: Json_decode.field("general.filters.sort.byimprovementcost", Json_decode.string, json),
|
||||
general_filters_sort_byproperty: Json_decode.field("general.filters.sort.byproperty", Json_decode.string, json),
|
||||
general_filters_sort_bylocation: Json_decode.field("general.filters.sort.bylocation", Json_decode.string, json),
|
||||
general_filters_sort_bycost: Json_decode.field("general.filters.sort.bycost", Json_decode.string, json),
|
||||
general_filters_sort_byweight: Json_decode.field("general.filters.sort.byweight", Json_decode.string, json),
|
||||
general_filters_showactivatedentries: Json_decode.field("general.filters.showactivatedentries", Json_decode.string, json),
|
||||
general_dialogs_savebtn: Json_decode.field("general.dialogs.savebtn", Json_decode.string, json),
|
||||
general_dialogs_donebtn: Json_decode.field("general.dialogs.donebtn", Json_decode.string, json),
|
||||
general_dialogs_deletebtn: Json_decode.field("general.dialogs.deletebtn", Json_decode.string, json),
|
||||
general_dialogs_yesbtn: Json_decode.field("general.dialogs.yesbtn", Json_decode.string, json),
|
||||
general_dialogs_nobtn: Json_decode.field("general.dialogs.nobtn", Json_decode.string, json),
|
||||
general_dialogs_okbtn: Json_decode.field("general.dialogs.okbtn", Json_decode.string, json),
|
||||
general_dialogs_cancelbtn: Json_decode.field("general.dialogs.cancelbtn", Json_decode.string, json),
|
||||
general_dialogs_copybtn: Json_decode.field("general.dialogs.copybtn", Json_decode.string, json),
|
||||
general_dialogs_createbtn: Json_decode.field("general.dialogs.createbtn", Json_decode.string, json),
|
||||
general_dialogs_applybtn: Json_decode.field("general.dialogs.applybtn", Json_decode.string, json),
|
||||
general_dialogs_addbtn: Json_decode.field("general.dialogs.addbtn", Json_decode.string, json),
|
||||
general_dialogs_notenoughap_title: Json_decode.field("general.dialogs.notenoughap.title", Json_decode.string, json),
|
||||
general_dialogs_notenoughap_message: Json_decode.field("general.dialogs.notenoughap.message", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_title: Json_decode.field("general.dialogs.reachedaplimit.title", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_message: Json_decode.field("general.dialogs.reachedaplimit.message", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_advantages: Json_decode.field("general.dialogs.reachedaplimit.advantages", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_magicaladvantages: Json_decode.field("general.dialogs.reachedaplimit.magicaladvantages", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_blessedadvantages: Json_decode.field("general.dialogs.reachedaplimit.blessedadvantages", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_disadvantages: Json_decode.field("general.dialogs.reachedaplimit.disadvantages", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_magicaldisadvantages: Json_decode.field("general.dialogs.reachedaplimit.magicaldisadvantages", Json_decode.string, json),
|
||||
general_dialogs_reachedaplimit_blesseddisadvantages: Json_decode.field("general.dialogs.reachedaplimit.blesseddisadvantages", Json_decode.string, json),
|
||||
settings_title: Json_decode.field("settings.title", Json_decode.string, json),
|
||||
settings_language: Json_decode.field("settings.language", Json_decode.string, json),
|
||||
settings_systemlanguage: Json_decode.field("settings.systemlanguage", Json_decode.string, json),
|
||||
settings_languagehint: Json_decode.field("settings.languagehint", Json_decode.string, json),
|
||||
settings_theme: Json_decode.field("settings.theme", Json_decode.string, json),
|
||||
settings_theme_dark: Json_decode.field("settings.theme.dark", Json_decode.string, json),
|
||||
settings_theme_light: Json_decode.field("settings.theme.light", Json_decode.string, json),
|
||||
settings_showanimations: Json_decode.field("settings.showanimations", Json_decode.string, json),
|
||||
settings_enableeditingheroaftercreationphase: Json_decode.field("settings.enableeditingheroaftercreationphase", Json_decode.string, json),
|
||||
settings_checkforupdatesbtn: Json_decode.field("settings.checkforupdatesbtn", Json_decode.string, json),
|
||||
settings_newversionavailable_title: Json_decode.field("settings.newversionavailable.title", Json_decode.string, json),
|
||||
settings_newversionavailable_message: Json_decode.field("settings.newversionavailable.message", Json_decode.string, json),
|
||||
settings_newversionavailable_messagewithsize: Json_decode.field("settings.newversionavailable.messagewithsize", Json_decode.string, json),
|
||||
settings_newversionavailable_updatebtn: Json_decode.field("settings.newversionavailable.updatebtn", Json_decode.string, json),
|
||||
settings_nonewversionavailable_title: Json_decode.field("settings.nonewversionavailable.title", Json_decode.string, json),
|
||||
settings_nonewversionavailable_message: Json_decode.field("settings.nonewversionavailable.message", Json_decode.string, json),
|
||||
settings_downloadingupdate_title: Json_decode.field("settings.downloadingupdate.title", Json_decode.string, json),
|
||||
heroes_filters_origin_allheroes: Json_decode.field("heroes.filters.origin.allheroes", Json_decode.string, json),
|
||||
heroes_filters_origin_ownheroes: Json_decode.field("heroes.filters.origin.ownheroes", Json_decode.string, json),
|
||||
heroes_filters_origin_sharedheroes: Json_decode.field("heroes.filters.origin.sharedheroes", Json_decode.string, json),
|
||||
heroes_importherobtn: Json_decode.field("heroes.importherobtn", Json_decode.string, json),
|
||||
heroes_createherobtn: Json_decode.field("heroes.createherobtn", Json_decode.string, json),
|
||||
heroes_exportheroasjsonbtn: Json_decode.field("heroes.exportheroasjsonbtn", Json_decode.string, json),
|
||||
heroes_duplicateherobtn: Json_decode.field("heroes.duplicateherobtn", Json_decode.string, json),
|
||||
heroes_deleteherobtn: Json_decode.field("heroes.deleteherobtn", Json_decode.string, json),
|
||||
heroes_openherobtn: Json_decode.field("heroes.openherobtn", Json_decode.string, json),
|
||||
heroes_saveherobtn: Json_decode.field("heroes.saveherobtn", Json_decode.string, json),
|
||||
heroes_unsavedhero_name: Json_decode.field("heroes.unsavedhero.name", Json_decode.string, json),
|
||||
heroes_list_adventurepoints: Json_decode.field("heroes.list.adventurepoints", Json_decode.string, json),
|
||||
heroes_dialogs_herosaved: Json_decode.field("heroes.dialogs.herosaved", Json_decode.string, json),
|
||||
heroes_dialogs_importheroerror_title: Json_decode.field("heroes.dialogs.importheroerror.title", Json_decode.string, json),
|
||||
heroes_dialogs_importheroerror_message: Json_decode.field("heroes.dialogs.importheroerror.message", Json_decode.string, json),
|
||||
heroes_dialogs_heroexportsavelocation_title: Json_decode.field("heroes.dialogs.heroexportsavelocation.title", Json_decode.string, json),
|
||||
heroes_dialogs_herojsonsaveerror_title: Json_decode.field("heroes.dialogs.herojsonsaveerror.title", Json_decode.string, json),
|
||||
heroes_dialogs_herojsonsaveerror_message: Json_decode.field("heroes.dialogs.herojsonsaveerror.message", Json_decode.string, json),
|
||||
heroes_dialogs_unsavedactions_title: Json_decode.field("heroes.dialogs.unsavedactions.title", Json_decode.string, json),
|
||||
heroes_dialogs_unsavedactions_message: Json_decode.field("heroes.dialogs.unsavedactions.message", Json_decode.string, json),
|
||||
heroes_dialogs_unsavedactions_quit: Json_decode.field("heroes.dialogs.unsavedactions.quit", Json_decode.string, json),
|
||||
heroes_dialogs_unsavedactions_saveandquit: Json_decode.field("heroes.dialogs.unsavedactions.saveandquit", Json_decode.string, json),
|
||||
heroes_dialogs_deletehero_title: Json_decode.field("heroes.dialogs.deletehero.title", Json_decode.string, json),
|
||||
heroes_dialogs_deletehero_message: Json_decode.field("heroes.dialogs.deletehero.message", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_title: Json_decode.field("heroes.dialogs.herocreation.title", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_nameofhero: Json_decode.field("heroes.dialogs.herocreation.nameofhero", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_sex_placeholder: Json_decode.field("heroes.dialogs.herocreation.sex.placeholder", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_sex_male: Json_decode.field("heroes.dialogs.herocreation.sex.male", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_sex_female: Json_decode.field("heroes.dialogs.herocreation.sex.female", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_experiencelevel_placeholder: Json_decode.field("heroes.dialogs.herocreation.experiencelevel.placeholder", Json_decode.string, json),
|
||||
heroes_dialogs_herocreation_startbtn: Json_decode.field("heroes.dialogs.herocreation.startbtn", Json_decode.string, json),
|
||||
wiki_chooseacategory: Json_decode.field("wiki.chooseacategory", Json_decode.string, json),
|
||||
wiki_chooseacategorytodisplayalist: Json_decode.field("wiki.chooseacategorytodisplayalist", Json_decode.string, json),
|
||||
wiki_filters_races: Json_decode.field("wiki.filters.races", Json_decode.string, json),
|
||||
wiki_filters_cultures: Json_decode.field("wiki.filters.cultures", Json_decode.string, json),
|
||||
wiki_filters_professions: Json_decode.field("wiki.filters.professions", Json_decode.string, json),
|
||||
wiki_filters_advantages: Json_decode.field("wiki.filters.advantages", Json_decode.string, json),
|
||||
wiki_filters_disadvantages: Json_decode.field("wiki.filters.disadvantages", Json_decode.string, json),
|
||||
wiki_filters_skills: Json_decode.field("wiki.filters.skills", Json_decode.string, json),
|
||||
wiki_filters_skills_all: Json_decode.field("wiki.filters.skills.all", Json_decode.string, json),
|
||||
wiki_filters_combattechniques: Json_decode.field("wiki.filters.combattechniques", Json_decode.string, json),
|
||||
wiki_filters_combattechniques_all: Json_decode.field("wiki.filters.combattechniques.all", Json_decode.string, json),
|
||||
wiki_filters_magic: Json_decode.field("wiki.filters.magic", Json_decode.string, json),
|
||||
wiki_filters_magic_all: Json_decode.field("wiki.filters.magic.all", Json_decode.string, json),
|
||||
wiki_filters_liturgicalchants: Json_decode.field("wiki.filters.liturgicalchants", Json_decode.string, json),
|
||||
wiki_filters_liturgicalchants_all: Json_decode.field("wiki.filters.liturgicalchants.all", Json_decode.string, json),
|
||||
wiki_filters_specialabilities: Json_decode.field("wiki.filters.specialabilities", Json_decode.string, json),
|
||||
wiki_filters_specialabilities_all: Json_decode.field("wiki.filters.specialabilities.all", Json_decode.string, json),
|
||||
wiki_filters_itemtemplates: Json_decode.field("wiki.filters.itemtemplates", Json_decode.string, json),
|
||||
wiki_filters_itemtemplates_all: Json_decode.field("wiki.filters.itemtemplates.all", Json_decode.string, json),
|
||||
imprint_title: Json_decode.field("imprint.title", Json_decode.string, json),
|
||||
profile_editprofessionnamebtn: Json_decode.field("profile.editprofessionnamebtn", Json_decode.string, json),
|
||||
profile_addadventurepointsbtn: Json_decode.field("profile.addadventurepointsbtn", Json_decode.string, json),
|
||||
profile_endherocreationbtn: Json_decode.field("profile.endherocreationbtn", Json_decode.string, json),
|
||||
profile_changeheroavatarbtn: Json_decode.field("profile.changeheroavatarbtn", Json_decode.string, json),
|
||||
profile_deleteavatarbtn: Json_decode.field("profile.deleteavatarbtn", Json_decode.string, json),
|
||||
profile_dialogs_changeheroavatar_title: Json_decode.field("profile.dialogs.changeheroavatar.title", Json_decode.string, json),
|
||||
profile_dialogs_changeheroavatar_selectfilebtn: Json_decode.field("profile.dialogs.changeheroavatar.selectfilebtn", Json_decode.string, json),
|
||||
profile_dialogs_changeheroavatar_imagefiletype: Json_decode.field("profile.dialogs.changeheroavatar.imagefiletype", Json_decode.string, json),
|
||||
profile_dialogs_changeheroavatar_invalidfilewarning: Json_decode.field("profile.dialogs.changeheroavatar.invalidfilewarning", Json_decode.string, json),
|
||||
profile_dialogs_addadventurepoints_title: Json_decode.field("profile.dialogs.addadventurepoints.title", Json_decode.string, json),
|
||||
profile_dialogs_addadventurepoints_label: Json_decode.field("profile.dialogs.addadventurepoints.label", Json_decode.string, json),
|
||||
profile_advantages: Json_decode.field("profile.advantages", Json_decode.string, json),
|
||||
profile_disadvantages: Json_decode.field("profile.disadvantages", Json_decode.string, json),
|
||||
personaldata_title: Json_decode.field("personaldata.title", Json_decode.string, json),
|
||||
personaldata_sex_male: Json_decode.field("personaldata.sex.male", Json_decode.string, json),
|
||||
personaldata_sex_female: Json_decode.field("personaldata.sex.female", Json_decode.string, json),
|
||||
personaldata_family: Json_decode.field("personaldata.family", Json_decode.string, json),
|
||||
personaldata_placeofbirth: Json_decode.field("personaldata.placeofbirth", Json_decode.string, json),
|
||||
personaldata_dateofbirth: Json_decode.field("personaldata.dateofbirth", Json_decode.string, json),
|
||||
personaldata_age: Json_decode.field("personaldata.age", Json_decode.string, json),
|
||||
personaldata_haircolor: Json_decode.field("personaldata.haircolor", Json_decode.string, json),
|
||||
personaldata_eyecolor: Json_decode.field("personaldata.eyecolor", Json_decode.string, json),
|
||||
personaldata_size: Json_decode.field("personaldata.size", Json_decode.string, json),
|
||||
personaldata_weight: Json_decode.field("personaldata.weight", Json_decode.string, json),
|
||||
personaldata_rank: Json_decode.field("personaldata.rank", Json_decode.string, json),
|
||||
personaldata_socialstatus: Json_decode.field("personaldata.socialstatus", Json_decode.string, json),
|
||||
personaldata_characteristics: Json_decode.field("personaldata.characteristics", Json_decode.string, json),
|
||||
personaldata_otherinfo: Json_decode.field("personaldata.otherinfo", Json_decode.string, json),
|
||||
personaldata_cultureareaknowledge: Json_decode.field("personaldata.cultureareaknowledge", Json_decode.string, json),
|
||||
sheets_printtopdfbtn: Json_decode.field("sheets.printtopdfbtn", Json_decode.string, json),
|
||||
sheets_dialogs_pdfexportsavelocation_title: Json_decode.field("sheets.dialogs.pdfexportsavelocation.title", Json_decode.string, json),
|
||||
sheets_dialogs_pdfsaved: Json_decode.field("sheets.dialogs.pdfsaved", Json_decode.string, json),
|
||||
sheets_dialogs_pdfsaveerror_title: Json_decode.field("sheets.dialogs.pdfsaveerror.title", Json_decode.string, json),
|
||||
sheets_dialogs_pdfsaveerror_message: Json_decode.field("sheets.dialogs.pdfsaveerror.message", Json_decode.string, json),
|
||||
sheets_dialogs_pdfcreationerror_title: Json_decode.field("sheets.dialogs.pdfcreationerror.title", Json_decode.string, json),
|
||||
sheets_dialogs_pdfcreationerror_message: Json_decode.field("sheets.dialogs.pdfcreationerror.message", Json_decode.string, json),
|
||||
sheets_showattributevalues: Json_decode.field("sheets.showattributevalues", Json_decode.string, json),
|
||||
sheets_charactersheet: Json_decode.field("sheets.charactersheet", Json_decode.string, json),
|
||||
sheets_attributemodifiers_title: Json_decode.field("sheets.attributemodifiers.title", Json_decode.string, json),
|
||||
sheets_mainsheet_title: Json_decode.field("sheets.mainsheet.title", Json_decode.string, json),
|
||||
sheets_mainsheet_name: Json_decode.field("sheets.mainsheet.name", Json_decode.string, json),
|
||||
sheets_mainsheet_family: Json_decode.field("sheets.mainsheet.family", Json_decode.string, json),
|
||||
sheets_mainsheet_placeofbirth: Json_decode.field("sheets.mainsheet.placeofbirth", Json_decode.string, json),
|
||||
sheets_mainsheet_dateofbirth: Json_decode.field("sheets.mainsheet.dateofbirth", Json_decode.string, json),
|
||||
sheets_mainsheet_age: Json_decode.field("sheets.mainsheet.age", Json_decode.string, json),
|
||||
sheets_mainsheet_sex: Json_decode.field("sheets.mainsheet.sex", Json_decode.string, json),
|
||||
sheets_mainsheet_race: Json_decode.field("sheets.mainsheet.race", Json_decode.string, json),
|
||||
sheets_mainsheet_size: Json_decode.field("sheets.mainsheet.size", Json_decode.string, json),
|
||||
sheets_mainsheet_weight: Json_decode.field("sheets.mainsheet.weight", Json_decode.string, json),
|
||||
sheets_mainsheet_haircolor: Json_decode.field("sheets.mainsheet.haircolor", Json_decode.string, json),
|
||||
sheets_mainsheet_eyecolor: Json_decode.field("sheets.mainsheet.eyecolor", Json_decode.string, json),
|
||||
sheets_mainsheet_culture: Json_decode.field("sheets.mainsheet.culture", Json_decode.string, json),
|
||||
sheets_mainsheet_socialstatus: Json_decode.field("sheets.mainsheet.socialstatus", Json_decode.string, json),
|
||||
sheets_mainsheet_profession: Json_decode.field("sheets.mainsheet.profession", Json_decode.string, json),
|
||||
sheets_mainsheet_rank: Json_decode.field("sheets.mainsheet.rank", Json_decode.string, json),
|
||||
sheets_mainsheet_characteristics: Json_decode.field("sheets.mainsheet.characteristics", Json_decode.string, json),
|
||||
sheets_mainsheet_otherinfo: Json_decode.field("sheets.mainsheet.otherinfo", Json_decode.string, json),
|
||||
sheets_mainsheet_experiencelevellabel: Json_decode.field("sheets.mainsheet.experiencelevellabel", Json_decode.string, json),
|
||||
sheets_mainsheet_totalaplabel: Json_decode.field("sheets.mainsheet.totalaplabel", Json_decode.string, json),
|
||||
sheets_mainsheet_apcollectedlabel: Json_decode.field("sheets.mainsheet.apcollectedlabel", Json_decode.string, json),
|
||||
sheets_mainsheet_apspentlabel: Json_decode.field("sheets.mainsheet.apspentlabel", Json_decode.string, json),
|
||||
sheets_mainsheet_avatarlabel: Json_decode.field("sheets.mainsheet.avatarlabel", Json_decode.string, json),
|
||||
sheets_mainsheet_advantages: Json_decode.field("sheets.mainsheet.advantages", Json_decode.string, json),
|
||||
sheets_mainsheet_disadvantages: Json_decode.field("sheets.mainsheet.disadvantages", Json_decode.string, json),
|
||||
sheets_mainsheet_generalspecialabilites: Json_decode.field("sheets.mainsheet.generalspecialabilites", Json_decode.string, json),
|
||||
sheets_mainsheet_fatepoints: Json_decode.field("sheets.mainsheet.fatepoints", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_value: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.value", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_bonuspenalty: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.bonuspenalty", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_bonus: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.bonus", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_bought: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.bought", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_max: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.max", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_current: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.current", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_basestat: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.basestat", Json_decode.string, json),
|
||||
sheets_mainsheet_derivedcharacteristics_labels_permanentlylostboughtback: Json_decode.field("sheets.mainsheet.derivedcharacteristics.labels.permanentlylostboughtback", Json_decode.string, json),
|
||||
sheets_gamestatssheet_title: Json_decode.field("sheets.gamestatssheet.title", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_title: Json_decode.field("sheets.gamestatssheet.skillstable.title", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_skill: Json_decode.field("sheets.gamestatssheet.skillstable.labels.skill", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_check: Json_decode.field("sheets.gamestatssheet.skillstable.labels.check", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_encumbrance: Json_decode.field("sheets.gamestatssheet.skillstable.labels.encumbrance", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_improvementcost: Json_decode.field("sheets.gamestatssheet.skillstable.labels.improvementcost", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_skillrating: Json_decode.field("sheets.gamestatssheet.skillstable.labels.skillrating", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_routinechecks: Json_decode.field("sheets.gamestatssheet.skillstable.labels.routinechecks", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_labels_notes: Json_decode.field("sheets.gamestatssheet.skillstable.labels.notes", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_encumbrance_yes: Json_decode.field("sheets.gamestatssheet.skillstable.encumbrance.yes", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_encumbrance_no: Json_decode.field("sheets.gamestatssheet.skillstable.encumbrance.no", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_encumbrance_maybe: Json_decode.field("sheets.gamestatssheet.skillstable.encumbrance.maybe", Json_decode.string, json),
|
||||
sheets_gamestatssheet_skillstable_groups_pages: Json_decode.field("sheets.gamestatssheet.skillstable.groups.pages", Json_decode.string, json),
|
||||
sheets_gamestatssheet_languages_title: Json_decode.field("sheets.gamestatssheet.languages.title", Json_decode.string, json),
|
||||
sheets_gamestatssheet_languages_nativetongue: Json_decode.field("sheets.gamestatssheet.languages.nativetongue", Json_decode.string, json),
|
||||
sheets_gamestatssheet_knownscripts_title: Json_decode.field("sheets.gamestatssheet.knownscripts.title", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_title: Json_decode.field("sheets.gamestatssheet.routinechecks.title", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_textRow1: Json_decode.field("sheets.gamestatssheet.routinechecks.textRow1", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_textRow2: Json_decode.field("sheets.gamestatssheet.routinechecks.textRow2", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_textRow3: Json_decode.field("sheets.gamestatssheet.routinechecks.textRow3", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_textRow4: Json_decode.field("sheets.gamestatssheet.routinechecks.textRow4", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_labels_checkmod: Json_decode.field("sheets.gamestatssheet.routinechecks.labels.checkmod", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_labels_neededsr: Json_decode.field("sheets.gamestatssheet.routinechecks.labels.neededsr", Json_decode.string, json),
|
||||
sheets_gamestatssheet_routinechecks_from3on: Json_decode.field("sheets.gamestatssheet.routinechecks.from3on", Json_decode.string, json),
|
||||
sheets_gamestatssheet_qualitylevels_title: Json_decode.field("sheets.gamestatssheet.qualitylevels.title", Json_decode.string, json),
|
||||
sheets_gamestatssheet_qualitylevels_labels_skillpoints: Json_decode.field("sheets.gamestatssheet.qualitylevels.labels.skillpoints", Json_decode.string, json),
|
||||
sheets_gamestatssheet_qualitylevels_labels_qualitylevel: Json_decode.field("sheets.gamestatssheet.qualitylevels.labels.qualitylevel", Json_decode.string, json),
|
||||
sheets_combatsheet_title: Json_decode.field("sheets.combatsheet.title", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_title: Json_decode.field("sheets.combatsheet.combattechniquestable.title", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_labels_combattechnique: Json_decode.field("sheets.combatsheet.combattechniquestable.labels.combattechnique", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_labels_primaryattribute: Json_decode.field("sheets.combatsheet.combattechniquestable.labels.primaryattribute", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_labels_improvementcost: Json_decode.field("sheets.combatsheet.combattechniquestable.labels.improvementcost", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_labels_combattechniquerating: Json_decode.field("sheets.combatsheet.combattechniquestable.labels.combattechniquerating", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_labels_attackrangecombat: Json_decode.field("sheets.combatsheet.combattechniquestable.labels.attackrangecombat", Json_decode.string, json),
|
||||
sheets_combatsheet_combattechniquestable_labels_parry: Json_decode.field("sheets.combatsheet.combattechniquestable.labels.parry", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_title: Json_decode.field("sheets.combatsheet.lifepoints.title", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_max: Json_decode.field("sheets.combatsheet.lifepoints.max", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_current: Json_decode.field("sheets.combatsheet.lifepoints.current", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_pain1: Json_decode.field("sheets.combatsheet.lifepoints.pain1", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_pain2: Json_decode.field("sheets.combatsheet.lifepoints.pain2", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_pain3: Json_decode.field("sheets.combatsheet.lifepoints.pain3", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_pain4: Json_decode.field("sheets.combatsheet.lifepoints.pain4", Json_decode.string, json),
|
||||
sheets_combatsheet_lifepoints_dying: Json_decode.field("sheets.combatsheet.lifepoints.dying", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons: Json_decode.field("sheets.combatsheet.closecombatweapons", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_weapon: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.weapon", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_combattechnique: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.combattechnique", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_damagebonus: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.damagebonus", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_damagepoints: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.damagepoints", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_attackparrymodifier: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.attackparrymodifier", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_reach: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.reach", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_breakingpointrating: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.breakingpointrating", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_damaged: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.damaged", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_attack: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.attack", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_parry: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.parry", Json_decode.string, json),
|
||||
sheets_combatsheet_closecombatweapons_labels_weight: Json_decode.field("sheets.combatsheet.closecombatweapons.labels.weight", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons: Json_decode.field("sheets.combatsheet.rangedcombatweapons", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_weapon: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.weapon", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_combattechnique: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.combattechnique", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_reloadtime: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.reloadtime", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_damagepoints: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.damagepoints", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_ammunition: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.ammunition", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_rangebrackets: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.rangebrackets", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_breakingpointrating: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.breakingpointrating", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_damaged: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.damaged", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_rangedcombat: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.rangedcombat", Json_decode.string, json),
|
||||
sheets_combatsheet_rangedcombatweapons_labels_weight: Json_decode.field("sheets.combatsheet.rangedcombatweapons.labels.weight", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_title: Json_decode.field("sheets.combatsheet.armors.title", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_armor: Json_decode.field("sheets.combatsheet.armors.labels.armor", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_sturdinessrating: Json_decode.field("sheets.combatsheet.armors.labels.sturdinessrating", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_wear: Json_decode.field("sheets.combatsheet.armors.labels.wear", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_protection: Json_decode.field("sheets.combatsheet.armors.labels.protection", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_encumbrance: Json_decode.field("sheets.combatsheet.armors.labels.encumbrance", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_movementinitiative: Json_decode.field("sheets.combatsheet.armors.labels.movementinitiative", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_carriedwhereexamples: Json_decode.field("sheets.combatsheet.armors.labels.carriedwhereexamples", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_head: Json_decode.field("sheets.combatsheet.armors.labels.head", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_torso: Json_decode.field("sheets.combatsheet.armors.labels.torso", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_leftarm: Json_decode.field("sheets.combatsheet.armors.labels.leftarm", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_rightarm: Json_decode.field("sheets.combatsheet.armors.labels.rightarm", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_leftleg: Json_decode.field("sheets.combatsheet.armors.labels.leftleg", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_rightleg: Json_decode.field("sheets.combatsheet.armors.labels.rightleg", Json_decode.string, json),
|
||||
sheets_combatsheet_armors_labels_weight: Json_decode.field("sheets.combatsheet.armors.labels.weight", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_title: Json_decode.field("sheets.combatsheet.shieldparryingweapon.title", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_labels_shieldparryingweapon: Json_decode.field("sheets.combatsheet.shieldparryingweapon.labels.shieldparryingweapon", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_labels_structurepoints: Json_decode.field("sheets.combatsheet.shieldparryingweapon.labels.structurepoints", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_labels_breakingpointrating: Json_decode.field("sheets.combatsheet.shieldparryingweapon.labels.breakingpointrating", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_labels_damaged: Json_decode.field("sheets.combatsheet.shieldparryingweapon.labels.damaged", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_labels_attackparrymodifier: Json_decode.field("sheets.combatsheet.shieldparryingweapon.labels.attackparrymodifier", Json_decode.string, json),
|
||||
sheets_combatsheet_shieldparryingweapon_labels_weight: Json_decode.field("sheets.combatsheet.shieldparryingweapon.labels.weight", Json_decode.string, json),
|
||||
sheets_combatsheet_actions: Json_decode.field("sheets.combatsheet.actions", Json_decode.string, json),
|
||||
sheets_combatsheet_combatspecialabilities: Json_decode.field("sheets.combatsheet.combatspecialabilities", Json_decode.string, json),
|
||||
sheets_combatsheet_conditions: Json_decode.field("sheets.combatsheet.conditions", Json_decode.string, json),
|
||||
sheets_combatsheet_states: Json_decode.field("sheets.combatsheet.states", Json_decode.string, json),
|
||||
sheets_belongingssheet_title: Json_decode.field("sheets.belongingssheet.title", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_title: Json_decode.field("sheets.belongingssheet.equipmenttable.title", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_labels_item: Json_decode.field("sheets.belongingssheet.equipmenttable.labels.item", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_labels_number: Json_decode.field("sheets.belongingssheet.equipmenttable.labels.number", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_labels_price: Json_decode.field("sheets.belongingssheet.equipmenttable.labels.price", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_labels_weight: Json_decode.field("sheets.belongingssheet.equipmenttable.labels.weight", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_labels_carriedwhere: Json_decode.field("sheets.belongingssheet.equipmenttable.labels.carriedwhere", Json_decode.string, json),
|
||||
sheets_belongingssheet_equipmenttable_labels_total: Json_decode.field("sheets.belongingssheet.equipmenttable.labels.total", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_title: Json_decode.field("sheets.belongingssheet.purse.title", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_ducats: Json_decode.field("sheets.belongingssheet.purse.ducats", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_silverthalers: Json_decode.field("sheets.belongingssheet.purse.silverthalers", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_halers: Json_decode.field("sheets.belongingssheet.purse.halers", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_kreutzers: Json_decode.field("sheets.belongingssheet.purse.kreutzers", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_gems: Json_decode.field("sheets.belongingssheet.purse.gems", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_jewelry: Json_decode.field("sheets.belongingssheet.purse.jewelry", Json_decode.string, json),
|
||||
sheets_belongingssheet_purse_other: Json_decode.field("sheets.belongingssheet.purse.other", Json_decode.string, json),
|
||||
sheets_belongingssheet_carryingcapacity_title: Json_decode.field("sheets.belongingssheet.carryingcapacity.title", Json_decode.string, json),
|
||||
sheets_belongingssheet_carryingcapacity_calc: Json_decode.field("sheets.belongingssheet.carryingcapacity.calc", Json_decode.string, json),
|
||||
sheets_belongingssheet_carryingcapacity_label: Json_decode.field("sheets.belongingssheet.carryingcapacity.label", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_title: Json_decode.field("sheets.belongingssheet.animal.title", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_name: Json_decode.field("sheets.belongingssheet.animal.name", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_sizecategory: Json_decode.field("sheets.belongingssheet.animal.sizecategory", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_type: Json_decode.field("sheets.belongingssheet.animal.type", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_ap: Json_decode.field("sheets.belongingssheet.animal.ap", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_protection: Json_decode.field("sheets.belongingssheet.animal.protection", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_attackname: Json_decode.field("sheets.belongingssheet.animal.attackname", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_attack: Json_decode.field("sheets.belongingssheet.animal.attack", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_parry: Json_decode.field("sheets.belongingssheet.animal.parry", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_damagepoints: Json_decode.field("sheets.belongingssheet.animal.damagepoints", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_reach: Json_decode.field("sheets.belongingssheet.animal.reach", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_actions: Json_decode.field("sheets.belongingssheet.animal.actions", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_skills: Json_decode.field("sheets.belongingssheet.animal.skills", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_specialabilities: Json_decode.field("sheets.belongingssheet.animal.specialabilities", Json_decode.string, json),
|
||||
sheets_belongingssheet_animal_notes: Json_decode.field("sheets.belongingssheet.animal.notes", Json_decode.string, json),
|
||||
sheets_spellssheet_title: Json_decode.field("sheets.spellssheet.title", Json_decode.string, json),
|
||||
sheets_spellssheet_header_labels_aemax: Json_decode.field("sheets.spellssheet.header.labels.aemax", Json_decode.string, json),
|
||||
sheets_spellssheet_header_labels_aecurrent: Json_decode.field("sheets.spellssheet.header.labels.aecurrent", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_title: Json_decode.field("sheets.spellssheet.spellstable.title", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_spellorritual: Json_decode.field("sheets.spellssheet.spellstable.labels.spellorritual", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_check: Json_decode.field("sheets.spellssheet.spellstable.labels.check", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_skillrating: Json_decode.field("sheets.spellssheet.spellstable.labels.skillrating", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_cost: Json_decode.field("sheets.spellssheet.spellstable.labels.cost", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_castingtime: Json_decode.field("sheets.spellssheet.spellstable.labels.castingtime", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_range: Json_decode.field("sheets.spellssheet.spellstable.labels.range", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_duration: Json_decode.field("sheets.spellssheet.spellstable.labels.duration", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_property: Json_decode.field("sheets.spellssheet.spellstable.labels.property", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_improvementcost: Json_decode.field("sheets.spellssheet.spellstable.labels.improvementcost", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_effect: Json_decode.field("sheets.spellssheet.spellstable.labels.effect", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_labels_pages: Json_decode.field("sheets.spellssheet.spellstable.labels.pages", Json_decode.string, json),
|
||||
sheets_spellssheet_spellstable_unfamiliarspell: Json_decode.field("sheets.spellssheet.spellstable.unfamiliarspell", Json_decode.string, json),
|
||||
sheets_spellssheet_primaryattribute: Json_decode.field("sheets.spellssheet.primaryattribute", Json_decode.string, json),
|
||||
sheets_spellssheet_properties: Json_decode.field("sheets.spellssheet.properties", Json_decode.string, json),
|
||||
sheets_spellssheet_tradition: Json_decode.field("sheets.spellssheet.tradition", Json_decode.string, json),
|
||||
sheets_spellssheet_magicalspecialabilities: Json_decode.field("sheets.spellssheet.magicalspecialabilities", Json_decode.string, json),
|
||||
sheets_spellssheet_cantrips: Json_decode.field("sheets.spellssheet.cantrips", Json_decode.string, json),
|
||||
sheets_chantssheet_title: Json_decode.field("sheets.chantssheet.title", Json_decode.string, json),
|
||||
sheets_chantssheet_header_labels_kpmax: Json_decode.field("sheets.chantssheet.header.labels.kpmax", Json_decode.string, json),
|
||||
sheets_chantssheet_header_labels_kpcurrent: Json_decode.field("sheets.chantssheet.header.labels.kpcurrent", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_title: Json_decode.field("sheets.chantssheet.chantstable.title", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_chant: Json_decode.field("sheets.chantssheet.chantstable.labels.chant", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_check: Json_decode.field("sheets.chantssheet.chantstable.labels.check", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_skillrating: Json_decode.field("sheets.chantssheet.chantstable.labels.skillrating", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_cost: Json_decode.field("sheets.chantssheet.chantstable.labels.cost", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_castingtime: Json_decode.field("sheets.chantssheet.chantstable.labels.castingtime", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_range: Json_decode.field("sheets.chantssheet.chantstable.labels.range", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_duration: Json_decode.field("sheets.chantssheet.chantstable.labels.duration", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_aspect: Json_decode.field("sheets.chantssheet.chantstable.labels.aspect", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_improvementcost: Json_decode.field("sheets.chantssheet.chantstable.labels.improvementcost", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_effect: Json_decode.field("sheets.chantssheet.chantstable.labels.effect", Json_decode.string, json),
|
||||
sheets_chantssheet_chantstable_labels_pages: Json_decode.field("sheets.chantssheet.chantstable.labels.pages", Json_decode.string, json),
|
||||
sheets_chantssheet_primaryattribute: Json_decode.field("sheets.chantssheet.primaryattribute", Json_decode.string, json),
|
||||
sheets_chantssheet_aspects: Json_decode.field("sheets.chantssheet.aspects", Json_decode.string, json),
|
||||
sheets_chantssheet_tradition: Json_decode.field("sheets.chantssheet.tradition", Json_decode.string, json),
|
||||
sheets_chantssheet_blessedspecialabilities: Json_decode.field("sheets.chantssheet.blessedspecialabilities", Json_decode.string, json),
|
||||
sheets_chantssheet_blessings: Json_decode.field("sheets.chantssheet.blessings", Json_decode.string, json),
|
||||
pacts_pactcategory: Json_decode.field("pacts.pactcategory", Json_decode.string, json),
|
||||
pacts_nopact: Json_decode.field("pacts.nopact", Json_decode.string, json),
|
||||
pacts_pactlevel: Json_decode.field("pacts.pactlevel", Json_decode.string, json),
|
||||
pacts_fairytype: Json_decode.field("pacts.fairytype", Json_decode.string, json),
|
||||
pacts_domain: Json_decode.field("pacts.domain", Json_decode.string, json),
|
||||
pacts_userdefined: Json_decode.field("pacts.userdefined", Json_decode.string, json),
|
||||
pacts_demontype: Json_decode.field("pacts.demontype", Json_decode.string, json),
|
||||
pacts_circleofdamnation: Json_decode.field("pacts.circleofdamnation", Json_decode.string, json),
|
||||
pacts_minorpact: Json_decode.field("pacts.minorpact", Json_decode.string, json),
|
||||
pacts_pactisincompletehint: Json_decode.field("pacts.pactisincompletehint", Json_decode.string, json),
|
||||
pacts_name: Json_decode.field("pacts.name", Json_decode.string, json),
|
||||
rules_rulebase: Json_decode.field("rules.rulebase", Json_decode.string, json),
|
||||
rules_enableallrulebooks: Json_decode.field("rules.enableallrulebooks", Json_decode.string, json),
|
||||
rules_focusrules: Json_decode.field("rules.focusrules", Json_decode.string, json),
|
||||
rules_optionalrules: Json_decode.field("rules.optionalrules", Json_decode.string, json),
|
||||
rules_manualherodatarepair: Json_decode.field("rules.manualherodatarepair", Json_decode.string, json),
|
||||
rules_manualherodatarepairexplanation: Json_decode.field("rules.manualherodatarepairexplanation", Json_decode.string, json),
|
||||
inlinewiki_complementarysources: Json_decode.field("inlinewiki.complementarysources", Json_decode.string, json),
|
||||
race_header_name: Json_decode.field("race.header.name", Json_decode.string, json),
|
||||
race_header_adventurepoints: Json_decode.field("race.header.adventurepoints", Json_decode.string, json),
|
||||
race_header_adventurepoints_tooltip: Json_decode.field("race.header.adventurepoints.tooltip", Json_decode.string, json),
|
||||
inlinewiki_apvalue: Json_decode.field("inlinewiki.apvalue", Json_decode.string, json),
|
||||
inlinewiki_adventurepoints: Json_decode.field("inlinewiki.adventurepoints", Json_decode.string, json),
|
||||
inlinewiki_lifepointbasevalue: Json_decode.field("inlinewiki.lifepointbasevalue", Json_decode.string, json),
|
||||
inlinewiki_spiritbasevalue: Json_decode.field("inlinewiki.spiritbasevalue", Json_decode.string, json),
|
||||
inlinewiki_toughnessbasevalue: Json_decode.field("inlinewiki.toughnessbasevalue", Json_decode.string, json),
|
||||
inlinewiki_movementbasevalue: Json_decode.field("inlinewiki.movementbasevalue", Json_decode.string, json),
|
||||
inlinewiki_attributeadjustments: Json_decode.field("inlinewiki.attributeadjustments", Json_decode.string, json),
|
||||
inlinewiki_automaticadvantages: Json_decode.field("inlinewiki.automaticadvantages", Json_decode.string, json),
|
||||
inlinewiki_stronglyrecommendedadvantages: Json_decode.field("inlinewiki.stronglyrecommendedadvantages", Json_decode.string, json),
|
||||
inlinewiki_stronglyrecommendeddisadvantages: Json_decode.field("inlinewiki.stronglyrecommendeddisadvantages", Json_decode.string, json),
|
||||
inlinewiki_commoncultures: Json_decode.field("inlinewiki.commoncultures", Json_decode.string, json),
|
||||
inlinewiki_commonadvantages: Json_decode.field("inlinewiki.commonadvantages", Json_decode.string, json),
|
||||
inlinewiki_commondisadvantages: Json_decode.field("inlinewiki.commondisadvantages", Json_decode.string, json),
|
||||
inlinewiki_uncommonadvantages: Json_decode.field("inlinewiki.uncommonadvantages", Json_decode.string, json),
|
||||
inlinewiki_uncommondisadvantages: Json_decode.field("inlinewiki.uncommondisadvantages", Json_decode.string, json),
|
||||
culture_filters_common_allcultures: Json_decode.field("culture.filters.common.allcultures", Json_decode.string, json),
|
||||
culture_filters_common_commoncultures: Json_decode.field("culture.filters.common.commoncultures", Json_decode.string, json),
|
||||
culture_header_name: Json_decode.field("culture.header.name", Json_decode.string, json),
|
||||
inlinewiki_language: Json_decode.field("inlinewiki.language", Json_decode.string, json),
|
||||
inlinewiki_script: Json_decode.field("inlinewiki.script", Json_decode.string, json),
|
||||
inlinewiki_areaknowledge: Json_decode.field("inlinewiki.areaknowledge", Json_decode.string, json),
|
||||
inlinewiki_socialstatus: Json_decode.field("inlinewiki.socialstatus", Json_decode.string, json),
|
||||
inlinewiki_commonprofessions: Json_decode.field("inlinewiki.commonprofessions", Json_decode.string, json),
|
||||
inlinewiki_commonprofessions_mundane: Json_decode.field("inlinewiki.commonprofessions.mundane", Json_decode.string, json),
|
||||
inlinewiki_commonprofessions_magic: Json_decode.field("inlinewiki.commonprofessions.magic", Json_decode.string, json),
|
||||
inlinewiki_commonprofessions_blessed: Json_decode.field("inlinewiki.commonprofessions.blessed", Json_decode.string, json),
|
||||
inlinewiki_commonskills: Json_decode.field("inlinewiki.commonskills", Json_decode.string, json),
|
||||
inlinewiki_uncommonskills: Json_decode.field("inlinewiki.uncommonskills", Json_decode.string, json),
|
||||
inlinewiki_commonnames: Json_decode.field("inlinewiki.commonnames", Json_decode.string, json),
|
||||
inlinewiki_culturalpackage: Json_decode.field("inlinewiki.culturalpackage", Json_decode.string, json),
|
||||
profession_ownprofession: Json_decode.field("profession.ownprofession", Json_decode.string, json),
|
||||
profession_variants_novariant: Json_decode.field("profession.variants.novariant", Json_decode.string, json),
|
||||
profession_filters_common_allprofessions: Json_decode.field("profession.filters.common.allprofessions", Json_decode.string, json),
|
||||
profession_filters_common_commonprofessions: Json_decode.field("profession.filters.common.commonprofessions", Json_decode.string, json),
|
||||
profession_filters_groups_allprofessiongroups: Json_decode.field("profession.filters.groups.allprofessiongroups", Json_decode.string, json),
|
||||
profession_filters_groups_mundaneprofessions: Json_decode.field("profession.filters.groups.mundaneprofessions", Json_decode.string, json),
|
||||
profession_filters_groups_magicalprofessions: Json_decode.field("profession.filters.groups.magicalprofessions", Json_decode.string, json),
|
||||
profession_filters_groups_blessedprofessions: Json_decode.field("profession.filters.groups.blessedprofessions", Json_decode.string, json),
|
||||
profession_header_name: Json_decode.field("profession.header.name", Json_decode.string, json),
|
||||
profession_header_adventurepoints: Json_decode.field("profession.header.adventurepoints", Json_decode.string, json),
|
||||
profession_header_adventurepoints_tooltip: Json_decode.field("profession.header.adventurepoints.tooltip", Json_decode.string, json),
|
||||
inlinewiki_prerequisites: Json_decode.field("inlinewiki.prerequisites", Json_decode.string, json),
|
||||
inlinewiki_race: Json_decode.field("inlinewiki.race", Json_decode.string, json),
|
||||
inlinewiki_specialabilities: Json_decode.field("inlinewiki.specialabilities", Json_decode.string, json),
|
||||
inlinewiki_languagesandliteracytotalingap: Json_decode.field("inlinewiki.languagesandliteracytotalingap", Json_decode.string, json),
|
||||
inlinewiki_skillspecialization: Json_decode.field("inlinewiki.skillspecialization", Json_decode.string, json),
|
||||
inlinewiki_skillsselection: Json_decode.field("inlinewiki.skillsselection", Json_decode.string, json),
|
||||
inlinewiki_combattechniques: Json_decode.field("inlinewiki.combattechniques", Json_decode.string, json),
|
||||
inlinewiki_combattechniqueselection: Json_decode.field("inlinewiki.combattechniqueselection", Json_decode.string, json),
|
||||
inlinewiki_combattechnique_one: Json_decode.field("inlinewiki.combattechnique.one", Json_decode.string, json),
|
||||
inlinewiki_combattechnique_two: Json_decode.field("inlinewiki.combattechnique.two", Json_decode.string, json),
|
||||
inlinewiki_combattechniquesecondselection: Json_decode.field("inlinewiki.combattechniquesecondselection", Json_decode.string, json),
|
||||
inlinewiki_skills: Json_decode.field("inlinewiki.skills", Json_decode.string, json),
|
||||
inlinewiki_spells: Json_decode.field("inlinewiki.spells", Json_decode.string, json),
|
||||
inlinewiki_cursestotalingap: Json_decode.field("inlinewiki.cursestotalingap", Json_decode.string, json),
|
||||
inlinewiki_cantripsfromlist: Json_decode.field("inlinewiki.cantripsfromlist", Json_decode.string, json),
|
||||
inlinewiki_cantrip_one: Json_decode.field("inlinewiki.cantrip.one", Json_decode.string, json),
|
||||
inlinewiki_cantrip_two: Json_decode.field("inlinewiki.cantrip.two", Json_decode.string, json),
|
||||
inlinewiki_liturgicalchants: Json_decode.field("inlinewiki.liturgicalchants", Json_decode.string, json),
|
||||
inlinewiki_thetwelveblessings: Json_decode.field("inlinewiki.thetwelveblessings", Json_decode.string, json),
|
||||
inlinewiki_thetwelveblessingsexceptions: Json_decode.field("inlinewiki.thetwelveblessingsexceptions", Json_decode.string, json),
|
||||
inlinewiki_sixblessings: Json_decode.field("inlinewiki.sixblessings", Json_decode.string, json),
|
||||
inlinewiki_suggestedadvantages: Json_decode.field("inlinewiki.suggestedadvantages", Json_decode.string, json),
|
||||
inlinewiki_suggesteddisadvantages: Json_decode.field("inlinewiki.suggesteddisadvantages", Json_decode.string, json),
|
||||
inlinewiki_unsuitableadvantages: Json_decode.field("inlinewiki.unsuitableadvantages", Json_decode.string, json),
|
||||
inlinewiki_unsuitabledisadvantages: Json_decode.field("inlinewiki.unsuitabledisadvantages", Json_decode.string, json),
|
||||
inlinewiki_variants: Json_decode.field("inlinewiki.variants", Json_decode.string, json),
|
||||
inlinewiki_insteadof: Json_decode.field("inlinewiki.insteadof", Json_decode.string, json),
|
||||
rcpselectoptions_race: Json_decode.field("rcpselectoptions.race", Json_decode.string, json),
|
||||
rcpselectoptions_culture: Json_decode.field("rcpselectoptions.culture", Json_decode.string, json),
|
||||
rcpselectoptions_profession: Json_decode.field("rcpselectoptions.profession", Json_decode.string, json),
|
||||
rcpselectoptions_cantripsfromlist: Json_decode.field("rcpselectoptions.cantripsfromlist", Json_decode.string, json),
|
||||
rcpselectoptions_cantrip_one: Json_decode.field("rcpselectoptions.cantrip.one", Json_decode.string, json),
|
||||
rcpselectoptions_cantrip_two: Json_decode.field("rcpselectoptions.cantrip.two", Json_decode.string, json),
|
||||
rcpselectoptions_combattechniqueselection: Json_decode.field("rcpselectoptions.combattechniqueselection", Json_decode.string, json),
|
||||
rcpselectoptions_combattechnique_one: Json_decode.field("rcpselectoptions.combattechnique.one", Json_decode.string, json),
|
||||
rcpselectoptions_combattechnique_two: Json_decode.field("rcpselectoptions.combattechnique.two", Json_decode.string, json),
|
||||
rcpselectoptions_selectattributeadjustment: Json_decode.field("rcpselectoptions.selectattributeadjustment", Json_decode.string, json),
|
||||
rcpselectoptions_buyculturalpackage: Json_decode.field("rcpselectoptions.buyculturalpackage", Json_decode.string, json),
|
||||
rcpselectoptions_nativetongue_placeholder: Json_decode.field("rcpselectoptions.nativetongue.placeholder", Json_decode.string, json),
|
||||
rcpselectoptions_buyscript: Json_decode.field("rcpselectoptions.buyscript", Json_decode.string, json),
|
||||
rcpselectoptions_script_placeholder: Json_decode.field("rcpselectoptions.script.placeholder", Json_decode.string, json),
|
||||
rcpselectoptions_combattechniquesecondselection: Json_decode.field("rcpselectoptions.combattechniquesecondselection", Json_decode.string, json),
|
||||
rcpselectoptions_cursestotalingapleft: Json_decode.field("rcpselectoptions.cursestotalingapleft", Json_decode.string, json),
|
||||
rcpselectoptions_languagesandliteracytotalingapleft: Json_decode.field("rcpselectoptions.languagesandliteracytotalingapleft", Json_decode.string, json),
|
||||
rcpselectoptions_applicationforskillspecialization: Json_decode.field("rcpselectoptions.applicationforskillspecialization", Json_decode.string, json),
|
||||
rcpselectoptions_skillselectionap: Json_decode.field("rcpselectoptions.skillselectionap", Json_decode.string, json),
|
||||
rcpselectoptions_skillspecialization: Json_decode.field("rcpselectoptions.skillspecialization", Json_decode.string, json),
|
||||
rcpselectoptions_completebtn: Json_decode.field("rcpselectoptions.completebtn", Json_decode.string, json),
|
||||
rcpselectoptions_unfamiliarspells: Json_decode.field("rcpselectoptions.unfamiliarspells", Json_decode.string, json),
|
||||
rcpselectoptions_unfamiliarspellselectionfortraditionguildmage: Json_decode.field("rcpselectoptions.unfamiliarspellselectionfortraditionguildmage", Json_decode.string, json),
|
||||
rcpselectoptions_unfamiliarspell_placeholder: Json_decode.field("rcpselectoptions.unfamiliarspell.placeholder", Json_decode.string, json),
|
||||
rcpselectoptions_unfamiliarspell: Json_decode.field("rcpselectoptions.unfamiliarspell", Json_decode.string, json),
|
||||
attributes_totalpoints: Json_decode.field("attributes.totalpoints", Json_decode.string, json),
|
||||
attributes_attributeadjustmentselection: Json_decode.field("attributes.attributeadjustmentselection", Json_decode.string, json),
|
||||
attributes_derivedcharacteristics_tooltips_modifier: Json_decode.field("attributes.derivedcharacteristics.tooltips.modifier", Json_decode.string, json),
|
||||
attributes_derivedcharacteristics_tooltips_bought: Json_decode.field("attributes.derivedcharacteristics.tooltips.bought", Json_decode.string, json),
|
||||
attributes_derivedcharacteristics_tooltips_losttotal: Json_decode.field("attributes.derivedcharacteristics.tooltips.losttotal", Json_decode.string, json),
|
||||
attributes_derivedcharacteristics_tooltips_boughtback: Json_decode.field("attributes.derivedcharacteristics.tooltips.boughtback", Json_decode.string, json),
|
||||
attributes_lostpermanently_lifepoints: Json_decode.field("attributes.lostpermanently.lifepoints", Json_decode.string, json),
|
||||
attributes_lostpermanently_lifepoints_short: Json_decode.field("attributes.lostpermanently.lifepoints.short", Json_decode.string, json),
|
||||
attributes_lostpermanently_arcaneenergy: Json_decode.field("attributes.lostpermanently.arcaneenergy", Json_decode.string, json),
|
||||
attributes_lostpermanently_arcaneenergy_short: Json_decode.field("attributes.lostpermanently.arcaneenergy.short", Json_decode.string, json),
|
||||
attributes_lostpermanently_karmapoints: Json_decode.field("attributes.lostpermanently.karmapoints", Json_decode.string, json),
|
||||
attributes_lostpermanently_karmapoints_short: Json_decode.field("attributes.lostpermanently.karmapoints.short", Json_decode.string, json),
|
||||
attributes_removeenergypointslostpermanently_title: Json_decode.field("attributes.removeenergypointslostpermanently.title", Json_decode.string, json),
|
||||
attributes_removeenergypointslostpermanently_message: Json_decode.field("attributes.removeenergypointslostpermanently.message", Json_decode.string, json),
|
||||
attributes_removeenergypointslostpermanently_removebtn: Json_decode.field("attributes.removeenergypointslostpermanently.removebtn", Json_decode.string, json),
|
||||
attributes_pointslostpermanentlyeditor_boughtback: Json_decode.field("attributes.pointslostpermanentlyeditor.boughtback", Json_decode.string, json),
|
||||
attributes_pointslostpermanentlyeditor_spent: Json_decode.field("attributes.pointslostpermanentlyeditor.spent", Json_decode.string, json),
|
||||
advantages_filters_commonadvantages: Json_decode.field("advantages.filters.commonadvantages", Json_decode.string, json),
|
||||
disadvantages_filters_commondisadvantages: Json_decode.field("disadvantages.filters.commondisadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_addbtn: Json_decode.field("advantagesdisadvantages.addbtn", Json_decode.string, json),
|
||||
advantagesdisadvantages_afraidof: Json_decode.field("advantagesdisadvantages.afraidof", Json_decode.string, json),
|
||||
advantagesdisadvantages_immunityto: Json_decode.field("advantagesdisadvantages.immunityto", Json_decode.string, json),
|
||||
advantagesdisadvantages_hatredfor: Json_decode.field("advantagesdisadvantages.hatredfor", Json_decode.string, json),
|
||||
advantagesdisadvantages_header_name: Json_decode.field("advantagesdisadvantages.header.name", Json_decode.string, json),
|
||||
advantagesdisadvantages_header_adventurepoints: Json_decode.field("advantagesdisadvantages.header.adventurepoints", Json_decode.string, json),
|
||||
advantagesdisadvantages_header_adventurepoints_tooltip: Json_decode.field("advantagesdisadvantages.header.adventurepoints.tooltip", Json_decode.string, json),
|
||||
advantagesdisadvantages_apspent_spentonadvantages: Json_decode.field("advantagesdisadvantages.apspent.spentonadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_apspent_spentonmagicadvantages: Json_decode.field("advantagesdisadvantages.apspent.spentonmagicadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_apspent_spentonblessedadvantages: Json_decode.field("advantagesdisadvantages.apspent.spentonblessedadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_apspent_spentondisadvantages: Json_decode.field("advantagesdisadvantages.apspent.spentondisadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_apspent_spentonmagicdisadvantages: Json_decode.field("advantagesdisadvantages.apspent.spentonmagicdisadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_apspent_spentonblesseddisadvantages: Json_decode.field("advantagesdisadvantages.apspent.spentonblesseddisadvantages", Json_decode.string, json),
|
||||
advantagesdisadvantages_dialogs_customcost_title: Json_decode.field("advantagesdisadvantages.dialogs.customcost.title", Json_decode.string, json),
|
||||
advantagesdisadvantages_dialogs_customcost_for: Json_decode.field("advantagesdisadvantages.dialogs.customcost.for", Json_decode.string, json),
|
||||
specialabilities_addbtn: Json_decode.field("specialabilities.addbtn", Json_decode.string, json),
|
||||
specialabilities_header_name: Json_decode.field("specialabilities.header.name", Json_decode.string, json),
|
||||
specialabilities_header_group: Json_decode.field("specialabilities.header.group", Json_decode.string, json),
|
||||
specialabilities_header_adventurepoints: Json_decode.field("specialabilities.header.adventurepoints", Json_decode.string, json),
|
||||
specialabilities_header_adventurepoints_tooltip: Json_decode.field("specialabilities.header.adventurepoints.tooltip", Json_decode.string, json),
|
||||
specialabilities_nativetonguelevel: Json_decode.field("specialabilities.nativetonguelevel", Json_decode.string, json),
|
||||
inlinewiki_rule: Json_decode.field("inlinewiki.rule", Json_decode.string, json),
|
||||
inlinewiki_effect: Json_decode.field("inlinewiki.effect", Json_decode.string, json),
|
||||
inlinewiki_extendedcombatspecialabilities: Json_decode.field("inlinewiki.extendedcombatspecialabilities", Json_decode.string, json),
|
||||
inlinewiki_extendedmagicalspecialabilities: Json_decode.field("inlinewiki.extendedmagicalspecialabilities", Json_decode.string, json),
|
||||
inlinewiki_extendedblessedspecialabilities: Json_decode.field("inlinewiki.extendedblessedspecialabilities", Json_decode.string, json),
|
||||
inlinewiki_extendedskillspecialabilities: Json_decode.field("inlinewiki.extendedskillspecialabilities", Json_decode.string, json),
|
||||
inlinewiki_penalty: Json_decode.field("inlinewiki.penalty", Json_decode.string, json),
|
||||
inlinewiki_level: Json_decode.field("inlinewiki.level", Json_decode.string, json),
|
||||
inlinewiki_perlevel: Json_decode.field("inlinewiki.perlevel", Json_decode.string, json),
|
||||
inlinewiki_volume: Json_decode.field("inlinewiki.volume", Json_decode.string, json),
|
||||
inlinewiki_aspect: Json_decode.field("inlinewiki.aspect", Json_decode.string, json),
|
||||
inlinewiki_bindingcost: Json_decode.field("inlinewiki.bindingcost", Json_decode.string, json),
|
||||
inlinewiki_protectivecircle: Json_decode.field("inlinewiki.protectivecircle", Json_decode.string, json),
|
||||
inlinewiki_wardingcircle: Json_decode.field("inlinewiki.wardingcircle", Json_decode.string, json),
|
||||
inlinewiki_actions: Json_decode.field("inlinewiki.actions", Json_decode.string, json),
|
||||
inlinewiki_racecultureorprofessionrequiresautomaticorsuggested: Json_decode.field("inlinewiki.racecultureorprofessionrequiresautomaticorsuggested", Json_decode.string, json),
|
||||
inlinewiki_advantage: Json_decode.field("inlinewiki.advantage", Json_decode.string, json),
|
||||
inlinewiki_disadvantage: Json_decode.field("inlinewiki.disadvantage", Json_decode.string, json),
|
||||
inlinewiki_primaryattributeofthetradition: Json_decode.field("inlinewiki.primaryattributeofthetradition", Json_decode.string, json),
|
||||
inlinewiki_knowledgeofspell: Json_decode.field("inlinewiki.knowledgeofspell", Json_decode.string, json),
|
||||
inlinewiki_knowledgeofliturgicalchant: Json_decode.field("inlinewiki.knowledgeofliturgicalchant", Json_decode.string, json),
|
||||
inlinewiki_appropriatecombatstylespecialability: Json_decode.field("inlinewiki.appropriatecombatstylespecialability", Json_decode.string, json),
|
||||
inlinewiki_appropriatemagicalstylespecialability: Json_decode.field("inlinewiki.appropriatemagicalstylespecialability", Json_decode.string, json),
|
||||
inlinewiki_appropriateblessedstylespecialability: Json_decode.field("inlinewiki.appropriateblessedstylespecialability", Json_decode.string, json),
|
||||
inlinewiki_appropriateskillstylespecialability: Json_decode.field("inlinewiki.appropriateskillstylespecialability", Json_decode.string, json),
|
||||
inlinewiki_sex: Json_decode.field("inlinewiki.sex", Json_decode.string, json),
|
||||
inlinewiki_sex_male: Json_decode.field("inlinewiki.sex.male", Json_decode.string, json),
|
||||
inlinewiki_sex_female: Json_decode.field("inlinewiki.sex.female", Json_decode.string, json),
|
||||
inlinewiki_combattechniques_groups_all: Json_decode.field("inlinewiki.combattechniques.groups.all", Json_decode.string, json),
|
||||
inlinewiki_combattechniques_groups_allmeleecombattechniques: Json_decode.field("inlinewiki.combattechniques.groups.allmeleecombattechniques", Json_decode.string, json),
|
||||
inlinewiki_combattechniques_groups_allrangedcombattechniques: Json_decode.field("inlinewiki.combattechniques.groups.allrangedcombattechniques", Json_decode.string, json),
|
||||
inlinewiki_combattechniques_groups_allmeleecombattechniqueswithparry: Json_decode.field("inlinewiki.combattechniques.groups.allmeleecombattechniqueswithparry", Json_decode.string, json),
|
||||
inlinewiki_combattechniques_groups_allmeleecombattechniquesforonehandedweapons: Json_decode.field("inlinewiki.combattechniques.groups.allmeleecombattechniquesforonehandedweapons", Json_decode.string, json),
|
||||
inlinewiki_socialstatusxorhigher: Json_decode.field("inlinewiki.socialstatusxorhigher", Json_decode.string, json),
|
||||
skills_commonskills: Json_decode.field("skills.commonskills", Json_decode.string, json),
|
||||
skills_header_name: Json_decode.field("skills.header.name", Json_decode.string, json),
|
||||
skills_header_skillrating: Json_decode.field("skills.header.skillrating", Json_decode.string, json),
|
||||
skills_header_skillrating_tooltip: Json_decode.field("skills.header.skillrating.tooltip", Json_decode.string, json),
|
||||
skills_header_group: Json_decode.field("skills.header.group", Json_decode.string, json),
|
||||
skills_header_check: Json_decode.field("skills.header.check", Json_decode.string, json),
|
||||
skills_header_improvementcost: Json_decode.field("skills.header.improvementcost", Json_decode.string, json),
|
||||
skills_header_improvementcost_tooltip: Json_decode.field("skills.header.improvementcost.tooltip", Json_decode.string, json),
|
||||
inlinewiki_check: Json_decode.field("inlinewiki.check", Json_decode.string, json),
|
||||
inlinewiki_newapplications: Json_decode.field("inlinewiki.newapplications", Json_decode.string, json),
|
||||
inlinewiki_applications: Json_decode.field("inlinewiki.applications", Json_decode.string, json),
|
||||
inlinewiki_uses: Json_decode.field("inlinewiki.uses", Json_decode.string, json),
|
||||
inlinewiki_encumbrance: Json_decode.field("inlinewiki.encumbrance", Json_decode.string, json),
|
||||
inlinewiki_encumbrance_yes: Json_decode.field("inlinewiki.encumbrance.yes", Json_decode.string, json),
|
||||
inlinewiki_encumbrance_no: Json_decode.field("inlinewiki.encumbrance.no", Json_decode.string, json),
|
||||
inlinewiki_encumbrance_maybe: Json_decode.field("inlinewiki.encumbrance.maybe", Json_decode.string, json),
|
||||
inlinewiki_tools: Json_decode.field("inlinewiki.tools", Json_decode.string, json),
|
||||
inlinewiki_quality: Json_decode.field("inlinewiki.quality", Json_decode.string, json),
|
||||
inlinewiki_failedcheck: Json_decode.field("inlinewiki.failedcheck", Json_decode.string, json),
|
||||
inlinewiki_criticalsuccess: Json_decode.field("inlinewiki.criticalsuccess", Json_decode.string, json),
|
||||
inlinewiki_botch: Json_decode.field("inlinewiki.botch", Json_decode.string, json),
|
||||
inlinewiki_improvementcost: Json_decode.field("inlinewiki.improvementcost", Json_decode.string, json),
|
||||
showfrequency_stronglyrecommended: Json_decode.field("showfrequency.stronglyrecommended", Json_decode.string, json),
|
||||
showfrequency_common: Json_decode.field("showfrequency.common", Json_decode.string, json),
|
||||
showfrequency_uncommon: Json_decode.field("showfrequency.uncommon", Json_decode.string, json),
|
||||
showfrequency_unfamiliarspells: Json_decode.field("showfrequency.unfamiliarspells", Json_decode.string, json),
|
||||
combattechniques_header_name: Json_decode.field("combattechniques.header.name", Json_decode.string, json),
|
||||
combattechniques_header_group: Json_decode.field("combattechniques.header.group", Json_decode.string, json),
|
||||
combattechniques_header_combattechniquerating: Json_decode.field("combattechniques.header.combattechniquerating", Json_decode.string, json),
|
||||
combattechniques_header_combattechniquerating_tooltip: Json_decode.field("combattechniques.header.combattechniquerating.tooltip", Json_decode.string, json),
|
||||
combattechniques_header_improvementcost: Json_decode.field("combattechniques.header.improvementcost", Json_decode.string, json),
|
||||
combattechniques_header_improvementcost_tooltip: Json_decode.field("combattechniques.header.improvementcost.tooltip", Json_decode.string, json),
|
||||
combattechniques_header_primaryattribute: Json_decode.field("combattechniques.header.primaryattribute", Json_decode.string, json),
|
||||
combattechniques_header_primaryattribute_tooltip: Json_decode.field("combattechniques.header.primaryattribute.tooltip", Json_decode.string, json),
|
||||
combattechniques_header_attack: Json_decode.field("combattechniques.header.attack", Json_decode.string, json),
|
||||
combattechniques_header_attack_tooltip: Json_decode.field("combattechniques.header.attack.tooltip", Json_decode.string, json),
|
||||
combattechniques_header_parry: Json_decode.field("combattechniques.header.parry", Json_decode.string, json),
|
||||
combattechniques_header_parry_tooltip: Json_decode.field("combattechniques.header.parry.tooltip", Json_decode.string, json),
|
||||
inlinewiki_special: Json_decode.field("inlinewiki.special", Json_decode.string, json),
|
||||
inlinewiki_primaryattribute: Json_decode.field("inlinewiki.primaryattribute", Json_decode.string, json),
|
||||
spells_addbtn: Json_decode.field("spells.addbtn", Json_decode.string, json),
|
||||
spells_header_name: Json_decode.field("spells.header.name", Json_decode.string, json),
|
||||
spells_header_property: Json_decode.field("spells.header.property", Json_decode.string, json),
|
||||
spells_header_group: Json_decode.field("spells.header.group", Json_decode.string, json),
|
||||
spells_header_skillrating: Json_decode.field("spells.header.skillrating", Json_decode.string, json),
|
||||
spells_header_skillrating_tooltip: Json_decode.field("spells.header.skillrating.tooltip", Json_decode.string, json),
|
||||
spells_header_check: Json_decode.field("spells.header.check", Json_decode.string, json),
|
||||
spells_header_checkmodifier: Json_decode.field("spells.header.checkmodifier", Json_decode.string, json),
|
||||
spells_header_checkmodifier_tooltip: Json_decode.field("spells.header.checkmodifier.tooltip", Json_decode.string, json),
|
||||
spells_header_improvementcost: Json_decode.field("spells.header.improvementcost", Json_decode.string, json),
|
||||
spells_header_improvementcost_tooltip: Json_decode.field("spells.header.improvementcost.tooltip", Json_decode.string, json),
|
||||
spells_groups_cantrip: Json_decode.field("spells.groups.cantrip", Json_decode.string, json),
|
||||
spells_traditions_general: Json_decode.field("spells.traditions.general", Json_decode.string, json),
|
||||
magicalactions_animistforces_tribes_general: Json_decode.field("magicalactions.animistforces.tribes.general", Json_decode.string, json),
|
||||
inlinewiki_castingtime: Json_decode.field("inlinewiki.castingtime", Json_decode.string, json),
|
||||
inlinewiki_ritualtime: Json_decode.field("inlinewiki.ritualtime", Json_decode.string, json),
|
||||
inlinewiki_aecost: Json_decode.field("inlinewiki.aecost", Json_decode.string, json),
|
||||
inlinewiki_range: Json_decode.field("inlinewiki.range", Json_decode.string, json),
|
||||
inlinewiki_duration: Json_decode.field("inlinewiki.duration", Json_decode.string, json),
|
||||
inlinewiki_targetcategory: Json_decode.field("inlinewiki.targetcategory", Json_decode.string, json),
|
||||
inlinewiki_property: Json_decode.field("inlinewiki.property", Json_decode.string, json),
|
||||
inlinewiki_traditions: Json_decode.field("inlinewiki.traditions", Json_decode.string, json),
|
||||
inlinewiki_skill: Json_decode.field("inlinewiki.skill", Json_decode.string, json),
|
||||
inlinewiki_lengthoftime: Json_decode.field("inlinewiki.lengthoftime", Json_decode.string, json),
|
||||
inlinewiki_musictradition: Json_decode.field("inlinewiki.musictradition", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthisspellscastingtime: Json_decode.field("inlinewiki.youcannotuseamodificationonthisspellscastingtime", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthisspellsritualtime: Json_decode.field("inlinewiki.youcannotuseamodificationonthisspellsritualtime", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthisspellscost: Json_decode.field("inlinewiki.youcannotuseamodificationonthisspellscost", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthisspellsrange: Json_decode.field("inlinewiki.youcannotuseamodificationonthisspellsrange", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthisspellsduration: Json_decode.field("inlinewiki.youcannotuseamodificationonthisspellsduration", Json_decode.string, json),
|
||||
inlinewiki_spellenhancements: Json_decode.field("inlinewiki.spellenhancements", Json_decode.string, json),
|
||||
inlinewiki_spellenhancements_title: Json_decode.field("inlinewiki.spellenhancements.title", Json_decode.string, json),
|
||||
inlinewiki_tribaltraditions: Json_decode.field("inlinewiki.tribaltraditions", Json_decode.string, json),
|
||||
inlinewiki_brew: Json_decode.field("inlinewiki.brew", Json_decode.string, json),
|
||||
inlinewiki_spirithalf: Json_decode.field("inlinewiki.spirithalf", Json_decode.string, json),
|
||||
inlinewiki_spirithalf_short: Json_decode.field("inlinewiki.spirithalf.short", Json_decode.string, json),
|
||||
inlinewiki_spiritortoughness: Json_decode.field("inlinewiki.spiritortoughness", Json_decode.string, json),
|
||||
inlinewiki_spiritortoughness_short: Json_decode.field("inlinewiki.spiritortoughness.short", Json_decode.string, json),
|
||||
inlinewiki_note: Json_decode.field("inlinewiki.note", Json_decode.string, json),
|
||||
liturgicalchants_addbtn: Json_decode.field("liturgicalchants.addbtn", Json_decode.string, json),
|
||||
liturgicalchants_header_name: Json_decode.field("liturgicalchants.header.name", Json_decode.string, json),
|
||||
liturgicalchants_header_traditions: Json_decode.field("liturgicalchants.header.traditions", Json_decode.string, json),
|
||||
liturgicalchants_header_group: Json_decode.field("liturgicalchants.header.group", Json_decode.string, json),
|
||||
liturgicalchants_header_skillrating: Json_decode.field("liturgicalchants.header.skillrating", Json_decode.string, json),
|
||||
liturgicalchants_header_skillrating_tooltip: Json_decode.field("liturgicalchants.header.skillrating.tooltip", Json_decode.string, json),
|
||||
liturgicalchants_header_check: Json_decode.field("liturgicalchants.header.check", Json_decode.string, json),
|
||||
liturgicalchants_header_checkmodifier: Json_decode.field("liturgicalchants.header.checkmodifier", Json_decode.string, json),
|
||||
liturgicalchants_header_checkmodifier_tooltip: Json_decode.field("liturgicalchants.header.checkmodifier.tooltip", Json_decode.string, json),
|
||||
liturgicalchants_header_improvementcost: Json_decode.field("liturgicalchants.header.improvementcost", Json_decode.string, json),
|
||||
liturgicalchants_header_improvementcost_tooltip: Json_decode.field("liturgicalchants.header.improvementcost.tooltip", Json_decode.string, json),
|
||||
liturgicalchants_groups_blessing: Json_decode.field("liturgicalchants.groups.blessing", Json_decode.string, json),
|
||||
liturgicalchants_aspects_general: Json_decode.field("liturgicalchants.aspects.general", Json_decode.string, json),
|
||||
inlinewiki_liturgicaltime: Json_decode.field("inlinewiki.liturgicaltime", Json_decode.string, json),
|
||||
inlinewiki_ceremonialtime: Json_decode.field("inlinewiki.ceremonialtime", Json_decode.string, json),
|
||||
inlinewiki_kpcost: Json_decode.field("inlinewiki.kpcost", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthischantsliturgicaltime: Json_decode.field("inlinewiki.youcannotuseamodificationonthischantsliturgicaltime", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthischantsceremonialtime: Json_decode.field("inlinewiki.youcannotuseamodificationonthischantsceremonialtime", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthischantscost: Json_decode.field("inlinewiki.youcannotuseamodificationonthischantscost", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthischantsrange: Json_decode.field("inlinewiki.youcannotuseamodificationonthischantsrange", Json_decode.string, json),
|
||||
inlinewiki_youcannotuseamodificationonthischantsduration: Json_decode.field("inlinewiki.youcannotuseamodificationonthischantsduration", Json_decode.string, json),
|
||||
inlinewiki_liturgicalchantenhancements: Json_decode.field("inlinewiki.liturgicalchantenhancements", Json_decode.string, json),
|
||||
inlinewiki_liturgicalchantenhancements_title: Json_decode.field("inlinewiki.liturgicalchantenhancements.title", Json_decode.string, json),
|
||||
equipment_header_name: Json_decode.field("equipment.header.name", Json_decode.string, json),
|
||||
equipment_header_group: Json_decode.field("equipment.header.group", Json_decode.string, json),
|
||||
equipment_addbtn: Json_decode.field("equipment.addbtn", Json_decode.string, json),
|
||||
equipment_createbtn: Json_decode.field("equipment.createbtn", Json_decode.string, json),
|
||||
equipment_filters_allcombattechniques: Json_decode.field("equipment.filters.allcombattechniques", Json_decode.string, json),
|
||||
equipment_purse_title: Json_decode.field("equipment.purse.title", Json_decode.string, json),
|
||||
equipment_purse_ducats: Json_decode.field("equipment.purse.ducats", Json_decode.string, json),
|
||||
equipment_purse_silverthalers: Json_decode.field("equipment.purse.silverthalers", Json_decode.string, json),
|
||||
equipment_purse_halers: Json_decode.field("equipment.purse.halers", Json_decode.string, json),
|
||||
equipment_purse_kreutzers: Json_decode.field("equipment.purse.kreutzers", Json_decode.string, json),
|
||||
equipment_purse_carryingcapacity: Json_decode.field("equipment.purse.carryingcapacity", Json_decode.string, json),
|
||||
equipment_purse_initialstartingwealthandcarryingcapacity: Json_decode.field("equipment.purse.initialstartingwealthandcarryingcapacity", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_damage: Json_decode.field("equipment.dialogs.addedit.damage", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_length: Json_decode.field("equipment.dialogs.addedit.length", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_range: Json_decode.field("equipment.dialogs.addedit.range", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_edititem: Json_decode.field("equipment.dialogs.addedit.edititem", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_createitem: Json_decode.field("equipment.dialogs.addedit.createitem", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_number: Json_decode.field("equipment.dialogs.addedit.number", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_name: Json_decode.field("equipment.dialogs.addedit.name", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_price: Json_decode.field("equipment.dialogs.addedit.price", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_weight: Json_decode.field("equipment.dialogs.addedit.weight", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_carriedwhere: Json_decode.field("equipment.dialogs.addedit.carriedwhere", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_itemgroup: Json_decode.field("equipment.dialogs.addedit.itemgroup", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_itemgrouphint: Json_decode.field("equipment.dialogs.addedit.itemgrouphint", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_improvisedweapon: Json_decode.field("equipment.dialogs.addedit.improvisedweapon", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_improvisedweapongroup: Json_decode.field("equipment.dialogs.addedit.improvisedweapongroup", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_template: Json_decode.field("equipment.dialogs.addedit.template", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_combattechnique: Json_decode.field("equipment.dialogs.addedit.combattechnique", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_primaryattributeanddamagethreshold: Json_decode.field("equipment.dialogs.addedit.primaryattributeanddamagethreshold", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_primaryattribute: Json_decode.field("equipment.dialogs.addedit.primaryattribute", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_primaryattribute_short: Json_decode.field("equipment.dialogs.addedit.primaryattribute.short", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_damagethreshold: Json_decode.field("equipment.dialogs.addedit.damagethreshold", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_separatedamagethresholds: Json_decode.field("equipment.dialogs.addedit.separatedamagethresholds", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_breakingpointratingmodifier: Json_decode.field("equipment.dialogs.addedit.breakingpointratingmodifier", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_damaged: Json_decode.field("equipment.dialogs.addedit.damaged", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_reach: Json_decode.field("equipment.dialogs.addedit.reach", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_attackparrymodifier: Json_decode.field("equipment.dialogs.addedit.attackparrymodifier", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_structurepoints: Json_decode.field("equipment.dialogs.addedit.structurepoints", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_lengthwithunit: Json_decode.field("equipment.dialogs.addedit.lengthwithunit", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_parryingweapon: Json_decode.field("equipment.dialogs.addedit.parryingweapon", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_twohandedweapon: Json_decode.field("equipment.dialogs.addedit.twohandedweapon", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_reloadtime: Json_decode.field("equipment.dialogs.addedit.reloadtime", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_rangeclose: Json_decode.field("equipment.dialogs.addedit.rangeclose", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_rangemedium: Json_decode.field("equipment.dialogs.addedit.rangemedium", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_rangefar: Json_decode.field("equipment.dialogs.addedit.rangefar", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_ammunition: Json_decode.field("equipment.dialogs.addedit.ammunition", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_protection: Json_decode.field("equipment.dialogs.addedit.protection", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_encumbrance: Json_decode.field("equipment.dialogs.addedit.encumbrance", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_armortype: Json_decode.field("equipment.dialogs.addedit.armortype", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_sturdinessmodifier: Json_decode.field("equipment.dialogs.addedit.sturdinessmodifier", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_wear: Json_decode.field("equipment.dialogs.addedit.wear", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_hitzonearmoronly: Json_decode.field("equipment.dialogs.addedit.hitzonearmoronly", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_movementmodifier: Json_decode.field("equipment.dialogs.addedit.movementmodifier", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_initiativemodifier: Json_decode.field("equipment.dialogs.addedit.initiativemodifier", Json_decode.string, json),
|
||||
equipment_dialogs_addedit_additionalpenalties: Json_decode.field("equipment.dialogs.addedit.additionalpenalties", Json_decode.string, json),
|
||||
hitzonearmors_header_name: Json_decode.field("hitzonearmors.header.name", Json_decode.string, json),
|
||||
hitzonearmors_createbtn: Json_decode.field("hitzonearmors.createbtn", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_name: Json_decode.field("hitzonearmors.dialogs.addedit.name", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_edithitzonearmor: Json_decode.field("hitzonearmors.dialogs.addedit.edithitzonearmor", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_createhitzonearmor: Json_decode.field("hitzonearmors.dialogs.addedit.createhitzonearmor", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_head: Json_decode.field("hitzonearmors.dialogs.addedit.head", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_torso: Json_decode.field("hitzonearmors.dialogs.addedit.torso", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_leftarm: Json_decode.field("hitzonearmors.dialogs.addedit.leftarm", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_rightarm: Json_decode.field("hitzonearmors.dialogs.addedit.rightarm", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_leftleg: Json_decode.field("hitzonearmors.dialogs.addedit.leftleg", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_rightleg: Json_decode.field("hitzonearmors.dialogs.addedit.rightleg", Json_decode.string, json),
|
||||
hitzonearmors_dialogs_addedit_wear: Json_decode.field("hitzonearmors.dialogs.addedit.wear", Json_decode.string, json),
|
||||
inlinewiki_equipment_weight: Json_decode.field("inlinewiki.equipment.weight", Json_decode.string, json),
|
||||
inlinewiki_equipment_price: Json_decode.field("inlinewiki.equipment.price", Json_decode.string, json),
|
||||
inlinewiki_equipment_ammunition: Json_decode.field("inlinewiki.equipment.ammunition", Json_decode.string, json),
|
||||
inlinewiki_equipment_combattechnique: Json_decode.field("inlinewiki.equipment.combattechnique", Json_decode.string, json),
|
||||
inlinewiki_equipment_damage: Json_decode.field("inlinewiki.equipment.damage", Json_decode.string, json),
|
||||
inlinewiki_equipment_primaryattributeanddamagethreshold: Json_decode.field("inlinewiki.equipment.primaryattributeanddamagethreshold", Json_decode.string, json),
|
||||
inlinewiki_equipment_attackparrymodifier: Json_decode.field("inlinewiki.equipment.attackparrymodifier", Json_decode.string, json),
|
||||
inlinewiki_equipment_reach: Json_decode.field("inlinewiki.equipment.reach", Json_decode.string, json),
|
||||
inlinewiki_equipment_length: Json_decode.field("inlinewiki.equipment.length", Json_decode.string, json),
|
||||
inlinewiki_equipment_reloadtime: Json_decode.field("inlinewiki.equipment.reloadtime", Json_decode.string, json),
|
||||
inlinewiki_equipment_range: Json_decode.field("inlinewiki.equipment.range", Json_decode.string, json),
|
||||
inlinewiki_equipment_actionsvalue: Json_decode.field("inlinewiki.equipment.actionsvalue", Json_decode.string, json),
|
||||
inlinewiki_equipment_protection: Json_decode.field("inlinewiki.equipment.protection", Json_decode.string, json),
|
||||
inlinewiki_equipment_encumbrance: Json_decode.field("inlinewiki.equipment.encumbrance", Json_decode.string, json),
|
||||
inlinewiki_equipment_additionalpenalties: Json_decode.field("inlinewiki.equipment.additionalpenalties", Json_decode.string, json),
|
||||
inlinewiki_equipment_note: Json_decode.field("inlinewiki.equipment.note", Json_decode.string, json),
|
||||
inlinewiki_equipment_rules: Json_decode.field("inlinewiki.equipment.rules", Json_decode.string, json),
|
||||
inlinewiki_equipment_weaponadvantage: Json_decode.field("inlinewiki.equipment.weaponadvantage", Json_decode.string, json),
|
||||
inlinewiki_equipment_weapondisadvantage: Json_decode.field("inlinewiki.equipment.weapondisadvantage", Json_decode.string, json),
|
||||
inlinewiki_equipment_armoradvantage: Json_decode.field("inlinewiki.equipment.armoradvantage", Json_decode.string, json),
|
||||
inlinewiki_equipment_armordisadvantage: Json_decode.field("inlinewiki.equipment.armordisadvantage", Json_decode.string, json),
|
||||
pets_dialogs_addedit_deleteavatarbtn: Json_decode.field("pets.dialogs.addedit.deleteavatarbtn", Json_decode.string, json),
|
||||
pets_dialogs_addedit_name: Json_decode.field("pets.dialogs.addedit.name", Json_decode.string, json),
|
||||
pets_dialogs_addedit_sizecategory: Json_decode.field("pets.dialogs.addedit.sizecategory", Json_decode.string, json),
|
||||
pets_dialogs_addedit_type: Json_decode.field("pets.dialogs.addedit.type", Json_decode.string, json),
|
||||
pets_dialogs_addedit_apspent: Json_decode.field("pets.dialogs.addedit.apspent", Json_decode.string, json),
|
||||
pets_dialogs_addedit_totalap: Json_decode.field("pets.dialogs.addedit.totalap", Json_decode.string, json),
|
||||
pets_dialogs_addedit_protection: Json_decode.field("pets.dialogs.addedit.protection", Json_decode.string, json),
|
||||
pets_dialogs_addedit_attackname: Json_decode.field("pets.dialogs.addedit.attackname", Json_decode.string, json),
|
||||
pets_dialogs_addedit_attack: Json_decode.field("pets.dialogs.addedit.attack", Json_decode.string, json),
|
||||
pets_dialogs_addedit_parry: Json_decode.field("pets.dialogs.addedit.parry", Json_decode.string, json),
|
||||
pets_dialogs_addedit_damagepoints: Json_decode.field("pets.dialogs.addedit.damagepoints", Json_decode.string, json),
|
||||
pets_dialogs_addedit_reach: Json_decode.field("pets.dialogs.addedit.reach", Json_decode.string, json),
|
||||
pets_dialogs_addedit_actions: Json_decode.field("pets.dialogs.addedit.actions", Json_decode.string, json),
|
||||
pets_dialogs_addedit_skills: Json_decode.field("pets.dialogs.addedit.skills", Json_decode.string, json),
|
||||
pets_dialogs_addedit_specialabilities: Json_decode.field("pets.dialogs.addedit.specialabilities", Json_decode.string, json),
|
||||
pets_dialogs_addedit_notes: Json_decode.field("pets.dialogs.addedit.notes", Json_decode.string, json),
|
||||
pets_dialogs_addedit_addbtn: Json_decode.field("pets.dialogs.addedit.addbtn", Json_decode.string, json),
|
||||
pets_dialogs_addedit_savebtn: Json_decode.field("pets.dialogs.addedit.savebtn", Json_decode.string, json)
|
||||
};
|
||||
}
|
||||
|
||||
var Decode = {
|
||||
t: t
|
||||
};
|
||||
|
||||
exports.Decode = Decode;
|
||||
/* No side effect */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user