Compare commits

...
1147 Commits
Author SHA1 Message Date
Lukas Obermann aa93dab7fd build(release): 1.5.2 2025-01-02 18:43:46 +01:00
Lukas Obermann 5a9ae86cf9 build(git): merge master 2025-01-02 18:43:14 +01:00
Michel FeddeandLukas Obermann 7f5f94491e fix: throws during startup due to changed devtools identifiers
Refs: #1634
Co-authored-by: Lukas Obermann <lukas.obermann@icloud.com>
2025-01-02 18:26:57 +01:00
Lukas Obermann a2979650f2 build(deps): fix auto-fixable vulnerabilities in packages 2025-01-02 18:17:24 +01:00
Lukas Obermann bc80b0479a docs: add easier option to receive the database for contribution purposes 2023-01-24 18:52:20 +01:00
cziermannandChristian Ziermann fdd391b849 docs: correct build command for ts
Refs: #1592
Co-authored-by: Christian Ziermann <christian.ziermann@contabo.de>
2023-01-07 13:09:25 +01:00
Lukas Obermann 057edce846 build(release): 1.5.2-alpha.4 2022-07-22 23:31:27 +02:00
Lukas Obermann c52fc26a1b fix: improvement cost handling for some traditions
The refactoring resulted in no spells being available to intuitive mages.

In general, comparing improvement costs directly did not work.
2022-07-22 23:30:16 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> d28667a935 build(deps): bump terser from 5.10.0 to 5.14.2
Bumps [terser](https://github.com/terser/terser) from 5.10.0 to 5.14.2.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Refs: #1382

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-22 21:03:23 +02:00
Lukas Obermann b92e47cd13 ci: update and streamline test workflow 2022-07-14 13:17:09 +02:00
Lukas Obermann 87a21b6fc4 style(ci): indent lists by two spaces 2022-07-14 13:07:31 +02:00
Lukas Obermann ccd0898f4e ci: provide apple csc env variables to macOS build only 2022-07-14 13:06:40 +02:00
Lukas Obermann c162931e74 fix: show improvement cost in tabular list 2022-07-12 22:16:27 +02:00
Lukas Obermann b578254d75 refactor: remove inconsistent and wrong usage of prefix functions 2022-07-12 10:23:26 +02:00
Lukas Obermann 7b57aca991 build(release): 1.5.2-alpha.3 2022-07-12 10:05:12 +02:00
Lukas Obermann 282467e4af refactor: disallow use of improvement cost as simple number 2022-07-12 10:04:54 +02:00
Lukas Obermann e6d1b8d3fd build(release): 1.5.2-alpha.2 2022-07-11 15:45:53 +02:00
Lukas Obermann f09be7d54b ci: fix package named import 2022-07-11 15:45:39 +02:00
Lukas Obermann 3397ed8cee ci: forward code signing certificates for macos 2022-07-11 15:37:48 +02:00
Lukas Obermann 7b6a0980b9 ci: fix package import 2022-07-11 15:24:55 +02:00
Lukas Obermann 7b245b989b ci: remove reasonml build from test 2022-07-11 15:23:04 +02:00
Lukas Obermann 32058f76c2 build(notarization): adjust plist for notarization 2022-07-11 15:14:23 +02:00
Lukas Obermann a6576bb8ab refactor: remove reasonml from project 2022-07-11 12:12:19 +02:00
Lukas Obermann 7c6e377692 feat: enable auto-update for macOS 2022-07-11 10:00:09 +02:00
Lukas Obermann fe7c5e68ed build: integrate notarization 2022-07-10 23:17:46 +02:00
Lukas Obermann 531530e763 build(deps): upgrade electron to 19.0.4 2022-06-19 12:37:51 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> e1befd1383 build(deps): bump semver-regex from 3.1.3 to 3.1.4 (#1375)
Bumps [semver-regex](https://github.com/sindresorhus/semver-regex) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/sindresorhus/semver-regex/releases)
- [Commits](https://github.com/sindresorhus/semver-regex/commits/v3.1.4)

---
updated-dependencies:
- dependency-name: semver-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-08 09:40:18 +02:00
Lukas Obermann 2eb87c8f4c build(deps): bump packages with vulnerabilities
- bump ejs from 3.1.6 to 3.1.7
- bump async from 0.9.2 to 3.2.3
- bump filelist from 1.0.2 to 1.0.3
- bump jake from 10.8.2 to 10.8.5
2022-04-29 11:17:10 +02:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Lukas Obermann
531715f171 build(deps): bump plist from 3.0.4 to 3.0.5
Refs: #1371
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lukas Obermann <lukas.obermann@icloud.com>
2022-04-29 11:11:33 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 4c9096b3d5 build(deps): bump minimist from 1.2.5 to 1.2.6
Refs: #1365
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-29 11:10:27 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 7c3d722d7e build(deps): bump moment from 2.25.3 to 2.29.2
Refs: #1364
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-29 11:09:26 +02:00
Lukas Obermann c4b995e046 build(release): 1.5.2-alpha.1 2022-04-29 11:01:20 +02:00
Lukas Obermann c987847c9b feat: add krallenkettenzauber as placeholder 2022-04-29 10:54:57 +02:00
Lukas Obermann e99828f1cc docs(changelog): add general changelog for 1.5.1 2022-03-21 11:33:42 +01:00
Lukas Obermann 8e8932cd83 build(release): bump version to 1.5.1 2022-03-20 16:05:05 +01:00
Lukas Obermann 246b3d5c1d build(release): 1.5.1
Refs: #1361
2022-03-20 15:26:41 +01:00
Lukas Obermann c15505062d build(release): 1.5.1
Refs: #1360
2022-03-20 15:26:11 +01:00
Lukas Obermann 8d54177cac Merge branch 'master' into release/1.5.1 2022-03-20 15:21:54 +01:00
Lukas Obermann 96c7b54fce docs(changelog): add Dutch changelogs für 1.5.1 2022-03-20 15:18:38 +01:00
Lukas Obermann 5c7ffd0660 docs(changelog): add initial 1.5.1 changelogs 2022-02-25 08:29:51 +01:00
Lukas Obermann d24fae03b7 build(release): 1.5.1-alpha.2 2022-02-22 11:16:20 +01:00
Lukas Obermann 8102bb1a9a fix: advantage Inspire Confidence could be bought with social Incompetence
Fixes #1351
2022-02-22 11:14:09 +01:00
Lukas Obermann 07d336dbb3 feat(maptool): add project links 2022-02-22 10:51:37 +01:00
Lukas Obermann d40bdac744 refactor(maptool): resolve most TODOs 2022-02-21 15:20:30 +01:00
Lukas Obermann d3926aff86 build(release): 1.5.1-alpha.1 2022-02-21 09:36:44 +01:00
Lukas Obermann 80fdffb373 fix(maptool): no export possible without an avatar
Fixes #1348
2022-02-21 09:36:25 +01:00
Lukas Obermann 92bfcb96b0 build(ide): disable output scanning for release tasks 2022-02-18 11:50:28 +01:00
Lukas Obermann afd32c9827 build(release): 1.5.1-alpha.0 2022-02-18 11:48:57 +01:00
Lukas Obermann 3f87dca910 fix: add missing Italian translations for MapTool export
Fixes #1350
2022-02-18 11:16:14 +01:00
Lukas Obermann 2c9332c37f fix: markdown parser ignores strikethrough
The GFM plugin was missing.

Fixes #1349
2022-02-18 11:06:44 +01:00
Lukas ObermannandLector 9e9a1139d3 fix(maptool): format change for 1.11.4
Since MapTool v1.11.14 a sizeMap needs to be included, otherwise the import does
not work. Maybe the format changed happend earlier.

Co-authored-by: Lector <dragonsfire@gmx.de>
2022-02-10 18:47:31 +01:00
Lukas Obermann c5d2b0a7a4 docs(changelog): add French changelog for 1.5.0 2022-02-09 12:51:33 +01:00
Lukas Obermann f1e16d5c39 docs(changelog): remove unreleased feature
(cherry picked from commit 449f8c7bb2)
2022-02-09 12:10:05 +01:00
Lukas Obermann 449f8c7bb2 docs(changelog): remove unreleased feature 2022-02-09 11:51:59 +01:00
Lukas Obermann 53ab0e704e build(release): merge 1.5.0 2022-02-09 11:41:31 +01:00
Lukas Obermann 5b7f223211 build(release): 1.5.0 2022-02-09 11:33:17 +01:00
Lukas Obermann 5bb9c8ca7b docs(changelog): add Italian changelog translation for 1.5.0 2022-02-07 22:42:36 +01:00
Lukas Obermann ef84a38cf6 docs(changelog): add French, Italian and Dutch changelogs for 1.5.0 in English 2022-02-07 10:36:48 +01:00
Lukas Obermann d2eca82ea5 fix: add more action types that should be ignored for undo history 2022-02-06 22:31:13 +01:00
Lukas Obermann 854995cb3b docs(changelog): add German changelog for 1.5.0 2022-02-06 20:18:46 +01:00
Lukas Obermann 659ab5f8db docs(changelog): remove unnecessary issue prefixes 2022-02-06 18:39:37 +01:00
Lukas Obermann 8777b9a0cd docs(changelog): add Portuguese changelog for initial release 2022-02-06 18:39:14 +01:00
Lukas Obermann 27cbd7abd7 docs(changelog): add English changelog for 1.5.0 2022-02-06 18:38:50 +01:00
Lukas Obermann e4672041db docs(issues): fix more bug report issue form ids 2022-02-06 16:18:02 +01:00
Lukas Obermann fc8c837008 docs(issues): fix bug report issue form ids 2022-02-06 16:17:14 +01:00
Lukas Obermann a3c269dd35 docs(issues): use issue form for bug reports 2022-02-06 16:15:35 +01:00
Lukas Obermann 8753a4656e build(release): 1.5.0-alpha.9 2022-02-06 12:51:39 +01:00
Lukas Obermann bdb3eb7804 fix: typo in German name of Tradition (Illusionist)
Fixes #1239
2022-02-05 23:55:44 +01:00
Lukas Obermann c0dbb3fbcb refactor: use native array in inactive spells list 2022-02-05 17:01:31 +01:00
Lukas Obermann 06eac93221 fix: active animist powers occurred multiple times in addition list
The issue apparently only applied to animist powers, no other spellworks.

Fixes #794
2022-02-05 16:52:02 +01:00
Lukas Obermann d2d3445928 docs(changelog): add explicit MapTool export notice 2022-02-04 23:46:58 +01:00
Lukas Obermann c0d799c057 ci: hide upload progress logging for deployment 2022-02-04 20:35:02 +01:00
Lukas Obermann b1942216e5 build(release): 1.5.0-alpha.8 2022-02-04 20:17:20 +01:00
Lukas Obermann 1e21b6bcd4 refactor: remove unused action type 2022-02-04 17:51:28 +01:00
Lukas Obermann 8b18b26361 feat(logs): add small logging utility function 2022-02-04 17:35:09 +01:00
Lukas Obermann 923b7605fe fix: saving a hero clears the undo history of multiple characters
The current hero identifier was not cleared if leaving a hero view, which lead
to the action clearing the history of both the hero that actually should be
saved as well as the most recently opened character in this session.

Fixes #811
2022-02-04 17:34:14 +01:00
Lukas Obermann 589338fe74 refactor(datatypes): move predicate properties to prototype
This prevents them from showing up in console logs, which makes them less
cluttered.
2022-02-04 17:28:22 +01:00
Lukas Obermann 5f1e1f8148 style: disable redeclaration ESLint rule for the entire file 2022-02-04 17:10:06 +01:00
Lukas Obermann 1f090605a4 fix(prerelease): cult of Levtan not registered as blessed tradition 2022-02-04 16:21:28 +01:00
Lukas Obermann e558c1d80d fix: spells converted by Imitationszauberei cannot use spell enhancements
Fixes #828
2022-02-04 15:37:09 +01:00
Lukas Obermann 232795d129 fix(datatypes): find might return an existing value that is undefined 2022-02-04 13:49:52 +01:00
Lukas Obermann a49048d468 build(ide): use node debugger preview in VSCode 2022-02-04 13:25:46 +01:00
Lukas Obermann 1ce2db9cfb fix: attribute minimum must include combat techniques
The allowed maximum of combat techniques depends on the value of its highest
primary attribute. The reverse dependency - the then-required minimum - was not
applied.

Fixes #836
2022-02-04 00:03:14 +01:00
Lukas Obermann 7e31136083 fix: wrong combat type of special ability Blattschuss
Fixes #1331
2022-02-03 21:09:26 +01:00
Lukas Obermann 4c9a1f9bc5 build(ide): add css build task 2022-02-03 18:05:10 +01:00
Lukas Obermann 2a62e4231d ci: switch to ssh2-sftp-client for deployment
This fixes the unfixed vulnerability in qusly-core.
2022-02-03 15:39:50 +01:00
Lukas Obermann 41ee35ba76 fix: widened rows in seconds column of skills table on character sheet
Fixes #1342
2022-02-03 14:42:36 +01:00
Lukas Obermann cad0f26042 build(deps): upgrade electron to 17 2022-02-03 13:46:55 +01:00
Lukas Obermann 7a9da8f65e docs(changelog): remove unnecessary issue prefix 2022-02-03 13:33:18 +01:00
Lukas Obermann e36099d812 build(ide): add git push --follow-tags for use after release creation 2022-02-03 13:26:56 +01:00
Lukas Obermann 8e66f9b83a build(release): 1.5.0-alpha.7 2022-02-03 13:18:35 +01:00
Lukas Obermann f1024868ff build(ide): add tasks for creating release commits 2022-02-03 13:18:16 +01:00
Lukas Obermann a24ff8082a fix: auto-updater not working in AppImage
Fixes #753
2022-02-03 13:15:04 +01:00
Lukas Obermann 1ed0c64b0d fix: scripts do not require an active matching language
Fixes #1344
2022-02-03 12:02:41 +01:00
Lukas Obermann 83b534d3f9 fix: cannot activate special ability Weg der Schreiberin
Fixes #1233
2022-02-03 11:41:06 +01:00
Lukas Obermann 4dabbdbcd2 fix: requiring one matching languages and script requires all of them
Fixes #1343
2022-02-03 11:40:07 +01:00
Lukas Obermann 0ab65e869c fix: range brackets input influences other bracket fields
Fixes #1251
2022-02-02 13:22:55 +01:00
Lukas Obermann f2e61386ab fix: some item properties were not saved
Fixes #1252
2022-02-02 12:25:14 +01:00
Lukas Obermann e70a8b9d34 build(ide): create useful VSCode tasks 2022-02-02 12:19:47 +01:00
Lukas Obermann c3985275bb refactor: rename misleading variable 2022-02-02 12:18:05 +01:00
Lukas Obermann 8b060b6002 refactor(datatypes): add immutable methods to arrays 2022-02-02 01:38:40 +01:00
Lukas Obermann ac0cdc3778 fix: primary attribute prerequisites may not have been added as dependencies
The previous implementation relied on the tradition being added to the hero
object before the entry having the prerequisite was added, since the dependency
has been added statically, depending on the then-known traditions. But there are
situations where this is not the case, resulting in no prerequisite being added.
The new implementation does not bind the dependencies to a specific attribute,
but instead dynamically infers which is the primary attribute to then apply the
registered primary dependencies. This makes the dependencies independent of
the presence of tradition entries in the initialization phase.

Fixes #1260
2022-02-01 23:55:42 +01:00
Lukas Obermann 8b5eedeb37 fix: typo in German name of Tarnele
Fixes #1330
2022-02-01 22:05:14 +01:00
Lukas Obermann 06b57c9d15 fix: use Brawling Points in special ability Knuckle Storm description
Fixes #1340
2022-02-01 22:02:54 +01:00
Lukas Obermann 03f26214ae docs: change Apple M1 support text 2022-02-01 21:59:08 +01:00
Lukas Obermann d66afba3c1 docs: add Apple M1 native support note 2022-02-01 18:00:47 +01:00
Lukas Obermann 3574d1ba46 fix: unfamiliar spell selection in profession was optional
The selection of an unfamiliar spell for Tradition (Guild Mage), which is
included in a profession package, was not required to apply race, culture and
profession.

Fixes #1315
2022-02-01 17:51:02 +01:00
Lukas Obermann dcfba14df7 build(release): 1.5.0-alpha.6 2022-02-01 17:22:50 +01:00
Lukas Obermann 6669352d06 fix: special ability Tradition (Tsatuara-Anhängerinnen) is in wrong group
Fixes #1137
2022-02-01 17:16:09 +01:00
Lukas Obermann 9cb26586f3 fix: too large PDF output when using a sheet background
Fixes #1094
2022-02-01 17:08:30 +01:00
Lukas Obermann cd16e5314a fix: profession Sharisad gets Earthencraft bonus instead of Clothworking bonus
Fixes #1341
2022-02-01 16:53:49 +01:00
Lukas Obermann 6ba99f2f46 fix: weight column in inventory shows wrong weight in English
Fixes elyukai/optolith-client#1329
2022-02-01 16:33:52 +01:00
Lukas Obermann bd9fc1badc feat: add kilogram hint to English item dialog 2022-02-01 16:32:39 +01:00
Lukas Obermann 47e66d6546 fix: attributes on minimum value do not allow CtR over 6
Fixes elyukai/optolith-client#835
2022-02-01 16:10:31 +01:00
Lukas Obermann bba9b92e5d feat: add utilities for working with tagged unions 2022-02-01 16:02:12 +01:00
Lukas Obermann fb0a0bbbfb test: check TSDoc comments format with ESLint 2022-02-01 16:01:36 +01:00
Lukas Obermann 8bcae62f2f refactor: remove unused ESM preload module 2022-02-01 15:54:46 +01:00
Lukas Obermann 383a9c166c fix: show Hit Zone Armor tab for English Armory
Fixes elyukai/optolith-client#1328
2022-02-01 15:44:57 +01:00
Lukas Obermann 94e751fda1 build: add macOS builds for M1 2022-01-31 18:55:32 +01:00
Lukas Obermann 36c643f04a build(release): 1.5.0-alpha.5 2022-01-27 21:28:57 +01:00
Lukas Obermann 0143c28b0c ci: upgrade all workflows to Node 16 2022-01-27 21:19:54 +01:00
Lukas Obermann 793ad447b4 build(release): 1.5.0-alpha.8 2022-01-27 21:10:16 +01:00
Lukas Obermann 9f3e52b5da ci: update release workflow to use Node 14 2022-01-27 21:08:59 +01:00
Lukas Obermann a7ff9fc901 ci: update prerelease workflow to use Node 14 2022-01-27 21:08:30 +01:00
Lukas Obermann 3ea0d6ee10 build(release): 1.5.0-alpha.7 2022-01-27 21:03:58 +01:00
Lukas Obermann 83d9bd40dd build: upgrade to Electron 16 2022-01-27 21:02:50 +01:00
Lukas Obermann 8fb5f28dd0 build(release): 1.5.0-alpha.6 2022-01-27 20:26:01 +01:00
Lukas Obermann 85eba763ac test: revert to Jest 26 2022-01-27 20:21:48 +01:00
Lukas Obermann a6417ff1de test: use ts-jest preset in Jest config 2022-01-27 19:32:06 +01:00
Lukas Obermann fe85d2d79a ci: upgrade linting to Node 14 2022-01-27 19:22:43 +01:00
Lukas Obermann 4850363119 build: optimize Webpack RAM usage and build times 2022-01-27 19:12:23 +01:00
Lukas Obermann e0f3d5b1a3 style: fix all ESLint errors 2022-01-27 12:09:12 +01:00
Lukas Obermann a26b4094c2 build(release): 1.5.0-alpha.5 2022-01-27 11:23:28 +01:00
Lukas Obermann 47028ab470 Merge branch 'develop' of github.com:elyukai/optolith-client into develop 2022-01-27 11:22:00 +01:00
Lukas Obermann d8c9f52542 feat: portuguese translations 2022-01-27 11:21:49 +01:00
Lukas Obermann 29c7b4bc39 fix: missing import 2022-01-27 11:21:01 +01:00
Lukas Obermann 6b93c15aa0 fix: latest TypeScript compilation errors 2022-01-27 11:07:57 +01:00
Lukas Obermann 0620ff2ab8 Create FUNDING.yml 2022-01-23 21:36:10 +01:00
Lukas Obermann 10582541e0 build(deps): fix vulnerabilities 2021-12-13 00:11:16 +01:00
Lukas Obermann c13b557dd7 ci: linter requires database submodule
Revert: bf9d29a6dc
2021-08-03 13:37:09 +02:00
Lukas Obermann bf9d29a6dc ci: linter does not require database submodule 2021-08-03 13:31:59 +02:00
Lukas Obermann 4699d38a1a build(release): 1.5.0-alpha.4 2021-08-03 13:00:45 +02:00
Lukas Obermann b2fb0353a9 fix: maptools should provide user interface strings 2021-08-03 13:00:33 +02:00
Lukas Obermann 66077430d8 build(release): 1.5.0-alpha.3 2021-08-03 12:46:55 +02:00
Lukas Obermann 08e7817597 build(deps): fix security vulnerabilities 2021-08-03 12:46:08 +02:00
Lukas Obermann 87cec15ba9 Merge pull request #815 from elyukai/maptools_export
Maptools export
2021-08-03 12:42:56 +02:00
Lukas Obermann 63ac0abbe3 Merge branch 'develop' into maptools_export 2021-08-03 12:41:28 +02:00
Lukas Obermann 41278f8316 docs: fix changelog 2021-05-28 16:24:10 +02:00
Lukas Obermann 5d45a6084e build(release): 1.5.0-alpha.2 2021-05-28 16:23:01 +02:00
Lukas Obermann f8114c2f43 fix: "Tradition (Druid)" has invalid prerequisite in data
Fixes #1237
2021-05-28 14:57:47 +02:00
Lukas Obermann e40f995e34 fix: "Physiostabilis" name typo
Fixes #1234
2021-05-28 14:53:41 +02:00
Lukas Obermann ed74170865 fix: hook dagger is not marked as a parrying weapon
Fixes #1232
2021-05-28 14:42:15 +02:00
Lukas Obermann 8297455ddb fix: weapon advantage of Kriegsbogen has wrong DP bonus
Fixes #1074
2021-05-28 14:23:56 +02:00
Lukas Obermann 42891f070c fix: "Gaze into the Essence" spell is misspelled as "Gase into the Essence"
Fixes #1180
2021-05-28 14:19:54 +02:00
Lukas Obermann a5df7c863c fix: wrong English names for spell enhancements of Heptagramma
Fixes #848
2021-05-28 14:18:35 +02:00
Lukas Obermann ec9bd71e10 fix: special ability Deadly Thrust has SA Crossblock's rules text
Fixes #841
2021-05-28 14:16:57 +02:00
Lukas Obermann 21146eb2ab fix: wrong negative prerequisite for Aspect Knowledge entry
Fixes #1243
2021-05-28 14:12:46 +02:00
Lukas Obermann 16bd668313 fix: multiple database fixes
Fixes #854
Fixes #855
Fixes #1136
Fixes #1213
Fixes #1236
Fixes #1242
2021-05-28 14:06:52 +02:00
Lukas Obermann 6eeb430e83 build(release): 1.5.0-alpha.1 2021-05-27 22:23:05 +02:00
Lukas Obermann ae2fbad1c7 fix: equipment info crash 2021-05-27 17:49:34 +02:00
Lukas Obermann d647cf5f4e refactor: tried to reduce character sheet file size but did not work
See #1094
2021-05-26 23:11:15 +02:00
Lector e334e51685 Bugfix in MapToolExporter.ts: MD5 Hashes of the avatar is now based on the image.
Heros without Image are now exported with a stick-figure
2021-05-26 22:53:18 +02:00
Lukas Obermann 092343f45d fix: cannot remove dependent entry with multiple activations
Fixes #1097
2021-05-26 22:25:38 +02:00
Lukas Obermann 7ac4773b05 build(deps): upgrade to electron 13 and fix react-markdown integration 2021-05-26 22:24:27 +02:00
Lector 0b5713d6fd Removed Aspects. This feature is cancelled.
Finished all the rest. I think this version can be merged into the main-branch.
2021-05-26 05:09:12 +02:00
Lukas Obermann 6357b2c4b4 docs: port refactored issue templates from master branch 2021-05-24 12:20:15 +02:00
Lukas Obermann ea86624560 build(deps): fix vulnerabilities 2021-05-22 16:07:59 +02:00
Lector fe34bedc54 Added Spell-Property and Avatar-Export 2021-05-21 23:10:17 +02:00
Lukas Obermann c8094f5ef1 fix: filter professions with CTs higher than EL allows
Closes #1244
2021-05-11 11:06:54 +02:00
Lukas Obermann a02700eecc fix: brawling weapons have no parry on character sheet
Fixes #1229
2021-05-09 00:35:10 +02:00
Lukas Obermann fdde329de5 fix: profession with due to EL impossible attribute values can be selected
Fixes #1109
2021-05-09 00:26:38 +02:00
Lukas Obermann c1b2e267cb fix: spellworks from professions do not register dependencies
Fixes #1240
2021-05-08 23:19:24 +02:00
Lukas Obermann eb5a06884d fix: ini/mov modifiers on armor are handled as penalties
Fixes #1091
2021-05-08 22:06:34 +02:00
Lukas Obermann 0a59d9e5e5 fix: language specializations always cost 1 AP and are multi-buyable
Fixes #1082
2021-05-08 01:04:16 +02:00
Lukas Obermann 3ceeadbdf7 refactor: remove unnecessary logs 2021-05-07 23:46:08 +02:00
Lukas Obermann 28f260a2c4 fix: enhancements on transferred unfamiliar spells as dependency
Fixes #827
2021-05-07 23:42:49 +02:00
Lukas Obermann 5b6a4c8301 build(db): update database submodule 2021-05-06 20:22:43 +02:00
Lukas Obermann cc5ecd6f09 fix: portraits with transparency have black background
Fixes #800
2021-05-06 20:04:19 +02:00
Lukas Obermann 9179bb9ff6 perf: sort template list after filter 2021-05-06 15:34:18 +02:00
Lukas Obermann 6c63ab1b50 fix: primary attribute dropdown does not handle data correctly
Fixes #798
2021-05-06 15:00:26 +02:00
Lukas Obermann 3f9fae30a2 fix: 2H and i weapon settings missing on character sheet
Fixes #797
2021-05-06 14:42:32 +02:00
Lukas Obermann 2ad037ecbc fix: large spell selection and restrictions for Animists
Fixes #803
2021-05-06 12:38:57 +02:00
Lukas Obermann 3d755eb408 build(deps): upgrade to Electron 12 2021-05-06 12:17:30 +02:00
Lukas Obermann 2c6da7bd75 build: package-lock.json update 2021-05-06 01:29:24 +02:00
Lukas Obermann ccd7decc83 fix: include latest database changes 2021-05-06 01:28:26 +02:00
elyukai 397abe2b4a fix: previous database fixes
See #792, #824, #832, #850, #851, #1139, #1224
2021-05-05 23:06:54 +02:00
elyukai 3b05e69e27 fix: weight of Elves is not generated correctly
Fixes #813
2021-05-05 22:57:22 +02:00
elyukai 723e9106eb fix: patch security vulnerabilities 2021-05-05 22:55:57 +02:00
elyukai eef960f496 docs: add UI scaling hint for Linux 2021-05-04 11:03:19 +02:00
Lukas Obermann 6b706d3adb docs: improve sort order for ambiguity template 2021-03-24 15:05:03 +01:00
Lukas Obermann d3a6df526d docs: fix publication ambiguity name 2021-03-24 15:04:02 +01:00
Lukas Obermann a098a97509 docs: update question issue template
Update question issue template to be for questions to Ulisses only, since standard questions can be created as discussion instead.
2021-03-24 13:51:44 +01:00
Lukas Obermann 093a726cf2 Merge pull request #1125 from elyukai/Race-prerequisite-does-not-display-race-required-#1093
Race prerequisite does not display race required #1093
2021-03-24 12:15:34 +01:00
Pepelios 9d033d23df Update WikiActivatableInfo.tsx
remove prefixRace import as never used anymore
2021-03-24 09:02:25 +01:00
Lukas Obermann 912642a5ee Merge pull request #1135 from elyukai/issue-template/publication-bug-report
Update: issue template publication-bug-report.md
2021-03-23 21:56:29 +01:00
Lukas Obermann b92c19a3c8 Merge branch 'master' into issue-template/publication-bug-report 2021-03-23 21:52:45 +01:00
Lukas Obermann c2afd39946 Merge pull request #1134 from elyukai/issue-template/new-book-data
Update: issue template new-book-data.md
2021-03-23 21:45:17 +01:00
Lukas Obermann 444cb12892 Merge branch 'master' into issue-template/new-book-data 2021-03-23 21:42:51 +01:00
Lukas Obermann b1d7ad9ae1 Merge pull request #1133 from elyukai/issue-template/feature_request
Update: issue template feature_request.md
2021-03-23 21:42:35 +01:00
Lukas Obermann f16a8fe249 Merge branch 'master' into issue-template/feature_request 2021-03-23 21:35:02 +01:00
Käthe 764731d02f Implement Markdown Style Guidelines
... and small text changes
2021-03-23 21:34:15 +01:00
Lukas Obermann 02f24b24bc Merge pull request #1132 from elyukai/issue-template/bug-report
Update: issue template bug_report.md
2021-03-23 21:33:30 +01:00
Käthe ee30c4eaea Implement Markdown Style Guidelines 2021-03-23 21:29:49 +01:00
Käthe 8de7b51895 Shorten caption 2021-03-23 21:28:18 +01:00
Käthe 2c1cea9ef8 Implement Markdown Style Guidelines 2021-03-23 21:26:31 +01:00
Käthe f0e8ce17ab Implement Markdown Style Guide 2021-03-23 21:24:27 +01:00
Käthe b6112666b8 Update: issue template publication-bug-report.md
Better readability.
2021-03-23 21:00:50 +01:00
Käthe 99123d5ec0 Update: issue template new-book-data.md
Better readability.
2021-03-23 20:59:35 +01:00
Käthe 17424878e7 Update: issue template feature_request.md
For better readability after filling out the form.
2021-03-23 20:53:48 +01:00
Käthe e44e6f8832 Update: issue template bug_report.md
For better readability after filling out the form.
2021-03-23 20:51:44 +01:00
Pepelios c33e4f1821 Race prerequisite does not display race required #1093
removed "prefixRace" because it added an additional R_ to the lookup value for the races. e.g. value was R_4 (for dwarfs) but after the wrong additional prefixRace, the lookupvalue was R_R_4, which never could be found in any lookup table.
2021-03-22 18:15:54 +01:00
Lukas Obermann c1dab5b312 docs: add required software section 2021-03-19 21:15:24 +01:00
elyukai 31cf5d6c54 docs: add Philipp to imprint 2021-03-18 19:55:21 +01:00
elyukai 63243a2e9d docs: updated AUTHORS 2021-03-18 13:06:28 +01:00
Lukas Obermann 9017dff1fc Changes and prefilled spaces 2021-02-15 20:16:29 +01:00
Lukas Obermann 6a479949e7 docs: database rework issue template adjustments 2021-02-09 12:59:10 +01:00
Lector 228c401666 Money export now works. Tryed to fix attributes. 2021-02-08 12:25:03 +01:00
Lukas Obermann 052b5bbf2f Merge pull request #845 from elyukai/dependabot/npm_and_yarn/electron-10.2.0 2021-01-29 11:46:20 +01:00
dependabot[bot] f30efc84ce build(deps-dev): Bump electron from 10.1.3 to 10.2.0
Bumps [electron](https://github.com/electron/electron) from 10.1.3 to 10.2.0.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v10.1.3...v10.2.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-28 19:45:23 +00:00
Lector 9a2902c9e9 First semi-functioning Version of MapToolExporter.ts 2021-01-17 16:15:30 +01:00
Lector 9b44e29738 Continued work on MapToolExporter.ts 2021-01-12 22:05:55 +01:00
Lector 096af99794 Continued work on MapToolExporter.ts 2021-01-12 07:40:19 +01:00
Lector 073064c030 Continued work on MapToolExporter.ts
Added Strings for MapToolExporter.ts
2021-01-09 14:50:03 +01:00
LectorandLukas Obermann 1ff11d6e9a Update src/App/Utilities/MapToolExporter.ts
Co-authored-by: Lukas Obermann <lukas.obermann@icloud.com>
2021-01-03 21:45:56 +01:00
Lector fa1c527381 Merge branch 'develop' into maptools_export
# Conflicts:
#	app/Database

Added maptools-Export-Button to PDF-Export (not finished yet)
2021-01-03 11:53:51 +01:00
elyukai 272095d0b9 build(submodule): bug fixes, mainly for Dutch
See #805
See #814
2020-12-23 16:03:17 +01:00
Lector f416587e33 work on compilable version 2020-12-23 14:42:26 +01:00
Lector cb3a4a24f2 Bugfixes in MapToolExporter.ts 2020-12-21 16:16:04 +01:00
Lector 20a0c7a055 Merge branch 'develop' into maptools_export
# Conflicts:
#	app/Database
#	package-lock.json
#	src/App/Views/Profile/PersonalData.tsx

Also continued work on MapToolExporter.ts
2020-12-18 13:58:59 +01:00
Lector 2ec6fd0ab5 Small changes for bugfix 2020-12-17 12:55:05 +01:00
Lector bea154d6e6 Added Zip-Library.
Worked on MapToolExporter.ts
Changed UI of the Export-Button
2020-12-09 09:15:30 +01:00
Lector 728c7e15a8 Continued work on MapToolExporter.ts 2020-12-08 10:49:47 +01:00
LectorandLukas Obermann 182cb92a20 Update src/App/Utilities/MapToolExporter.ts
Co-authored-by: Lukas Obermann <lukas.obermann@icloud.com>
2020-12-07 20:03:49 +01:00
LectorandLukas Obermann 0531ffb657 Update src/App/Utilities/MapToolExporter.ts
Co-authored-by: Lukas Obermann <lukas.obermann@icloud.com>
2020-12-07 19:47:43 +01:00
Lukas Obermann f9b4ab6ce4 refactor: added properties to weapon models 2020-12-07 17:55:41 +01:00
Lector 20242a117d misc improvements.
still doesnt work and i need some more advice in MapToolExporter.ts
2020-12-07 17:00:46 +01:00
LectorandLukas Obermann 0cf4c70b5c Update src/App/Actions/HerolistActions.ts
Co-authored-by: Lukas Obermann <lukas.obermann@icloud.com>
2020-12-02 23:54:34 +01:00
Lector a577f6b783 Code-Style teilweise angepasst 2020-12-02 22:56:35 +01:00
Lector d445a3a378 First prototype of the MapToolExporter.ts. There is only the content-xml exported right now. A lot of values need to be determined correctly. Right now there are a lot of dummy-values to check the XML-Output. 2020-11-29 01:23:07 +01:00
Lukas Obermann c58279cc95 fix: typo in effect of Bliksemblind spell (Dutch)
See #805.
2020-11-24 15:28:31 +01:00
Lukas Obermann d63a494305 build: fixed last version in changelog 2020-11-13 17:44:35 +01:00
Lukas Obermann 1df5ac8fee build: added missing prerelease changelog 2020-11-13 17:43:04 +01:00
Lukas Obermann 3edf16d8be build(release): 1.4.3-alpha.1 2020-11-13 17:06:25 +01:00
Lukas Obermann e63713687e fix(sheets): removed margin of hit zone sheet
Closes #788.
2020-11-13 17:06:01 +01:00
Lukas Obermann a35611b4d9 docs(release): added missing old German changelogs 2020-11-13 13:48:47 +01:00
Lukas Obermann 390dcb616a fix: adding LE should affect CON
It affected the STR minimum instead of the CON minimum.

Closes #787.
2020-11-13 12:29:26 +01:00
Lukas Obermann 8055218c8f build(release): added previous changelogs 2020-11-13 00:42:06 +01:00
Lukas Obermann 2cb392e511 build: automate excluding unfinished content
Automate removing unfinished languages and books from stable releases.
2020-11-12 18:19:43 +01:00
Lukas Obermann 8392e368ff Merge pull request #786 from elyukai/feature/restrict-ci-runs
ci: restrict push/pull_request events
2020-11-12 17:02:29 +01:00
Lukas Obermann 692e4011b5 build: fixed release scripts
They used the  --dry-run flag before.
2020-11-12 17:01:57 +01:00
Lukas Obermann bcd3bd0a64 ci: restrict push/pull_request events
This way, push events should not be triggered if pull_requests are made
towards on of the main branches.
2020-11-12 16:58:21 +01:00
Lukas Obermann 93f95c76be Merge pull request #785 from elyukai/feature/automatic-versioning
build: automatic versioning
2020-11-12 16:55:24 +01:00
Lukas Obermann 1af9bf192f build: finished standard-version config 2020-11-12 16:50:30 +01:00
Lukas Obermann 53fbaad5c1 build: added standard-version scripts 2020-11-12 04:04:14 +01:00
Lukas Obermann 4c9caef67a build: added standard-version with basic config 2020-11-12 04:01:21 +01:00
Lukas Obermann ae652e2e60 Merge pull request #782 from elyukai/feature/semantic-commits
feat: semantic commits
2020-11-12 00:51:13 +01:00
Lukas Obermann f18a032ce6 build: fixed TS errors due to bucklescript upgrade 2020-11-12 00:45:15 +01:00
Lukas Obermann 09f98bc094 style: fixed import issues due to last style fixes 2020-11-12 00:24:16 +01:00
Lukas Obermann dd77fc95dd style: fixed dependency upgrade errors
The typescript-eslint upgrade caused errors. Because some types and
values need to be named the same, ignore comments were added to fix
those cases. Remaining style issues due to the upgrade were fixed.
2020-11-12 00:17:57 +01:00
Lukas Obermann f63ea3c2d9 docs: added conventional commits note 2020-11-10 14:29:33 +01:00
Lukas Obermann 32aa20a890 ci: added commitlint workflow 2020-11-10 13:44:08 +01:00
Lukas Obermann 4bbe18092c build: added commitlint 2020-11-10 13:11:30 +01:00
Lukas Obermann acc58c37b0 build: Updated version and database 2020-11-08 22:48:36 +01:00
Lukas Obermann ad1c78ea58 Merge branch 'master' of https://github.com/elyukai/optolith-client 2020-11-08 17:35:46 +01:00
Lukas Obermann b4b477ec73 fix: Updated database to reflect changes from master 2020-11-08 17:35:41 +01:00
Lukas Obermann e11cbd6c52 Merge pull request #779 from elyukai/release/1.4.2
Release 1.4.2
2020-11-08 17:33:46 +01:00
Lukas Obermann b3f9010ef0 Merge 'master' into 'release/1.4.2' 2020-11-08 17:30:51 +01:00
Lukas Obermann 030a3270c3 version: Bumped to 1.4.2 2020-11-08 17:24:13 +01:00
Lukas Obermann 6b9d974db9 buid: Update database to reflect final changes 2020-11-08 17:21:01 +01:00
Lukas Obermann fdbdb24dee docs: Added changelog to reflect latest database changes 2020-11-08 16:41:11 +01:00
Lukas Obermann 42787b8912 build: Updated database to reflect latest changes 2020-11-08 16:36:42 +01:00
Lukas Obermann 7be6ffdd71 docs: Added French changelog for 1.4.2 2020-11-08 16:22:41 +01:00
Lukas Obermann 9ac3fed26e Merge pull request #776 from elyukai/JoveToo-patch-1
Dutch translation
2020-11-08 15:54:36 +01:00
Lukas Obermann f366309fb6 Merge branch 'develop' into JoveToo-patch-1 2020-11-08 15:51:28 +01:00
Lukas Obermann 21b5a4d568 Merge pull request #777 from LorenzCK/feature/ITA-1.4.2
Italian translation of 1.4.2 changelog
2020-11-08 15:51:02 +01:00
Lorenz Cuno Klopfenstein 9baac1a58e Italian translation of 1.4.2 changelog 2020-11-06 22:23:03 +01:00
JoveToo c35f238fd7 Update CHANGELOG.md 2020-11-05 19:32:54 +01:00
JoveToo a40e825f36 Dutch translation 2020-11-05 18:56:25 +01:00
Lukas Obermann 96ef705585 version: Bumped version to 1.4.2-alpha.7 2020-11-05 16:30:13 +01:00
Lukas Obermann c441e1696b fix: Only adjust page size on Mac
See #748 for details.
2020-11-05 16:27:54 +01:00
Lukas Obermann 2a4a2bcf8f build: Fixed tsconfig for webpack
Webpack requires an outut from the compiler.
2020-11-05 15:28:21 +01:00
Lukas Obermann c21a48866c version: Bumped version to 1.4.2-alpha.6 2020-11-05 15:12:32 +01:00
Lukas Obermann 349c83b6e4 docs: Updated changelog to reflect latest changes 2020-11-05 15:11:04 +01:00
Lukas Obermann 8d566f5bd1 build: Updated database to reflect latest changes 2020-11-05 15:03:34 +01:00
Lukas Obermann 775d35377f fix: Blank pages if texture is used
Reduces the height of the page on Mac and Linux.

Closes #748.
2020-11-05 14:42:31 +01:00
Lukas Obermann b24742206c refactor: Change main field to current main script 2020-11-05 14:09:32 +01:00
Lukas Obermann f630a28797 refactor: Remove unused renderer entry file 2020-11-05 12:23:52 +01:00
Lukas Obermann c6ee377057 build: Do not emit TSC output
TypeScript should only check types since building is done by webpack
2020-11-05 12:23:29 +01:00
Lukas Obermann 5ea3820113 build: Upgraded lock file version 2020-11-05 12:22:39 +01:00
Lukas Obermann acb6177317 build: Added CSS watcher and updated sass 2020-11-05 12:16:38 +01:00
Lukas Obermann 8c143fe12f fix: Missing portrait placeholder shown on character sheet
Closes #759.
2020-11-04 11:24:54 +01:00
Lukas Obermann 51abcdad5f fix: Allow uppercase image extensions
Closes #762.
2020-11-04 11:01:27 +01:00
Lukas Obermann 7e459970cc version: Bump to 1.4.2-alpha.5 2020-11-04 09:43:08 +01:00
Lukas Obermann 88f03e0e21 build: Updated databaseto reflect latest changes 2020-11-04 09:04:36 +01:00
Lukas Obermann b70c94358c docs: Updated changelog 2020-11-04 09:02:46 +01:00
Lukas Obermann 28ac73c7cb docs: Added Webpack changes to CONTRIBUTING 2020-10-29 17:27:36 +01:00
Lukas Obermann 3078f1f465 Bumped version to 1.4.2-alpha.4 2020-10-29 16:53:56 +01:00
Lukas Obermann 941acabc7d Merge pull request #769 from elyukai/feature/webpack
build: Added webpack
2020-10-29 16:52:42 +01:00
Lukas Obermann c6e36ed96b build: Added webpack 2020-10-29 16:47:16 +01:00
Lukas Obermann 23e413b53f build: Bumped version to 1.4.2-alpha.3
Forgot to change it to 1.4.2-alpha.2, thus twice increased.
2020-10-14 15:41:51 +02:00
Lukas Obermann d8a809bf92 docs: Added changelog for Ruf des Waldes typo
See #755.
2020-10-14 15:29:47 +02:00
Lukas Obermann 7e7c468dca docs: Updated changelogs to reflect latest changes 2020-10-14 14:54:55 +02:00
Lukas Obermann 5c3f0c27f9 fix: Followers of the Golden One allows IC C
Followers of the Golden One only allows liturgical chants up to IC B,
but it was allowed up to IC C.

Closes #754.
2020-10-14 13:36:50 +02:00
Lukas Obermann ee8033b62c fix: Allow pet skills to span multiple lines
The single line was too small to fit all relevant skills for a pet.

Closes #733.
2020-10-14 11:30:18 +02:00
Lukas Obermann b5c9ede02a chore: Bumped version number to 1.4.2-alpha.1 2020-10-13 17:01:30 +02:00
Lukas Obermann 63c93204ac docs: Updated changelog for 1.4.2-alpha.1 2020-10-13 17:00:28 +02:00
Lukas Obermann 95d6994c65 fix: Multiple skill styles are allowed
Closes #732.
2020-10-13 16:02:25 +02:00
Lukas Obermann 8ce6767b58 fix: Primary damage flat bonus if not present
Apply the primary attribute damage bonus to the flat damage even if the
base item does not have flat damage.

Related: #737.
2020-10-13 15:58:25 +02:00
Lukas Obermann 5da07d8638 fix: Apply Combat Techniques second selection
The profession option has not been applied to the character.

Closes #647.
2020-10-13 13:34:49 +02:00
Lukas Obermann 48bd37ae3e fix: Overlay overflows bottom edge 2020-10-13 12:57:16 +02:00
Lukas Obermann c52d5a4897 fix: Top margin of overlays too small
Closes #727.
2020-10-13 12:28:33 +02:00
Lukas Obermann 4123cc66e3 refactur: Improved main process logs 2020-10-13 00:43:47 +02:00
Lukas Obermann 0cbde7c3cc fix: Combat Techniques didnt use dedicated min/max calculation
Combat techniques didnt use the dedicated file for calculating if it can
be decreased and/or increased.

Closes #749.
2020-10-13 00:20:57 +02:00
Lukas Obermann 13921f06c3 refactor: Switched back to CommonJS modules 2020-10-13 00:00:14 +02:00
Lukas Obermann ab8e5ed632 feat: Upgrade packages 2020-10-12 23:59:50 +02:00
Lukas Obermann ab1cf43a37 Bumped version to 1.4.2-alpha.0 2020-09-28 18:33:31 +02:00
Lukas Obermann d63375084a Switch back to develop 2020-09-28 18:32:03 +02:00
Lukas Obermann 1289d95391 Merge pull request #722 from elyukai/release/1.4.0
Release 1.4.0 Backport
2020-09-28 18:30:57 +02:00
Lukas Obermann 8ce525e3ab Hotfix Italian version 2020-09-28 17:43:20 +02:00
Lukas Obermann 8ff055276e Merge pull request #721 from elyukai/release/1.4.0
Release 1.4.0
2020-09-28 16:45:03 +02:00
Lukas Obermann dbcfcdfdcb Only allow numbers in purse text fields 2020-09-28 16:40:51 +02:00
Lukas Obermann daf95e35b3 Fixed tests for all branches 2020-09-28 15:40:08 +02:00
Lukas Obermann f6c16227df Added relevant branches to GitHub Actions tests 2020-09-28 14:50:03 +02:00
Lukas Obermann a6ee74dfd8 Merge branch 'master' into release/1.4.0 2020-09-28 14:47:23 +02:00
Lukas Obermann 66d76426a7 Bumped version to 1.4.0 2020-09-28 14:44:44 +02:00
Lukas Obermann 6b281c4057 Switched database branch to master 2020-09-28 14:40:08 +02:00
Lukas Obermann c01d91c187 Updated database 2020-09-28 14:33:31 +02:00
Lukas Obermann 22da727071 Bumped version to 1.4.0-alpha.16 2020-09-28 14:29:05 +02:00
Lukas Obermann 11ffa12eb7 Purse Earn/Pay small refactorings 2020-09-28 14:27:37 +02:00
Lukas Obermann 2b5b87f820 Updated changelogs 2020-09-28 14:20:35 +02:00
Lukas Obermann b0f7feca02 Merge pull request #720 from elyukai/bugfix/giftverstaerkung-texts
fix: SA Giftverstärkung text
2020-09-28 13:31:17 +02:00
Lukas Obermann d223d380cb Switched submodule branch 2020-09-28 13:30:12 +02:00
Lukas Obermann 4130eb180d Updated database 2020-09-28 13:20:46 +02:00
Lukas Obermann 549b98b67f Merge pull request #719 from elyukai/bufgix/json-export-missing-extension
fix: JSON export missing extension
2020-09-28 13:07:35 +02:00
Lukas Obermann 56c83ee4b5 Added JSON extension to hero name 2020-09-28 13:06:20 +02:00
Lukas Obermann eeb94be654 Updated French changelog 2020-09-28 13:01:45 +02:00
Lukas Obermann bc77542759 Bumped version to 1.4.0-alpha.15 2020-09-25 23:31:49 +02:00
Lukas Obermann aa66e9cab6 Merge pull request #716 from elyukai/JoveToo-patch-1
Dutch translation
2020-09-25 01:17:36 +02:00
JoveToo 637e8965d3 Update CHANGELOG.md 2020-09-25 01:16:35 +02:00
Lukas Obermann 151370fb77 Merge branch 'develop' into JoveToo-patch-1 2020-09-25 01:09:27 +02:00
JoveToo 1fd8caaafc Dutch translation 2020-09-25 01:06:22 +02:00
Lukas Obermann 2b36e78fcd Merge pull request #715 from elyukai/feature/temporary-custom-entries
feat: Custom Entries – temporary solution
2020-09-25 00:42:58 +02:00
Lukas Obermann 0d4f6d3a36 Updated database to include all custom entry translations 2020-09-25 00:42:42 +02:00
Lukas Obermann 074f75a033 Updated changelogs 2020-09-24 15:25:16 +02:00
Lukas Obermann d9b8223ade Added custom entry feature
Dutch translation missing
2020-09-24 14:15:15 +02:00
Lukas Obermann 875fe0e948 Updated database to include new entries
Entries may include placeholder translations, though
2020-09-24 13:09:02 +02:00
Lukas Obermann 655658c59a Merge pull request #710 from elyukai/bugfix/zugvoegel-multiple-traditions
fix: SA Zugvoegel multiple traditions
2020-09-20 00:41:38 +02:00
Lukas Obermann 872728bb35 Fixed SA Zugvoegel functionality if a chant is available
for both the unfamiliar and the familiar tradition
2020-09-20 00:40:02 +02:00
Lukas Obermann 286c0babc5 Fixed TS errors 2020-09-20 00:19:24 +02:00
Lukas Obermann 88204a54a1 Disable checking updates on Linux
AppImageUpdater should take care of this itself
2020-09-20 00:16:14 +02:00
Lukas Obermann 76b2183954 Now always shows update button 2020-09-19 21:32:32 +02:00
Lukas Obermann 43bdc12cb7 Bumped version to 1.4.0-alpha.14 2020-09-19 20:31:15 +02:00
Lukas Obermann 3cef003549 Updated changelog to reflect current changes 2020-09-19 20:29:22 +02:00
Lukas Obermann 9cbb70ba52 Updated database for #609 2020-09-19 00:32:08 +02:00
Lukas Obermann bd7161062c Merge pull request #707 from elyukai/bugfix/enemy-sense-combat-techniques
fix: SA Enemy Sense applicable combat techniques
2020-09-18 23:28:01 +02:00
Lukas Obermann 080670ced1 Updated database 2020-09-18 23:26:50 +02:00
Lukas Obermann aec0cac9ac Merge pull request #706 from elyukai/bugfix/disable-updater
fix: Disable updater on systems where it does not work
2020-09-18 23:08:48 +02:00
Lukas Obermann 815f4e6344 Added a function to check if updates are possible
Not sure if it works with .tar.gz packaged for Linux
2020-09-18 23:05:25 +02:00
Lukas Obermann cf4b44b5b0 Merge pull request #705 from elyukai/bugfix/duplicate-english-armors
fix: Duplicated English armors
2020-09-18 21:59:14 +02:00
Lukas Obermann a61fa495b3 Updated database 2020-09-18 21:57:53 +02:00
Lukas Obermann fde91bdcab Merge pull request #704 from elyukai/bugfix/gletscherform-effect
fix: Gletscherform effect text
2020-09-18 21:47:06 +02:00
Lukas Obermann 16e39566cc Updated database 2020-09-18 21:46:04 +02:00
Lukas Obermann 7ac849be21 Merge pull request #703 from elyukai/bugfix/gift-melken-uses
Fix: SA Gift melken grants use
2020-09-18 21:39:48 +02:00
Lukas Obermann fab2c017b8 Update database 2020-09-18 21:38:31 +02:00
Lukas Obermann a608e925df Merge pull request #702 from elyukai/bugfix/sheet-length-values-not-floored
Fix: Floor values with a unit on character sheet
2020-09-18 21:22:22 +02:00
Lukas Obermann 49dd8ab6be Fixed flooring values with a unit 2020-09-18 21:21:11 +02:00
Lukas Obermann 6a422fa528 Merge pull request #701 from elyukai/bugfix/profession-second-ct-bonus
Fix: Second combat technique bonus in professions
2020-09-18 21:09:15 +02:00
Lukas Obermann 35e63a40b1 Fixed disabling active combat technique in the other list 2020-09-18 21:07:13 +02:00
Lukas Obermann 31522b85b4 Fixed displaying second combat technique bonus in wiki 2020-09-18 21:06:48 +02:00
Lukas Obermann d0960fa4f8 Merge pull request #700 from elyukai/bugfix/arcane-traditions-prerequisites
Fix: Arcane traditions prerequisites
2020-09-18 19:47:13 +02:00
Lukas Obermann a46bdd7fff Merged database 2020-09-18 19:43:25 +02:00
Lukas Obermann 5276dea8c4 Merge branch 'develop' into bugfix/arcane-traditions-prerequisites 2020-09-18 19:41:14 +02:00
Lukas Obermann 526a80d168 Added new arcane tradition univ parser
Added arcane traditions as fixed select options
Removed special logic not needed because of fixed options
2020-09-18 19:39:54 +02:00
Lukas Obermann 06d175904a Merge pull request #699 from elyukai/bugfix/arcane-dancer-professions
Fix: Arcane Dancer professions
2020-09-18 10:57:47 +02:00
Lukas Obermann b3ea4e62b0 Switched database to develop 2020-09-18 10:57:14 +02:00
Lukas Obermann 82baf13397 Changed database 2020-09-18 10:54:28 +02:00
Lukas Obermann 152e2a133f Merge pull request #698 from elyukai/bugfix/hexenblick-restriction
Fix: Witch's Gaze restriction
2020-09-16 22:09:46 +02:00
Lukas Obermann 445f67fd06 Merge branch 'develop' into bugfix/hexenblick-restriction 2020-09-16 22:06:31 +02:00
Lukas Obermann dcdbd15118 Fixed Witch's Gaze restriction 2020-09-16 22:05:04 +02:00
Lukas Obermann b086de5066 Merge pull request #697 from elyukai/bugfix/aspect-knowledge
Fix: Aspect Knowledge
2020-09-16 21:39:34 +02:00
Lukas Obermann 666c729e43 Fixed aspect knowledge 2020-09-16 21:36:54 +02:00
Lukas Obermann e5aed52707 Fixed Liturgical Chant list keys
Removed innecessary traces
2020-09-16 21:04:52 +02:00
Lukas Obermann 669ce2057d Merge pull request #695 from elyukai/bugfix/additional-lp-with-permanent
Bugfix: Issues with adding LP
2020-09-14 01:00:03 +02:00
Lukas Obermann 7fd7d277c7 Fixed maximum of LE that can be added if CON is 8 2020-09-14 00:48:07 +02:00
Lukas Obermann 3d750ce323 Fixed disabled function in derived characteristic component 2020-09-14 00:47:19 +02:00
Lukas Obermann 4bc8bb8ebf Merge pull request #693 from elyukai/bugfix/fachwissen-unexpected-chars
Bugfix: SA Fachwissen unexpected chars
2020-09-14 00:34:42 +02:00
Lukas Obermann f9a13d56bc Fixed unexpected character in rendered name of SA Fachwissen 2020-09-14 00:33:38 +02:00
Lukas Obermann 34c72bf6ac Merge pull request #691 from elyukai/docs/css-build-in-starter-guide
Docs: CSS build in starter guide
2020-09-13 01:21:05 +02:00
Lukas Obermann e4bb5385f0 Added build shorthand
Added CSS build to first run descriptions
2020-09-13 01:19:58 +02:00
Lukas Obermann 25cddaddc5 Merge pull request #688 from elyukai/bugfix/list-header-text-align
Fix list header text align
2020-09-12 12:02:57 +02:00
Lukas Obermann 78f10da735 Fixed list header text align 2020-09-12 12:01:20 +02:00
Lukas Obermann 3403502004 Merge pull request #687 from elyukai/bugfix/kind-der-natur-multiselect
Enable multiselect for Kind der Natur and similar special abilities
2020-09-11 23:36:09 +02:00
Lukas Obermann 910a006c28 Fixes #649.
Added multiple options to special ability selection.
Sums up AP value.
Displays all skills' names in parenthesis.
2020-09-11 23:30:32 +02:00
Lukas Obermann 8b4cb2b95d Merge pull request #684 from elyukai/feature/remove-tracked-scss-build
Feature: Remove tracked SCSS build from repo
2020-09-11 01:27:39 +02:00
Lukas Obermann ad4f2ecf16 Merge branch 'develop' into feature/remove-tracked-scss-build 2020-09-11 01:26:35 +02:00
Lukas Obermann c04ce290ec Added built CSS to .gitignore 2020-09-11 01:24:15 +02:00
Lukas Obermann cfc8dc65fb Added Sass build to build workflows 2020-09-11 01:23:24 +02:00
Lukas Obermann dad8ffe2b7 Remove SCSS build 2020-09-11 01:22:44 +02:00
Lukas Obermann 99031a2200 Merge pull request #683 from elyukai/bugfix/list-item-info-text-no-overflow
Fix: Secondary list item texts were not restricted in size
2020-09-11 01:19:09 +02:00
Lukas Obermann 174f4d9cc2 Forgot to recompile SCSS 2020-09-11 01:15:59 +02:00
Lukas Obermann 5e6ec3290c Replaced magic number with enum value 2020-09-11 01:15:04 +02:00
Lukas Obermann 8995884070 Added overflow restriction for secondary list item text 2020-09-11 01:14:49 +02:00
Lukas Obermann f48ff3bec8 Updated database 2020-09-11 00:10:20 +02:00
Lukas Obermann 8a25ff9177 Added OS string to update url 2020-09-10 10:44:14 +02:00
Lukas Obermann b3d9ad082e Bumped electron-builder
Simplyfied build.js
Added logging to electron error
2020-09-09 23:33:44 +02:00
Lukas Obermann ea995f4b85 Bumped Optolith version 2020-09-09 22:53:06 +02:00
Lukas Obermann 7cf2c253db Moved defining prerelease folder to scripts 2020-09-09 22:38:12 +02:00
Lukas Obermann 8de2e4287f Some GitHub Actions naming adjustments 2020-09-09 21:50:15 +02:00
Lukas Obermann 9f8e8f4ac3 Fixed switch fallthrough 2020-09-09 20:28:38 +02:00
Lukas Obermann 6467d0bdfb Fixed JS script name 2020-09-09 20:24:37 +02:00
Lukas Obermann b3a3476d66 Reworked build scripts 2020-09-09 20:21:21 +02:00
Lukas Obermann 2c102af348 Added environment variables to build step 2020-09-09 19:37:29 +02:00
Lukas Obermann e21280f809 Added French bugfix changelog
Bumped version
2020-09-09 19:09:04 +02:00
Lukas Obermann 3038efe55d Fixed build trigger 2020-09-09 18:53:35 +02:00
Lukas Obermann 5fd969f0f6 Merge pull request #682 from elyukai/feature/github-actions-releases
Release Workflows
2020-09-09 18:49:13 +02:00
Lukas Obermann 8231129cd8 Removed Travis 2020-09-09 18:47:39 +02:00
Lukas Obermann 57f087f8e0 Switched to array 2020-09-09 18:46:55 +02:00
Lukas Obermann 5a094efd31 Fixed release regex 2020-09-09 18:44:47 +02:00
Lukas Obermann 3d60a25f3a Fixed prerelease regex #2 2020-09-09 18:44:19 +02:00
Lukas Obermann c68634b3ef Fixed tag regex 2020-09-09 18:36:43 +02:00
Lukas Obermann 07d4cb5cfe Added Releases build workflow 2020-09-09 18:36:07 +02:00
Lukas Obermann 69658b361b Fixed job id 2020-09-09 18:34:43 +02:00
Lukas Obermann facf25cf2a Added prerelease builds config 2020-09-09 18:32:05 +02:00
Lukas Obermann 05fef37a1a Fixed stable Mac script name 2020-09-09 18:30:53 +02:00
Lukas Obermann 3bd8ed015d Changed prerelease script names 2020-09-09 18:30:08 +02:00
Lukas Obermann 8b4a632ee4 Create prerelease workflow 2020-09-09 18:15:23 +02:00
Lukas Obermann f01ab59b67 Merge pull request #631 from elyukai/dependabot/npm_and_yarn/electron-8.2.4
Bump electron from 8.2.0 to 8.2.4
2020-09-09 17:40:52 +02:00
Lukas Obermann 1b5c718295 Merge branch 'master' into dependabot/npm_and_yarn/electron-8.2.4 2020-09-09 17:36:58 +02:00
Lukas Obermann 6162e811c5 Merge pull request #644 from elyukai/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-09-09 17:36:44 +02:00
Lukas Obermann 4383b420ac Merge pull request #681 from elyukai/bugfix/typescript-emit-esmodules
Bugfix: TypeScript emit ES Modules
2020-09-09 17:35:22 +02:00
Lukas Obermann d9e89d294d Changed default tsconfig module value to ES modules 2020-09-09 17:33:43 +02:00
Lukas Obermann aa83244e85 Merge pull request #679 from elyukai/feature/database-submodule
Feature: Database Submodule
2020-09-09 15:59:40 +02:00
Lukas Obermann c71641c7b1 Updated CONTRIBUTING to include the submodule 2020-09-09 15:55:53 +02:00
Lukas Obermann 07efadfbf9 Removed removed scripts from Actions 2020-09-09 15:49:45 +02:00
Lukas Obermann 714a3c8d7a Fixed YAML read function
Fixed Travis build config
Removed now unnecessary scripts for Travis
2020-09-09 15:45:57 +02:00
Lukas Obermann b7cd6d8050 Merge branch 'feature/database-submodule' of https://github.com/elyukai/optolith-client into feature/database-submodule 2020-09-09 15:20:30 +02:00
Lukas Obermann 2572d8991f Removed now unnecessary scripts
Fixed TS errors
2020-09-09 15:20:26 +02:00
Lukas Obermann ac900abad8 Added submodule option 2020-09-09 15:09:20 +02:00
Lukas Obermann 56452f154b Added submodule 2020-09-09 15:01:39 +02:00
Lukas Obermann 46f08abf04 Added changelog for latest pull requests 2020-09-09 13:53:34 +02:00
Lukas Obermann c63c30d5e6 Merge pull request #678 from elyukai/bugfix/attributes-minimum-for-checks
Bugfix: Attribute Minimum for Checks
2020-09-09 13:51:05 +02:00
Lukas Obermann 4511ece3b8 Merge branch 'develop' into bugfix/attributes-minimum-for-checks 2020-09-09 13:10:30 +02:00
Lukas Obermann 06217988bd Integrated attribute skill check minimum functions 2020-09-09 13:08:32 +02:00
Lukas Obermann f409358015 Downgraded TypeScript to fix 356 unexpected errors (MINOR upgrade)
Replaced @ts-expect-error with @ts-ignore since 3.8.3 doesnt support that feature
2020-09-09 12:48:48 +02:00
Lukas Obermann 080e760600 Fixed tests 2020-09-09 12:28:16 +02:00
Lukas Obermann 2772154352 Moved some testing files to TS, but does not work yet 2020-09-09 00:30:07 +02:00
Lukas Obermann d03fd862d4 Added cache initialization 2020-09-09 00:29:06 +02:00
Lukas Obermann 86d3a6aa13 Upgraded jest and ts-jest 2020-09-08 20:49:39 +02:00
Lukas Obermann 0b3deba653 Finished functions to handle skill check attributes 2020-09-04 01:53:18 +02:00
Lukas Obermann d5d205dde2 Implemented attribute check cache build and modifiers 2020-08-30 15:57:43 +02:00
Lukas Obermann 9e547f1ac3 Started writing helper functions and tests 2020-08-25 11:37:56 +02:00
Lukas Obermann 757160f909 Added Portuguese templates for changelog and FAQ 2020-08-25 00:39:49 +02:00
Lukas Obermann 039bdca0e8 Merge pull request #673 from LorenzCK/feature/ITA-docs
Docs localization in Italian
2020-08-20 17:15:19 +02:00
Lorenz Cuno Klopfenstein 4057e26102 Docs localization in Italian 2020-08-20 15:55:05 +02:00
Lukas Obermann 7f76f236bc Removed unnecessary FAQ for Italian 2020-08-20 13:00:00 +02:00
Lukas Obermann fbcebdf8bb Merge pull request #671 from elyukai/bugfix/missing-lances-character-sheet
Bugfix: Missing lances character sheet
2020-08-19 19:32:47 +02:00
Lukas Obermann 1f3e613d0c Added lances to melee weapons table
Replaces damage bonus with dash if none is present
2020-08-19 19:31:47 +02:00
Lukas Obermann 0ae1f835c0 Merge pull request #670 from elyukai/bugfix/tricks-duration
Bugfix: Missing range and duration for tricks
2020-08-19 19:11:59 +02:00
Lukas Obermann e018df7afd Added range and duration to tricks component 2020-08-19 19:07:16 +02:00
Lukas Obermann ee2b2b3a29 Merge pull request #669 from elyukai/bugfix/ui-zoom
Bugfix: UI Zoom
2020-08-19 18:41:32 +02:00
Lukas Obermann 225e05deb6 Fix ESLint issues 2020-08-19 18:37:44 +02:00
Lukas Obermann b39408a218 Added calling webFrame zoom limits
Added minimum scale to meta viewport tag
2020-08-19 18:31:47 +02:00
Lukas Obermann cda6d2322d Added missing changes to changelog 2020-08-16 23:33:58 +02:00
Lukas Obermann 61d8e9e112 Fixed YAML bug
Fixed vulnerability issues
Bumped version number
2020-08-16 16:01:07 +02:00
Lukas Obermann b254798d9e Updated database 2020-08-16 15:37:10 +02:00
Lukas Obermann ee2e354c17 Finished French FAQ translation and added placeholders for Italian files 2020-08-16 13:28:52 +02:00
Lukas Obermann a2f457e545 Merge pull request #664 from elyukai/JoveToo-patch-1
First attempt at Dutch translation for FAQ
2020-08-13 17:04:28 +02:00
JoveToo bf4e8d68c1 Removing Armor stuff 2020-08-13 17:02:51 +02:00
JoveToo eb2248c82e First attempt at Dutch translation
I am unsure what the Armor things are about, so i left them untranslated, I'll look it up and check it in later.
2020-08-13 14:43:35 +02:00
Lukas Obermann 2f4fac35a1 Updated FAQ and changelog for current prerelease 2020-08-12 23:25:02 +02:00
Lukas Obermann f8cf46f699 Merge pull request #648 from manuelstengelberger/feature/zoomableherosheet
Feature/zoomableherosheet
2020-07-21 20:14:20 +02:00
Manuel f890961114 zoomFactor default value 2020-07-21 18:45:43 +02:00
Manuel 06ae8991cd i18n 2020-07-21 17:38:19 +02:00
Manuel 23065c93f6 i18n 2020-07-21 16:55:48 +02:00
Manuel 51a63a3f08 zoomFactor now represented as number in config 2020-07-21 13:21:22 +02:00
Manuel 8072ee399f fixed lint errors 2020-07-19 15:49:34 +02:00
Manuel ad6e2d6f83 removed console.log 2020-07-19 15:12:24 +02:00
Manuel d861f80d20 fixed pdf output 2020-07-18 22:19:43 +02:00
Manuel 5abbbac935 fixed invisible horizontal scrollbar in hero sheet 2020-07-18 21:56:10 +02:00
Manuel 5347ddec4f zoomable herosheet 2020-07-18 20:55:11 +02:00
dependabot[bot] 2cad1dd6b6 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 19:38:32 +00:00
Lukas Obermann 505a6718ba Merge pull request #629 from Rahjenaos/fix/prevent_e_in_purse
prevent input of "e" in purse popup
2020-07-09 17:24:37 +02:00
dependabot[bot] 856c7da6cf Bump electron from 8.2.0 to 8.2.4
Bumps [electron](https://github.com/electron/electron) from 8.2.0 to 8.2.4.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v8.2.0...v8.2.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-07 00:31:37 +00:00
Jonas Zimmermann 5218562b53 prevent input of "e" in purse popup 2020-06-23 16:25:48 +02:00
Lukas Obermann 0e04abec01 Merge pull request #626 from Rahjenaos/fix/input-issues-purseaddremovemoney
input fields now only accept emptyString or natural numbers. rest is …
2020-06-19 14:31:33 +02:00
Jonas Zimmermann f54ddee6d6 input fields now only accept emptyString or natural numbers. rest is filtered out. 2020-06-18 23:48:33 +02:00
Lukas Obermann d2814197b7 Merge pull request #623 from Rahjenaos/feature/show-needed-armorsheets-only
show the proper armor sheet(s) depending on the type of armor(s) a ch…
2020-06-18 12:15:43 +02:00
Jonas Zimmermann 5b6b88c7e7 show the proper armor sheet(s) depending on the type of armor(s) a character has 2020-06-18 07:41:31 +02:00
elyukai 1d9b64eafc Fixed console output 2020-06-18 01:49:12 +02:00
elyukai 4773d98216 Switched SFTP client and updated tables 2020-06-18 01:25:24 +02:00
Lukas Obermann a5fd560998 Merge pull request #622 from Rahjenaos/feature/pdfparchmentbackground
allows to use a paper texture for hero sheet
2020-06-17 12:18:24 +02:00
Jonas Zimmermann 0adf7d86a1 added sheetUseParchment to config 2020-06-17 11:44:47 +02:00
Jonas Zimmermann b41cee0ff1 allows to use a paper texture for hero sheet 2020-06-16 23:28:55 +02:00
Lukas Obermann c11fb747cd Fixed issue with fallback language
When selecting a "larger" language as main, it didnt show any race
2020-06-15 13:17:06 +02:00
Lukas Obermann 18fbade7c6 Merge pull request #620 from Rahjenaos/feature/show-weight
show weight in belongings tab
2020-06-15 12:57:39 +02:00
Jonas 8f9f627a30 Merge branch 'develop' into feature/show-weight 2020-06-15 12:53:47 +02:00
Jonas Zimmermann bc1619b231 format the weight for the selected locale 2020-06-15 12:46:02 +02:00
elyukai 1342977583 Added updated YAML files 2020-06-15 09:44:32 +02:00
Lukas Obermann bb17ed75e1 Merge branch 'develop' into feature/show-weight 2020-06-15 09:18:28 +02:00
Lukas Obermann c5f68a4a1d Merge pull request #605 from Rahjenaos/feature/spend-money-from-purse
Feature/spend money from purse
2020-06-15 09:16:23 +02:00
Jonas Zimmermann 8fbdf55e51 show weight in belongings tab 2020-06-15 08:27:32 +02:00
Jonas Zimmermann 57b8c82a17 Merge branch 'feature/spend-money-from-purse' of https://github.com/Rahjenaos/optolith-client into feature/spend-money-from-purse 2020-06-11 20:24:14 +02:00
Jonas Zimmermann a3df7d264b improve indentation + remove superfluous <div> 2020-06-11 20:20:34 +02:00
Jonas Zimmermann be4ef2344d npm run 2020-06-11 20:17:31 +02:00
Jonas Zimmermann 86aee2b6e7 follow comments from PR: fix indentations and remove superfluous <div> 2020-06-04 22:25:22 +02:00
Jonas Zimmermann a78a0a8bd4 Merge branch 'feature/spend-money-from-purse' of https://github.com/Rahjenaos/optolith-client into feature/spend-money-from-purse 2020-06-04 19:30:54 +02:00
Jonas Zimmermann af1d47627c several changes to satisfy lint and make use of useCallback 2020-06-04 14:41:23 +02:00
Jonas Zimmermann 0f44de3812 change packages as requested in PR comment 2020-06-01 13:37:52 +02:00
Lukas Obermann 3cb2beb740 Merge branch 'develop' into feature/spend-money-from-purse 2020-06-01 10:14:21 +02:00
Jonas Zimmermann 098b658c70 adds a popup to the purse that allows a specified amount of money to be added to or subtracted from the currently owned money 2020-06-01 00:43:09 +02:00
Jonas Zimmermann dbb7bf4296 Textfield & TextfieldLazy now support min & max value. Input type number now hides the spinners 2020-06-01 00:32:49 +02:00
Lukas Obermann f6ee17b6cb Merge pull request #600 from elyukai/issue-598
zipBy and mergeBy should remove duplicates
2020-05-25 22:47:05 +02:00
Johan Verrept 702bb95615 More lint issues. 2020-05-25 21:47:30 +02:00
Johan Verrept dfe297ae4e Fixing lint issues. 2020-05-25 21:42:33 +02:00
Johan Verrept e9b6fb16b1 zipBy and mergeBy should remove duplicates 2020-05-25 19:36:05 +02:00
Lukas Obermann 8c0300ea6c Fixed YAML decryption for linting 2020-05-25 14:35:25 +02:00
Lukas Obermann 51e731c37a Added YAML decrypt for linting 2020-05-25 14:31:48 +02:00
Lukas Obermann 568386363e Fixed ESLint errors 2020-05-25 14:03:13 +02:00
Lukas Obermann 64533686ce Separated tests from linting 2020-05-25 12:14:16 +02:00
Lukas Obermann 63073329f9 Added updated tables 2020-05-25 12:03:37 +02:00
Lukas Obermann fbbf493f3e Merge pull request #561 from JoveToo/issue365
Fill up missing entries with second language entries
2020-05-25 11:58:19 +02:00
Lukas Obermann 2d78190baa Merge branch 'develop' into issue365 2020-05-25 11:58:00 +02:00
Johan Verrept 3e08cbb778 Use translated string of general.none. 2020-05-25 11:27:10 +02:00
Johan Verrept c1c04def86 Address comments. 2020-05-25 00:49:04 +02:00
Lukas Obermann a1f7e61c6f Merge pull request #595 from Rahjenaos/ux_improvement_open_wikientry
Allow clicking on the name of each entry in order to show the wiki en…
2020-05-23 12:39:17 +02:00
Lukas Obermann 7ca9e44634 Merge branch 'develop' into ux_improvement_open_wikientry 2020-05-23 12:39:00 +02:00
Jonas 45d9a6f934 Update SkillListItem.tsx
react to feedback: better indentation and remove use less empty line
2020-05-22 22:16:27 +02:00
Johan Verrept 6c5ad44c3f Rename *L10n entries to L10nOverride 2020-05-22 21:07:11 +02:00
Johan Verrept ba65734345 spacing 2020-05-22 20:51:08 +02:00
Johan Verrept bf097a7546 Add setting to settings menu to control fallback language. 2020-05-22 20:47:59 +02:00
Johan Verrept ff99b20219 This was completely wrong. It needs to zip by element key, not by
array index...
2020-05-22 18:44:28 +02:00
Johan Verrept afec30cb94 Correctly handle missing override entry in zipBy 2020-05-22 16:45:53 +02:00
Johan Verrept f535ec532d Switch using a base and an override language.
The base language is used unless there is an entry in
the override language. The changed code can handle
that there is an entry in the override language but
not the base language.
2020-05-22 16:16:28 +02:00
Lukas Obermann 16d590c6e2 Merge pull request #583 from flying-sheep/enable-devtools
Enable devtools
2020-05-22 12:30:37 +02:00
Lukas Obermann 185514e141 Merge branch 'develop' into enable-devtools 2020-05-22 12:28:24 +02:00
Lukas Obermann 717dd96c3d Merge pull request #582 from flying-sheep/enabled-professions
Show individually enabled professions as common
2020-05-22 12:28:08 +02:00
Lukas Obermann 8779e84713 Merge branch 'develop' into enabled-professions 2020-05-22 12:26:13 +02:00
Jonas Zimmermann 479659e871 Allow clicking on the name of each entry in order to show the wiki entry. You now have two ways of opening the wiki entry 2020-05-22 11:48:37 +02:00
JoveToo 8f03ae5694 Merge branch 'develop' into issue365 2020-05-22 01:34:29 +02:00
Lukas Obermann aaa7f547ce Update JS based on BS version bump 2020-05-21 23:03:11 +02:00
Philipp A 2532cc1de9 Switch to ESM, Enable devtools 2020-05-12 15:15:25 +02:00
Philipp A 2897742661 Show individually enabled professions as common 2020-05-12 15:04:07 +02:00
Lukas Obermann 3195e06eb5 Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2020-05-08 17:18:53 +02:00
Lukas Obermann 2405a095de Fixed ESLint error 2020-05-08 17:18:49 +02:00
Lukas Obermann 50551e04a5 Fixes lint script 2020-05-08 17:12:02 +02:00
Lukas Obermann 55c4da857e Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2020-05-08 17:09:24 +02:00
Lukas Obermann b1086ea312 Added lint script to test 2020-05-08 17:09:11 +02:00
Lukas Obermann 79548077ac Updated dependencies
Finished converting activatableCostUtils.ts into Reason
2020-05-08 17:03:00 +02:00
Lukas Obermann 2e22db6fcb Updated imprint 2020-05-07 12:45:52 +02:00
Lukas Obermann 9860293db5 Bumped version 2020-05-06 23:35:46 +02:00
Lukas Obermann 72051f32d2 Fixed Travis config 2020-05-06 22:58:10 +02:00
Lukas Obermann dd3077164e Renamed Electron build scripts 2020-05-06 22:56:36 +02:00
Lukas Obermann eacfbf9e6f Renamed Electron build scripts 2020-05-06 22:54:11 +02:00
Lukas Obermann bfd8609dac Restore prerelease version and YAML
state
2020-05-06 21:00:09 +02:00
Lukas Obermann 7daa67e72d Backport Release 1.3.2
Merge pull request #572 from elyukai/release/1.3.2
2020-05-06 20:51:50 +02:00
Lukas Obermann 5dbf47af8e Release 1.3.2
Merge pull request #571 from elyukai/release/1.3.2
2020-05-06 20:51:06 +02:00
Lukas Obermann 7eeee2cbb2 Fixed Python script 2020-05-06 20:46:53 +02:00
Lukas Obermann 6825436119 Merge branch 'release/1.3.2' of https://github.com/elyukai/optolith-client into release/1.3.2 2020-05-06 20:46:32 +02:00
Lukas Obermann f1ab40bf8f Fixed YAML encrypt 2020-05-06 20:46:28 +02:00
Lukas Obermann 9d3f0f1425 Added secret 2020-05-06 20:35:12 +02:00
Lukas Obermann f3c2043066 Added Python install script 2020-05-06 20:29:57 +02:00
Lukas Obermann e0b9833ee0 Added decrypt command 2020-05-06 20:26:36 +02:00
Lukas Obermann 9bdf3560b5 Reverted last commit 2020-05-06 20:25:39 +02:00
Lukas Obermann bc05cea0fb Merge branch 'release/1.3.2' of https://github.com/elyukai/optolith-client into release/1.3.2 2020-05-06 20:21:04 +02:00
Lukas Obermann 9afd9c6e1b FIxed CI script 2020-05-06 20:21:02 +02:00
Lukas Obermann 22ae4648e5 Fixed Yaml scheme script 2020-05-06 20:06:13 +02:00
Lukas Obermann 0f08b0aad2 Updated encrypted YAMLs to remove unfinished languages and books 2020-05-06 19:56:41 +02:00
Lukas Obermann 2e4d9cdd4b Bumped version to 1.3.2 2020-05-06 19:51:34 +02:00
Lukas Obermann 379b238650 Merged master into release 2020-05-06 19:45:04 +02:00
Lukas Obermann 748af56ae6 Finished changelog for 1.3.2 2020-05-06 19:29:47 +02:00
Lukas Obermann fd564c5129 Bumped version to 1.4.0-alpha.7 2020-05-06 19:17:02 +02:00
Lukas Obermann 16fc4fffcb Fixed schema 2020-05-06 19:15:54 +02:00
Lukas Obermann cae1327290 Fixed schema error 2020-05-06 19:13:42 +02:00
Lukas Obermann f6f70ad8c8 Updated tables 2020-05-06 12:18:15 +02:00
Lukas Obermann 897fae58e1 Merge branch 'develop' into issue365 2020-05-05 13:30:17 +02:00
Lukas Obermann 288a9f561a Started working on Acivatable entry specific AP value 2020-05-04 22:17:57 +02:00
Lukas Obermann fbc1ecd631 Finished is increasable/decreasable functions for skills 2020-05-02 22:49:25 +02:00
Lukas Obermann 4d7629fd02 Started reimplementing Increasable logic in Reason 2020-05-02 01:04:51 +02:00
Lukas Obermann 9e34166128 Fixed TS errors 2020-04-30 17:19:28 +02:00
Lukas Obermann 02d33f4026 Finished entry specific name additions in Reason 2020-04-30 17:17:20 +02:00
Lukas Obermann f60e93dd52 More work on Activatable name additions in Reason 2020-04-30 00:54:16 +02:00
Lukas Obermann 204a65afd3 Started converting utility files to Reason 2020-04-28 10:00:31 +02:00
Lukas Obermann 4d910e2d75 Updated hero type definition to current state 2020-04-27 10:37:20 +02:00
Lukas Obermann f08b6ca18c Fixed TS errors 2020-04-26 19:57:55 +02:00
Lukas Obermann b55574b7e0 Finished YAML parser and decoder implementation in Reason 2020-04-26 19:55:32 +02:00
Johan Verrept 3e1bfb3768 Swap the order of zipBy so it matches mergeBy, make sure it accepts
"undefined" as third argument.
2020-04-26 17:51:32 +02:00
Johan Verrept 449584bc33 Rename all .*Default to .*L10nDefault 2020-04-26 13:40:15 +02:00
Johan Verrept b23ed96733 Missing file.
Closes #365
2020-04-26 04:15:50 +02:00
Johan Verrept 0c74414f8e If a german entry exists and it does not exist for the local language, fall back
to the german entry.

Closes #365
2020-04-26 04:04:44 +02:00
Lukas Obermann 70b87f85be Added parsing YAML files 2020-04-26 00:56:08 +02:00
Lukas Obermann 28c7e041a1 Fixed Reason output 2020-04-25 22:49:17 +02:00
Lukas Obermann dcf96ef74e Finished Reason JSON decoders 2020-04-25 22:46:34 +02:00
Lukas Obermann c70210efab Update tests.yml 2020-04-21 14:54:31 +02:00
Lukas Obermann 9258853659 Changelog Translation to Dutch
Merge pull request #560 from JoveToo/patch-2
2020-04-21 14:53:17 +02:00
JoveToo 931e759c8f Update CHANGELOG.md 2020-04-21 14:44:59 +02:00
JoveToo 3d213dabde Translation to Dutch 2020-04-21 14:43:29 +02:00
Lukas Obermann 61ffce110b Delete YAML.bs.js 2020-04-21 11:59:09 +02:00
Lukas Obermann d78cf48702 Delete YAML.re 2020-04-21 11:58:55 +02:00
Lukas Obermann a1008a82a1 Revert "Added CI tests on develop branch"
This reverts commit 04bf908f08.
2020-04-19 13:00:30 +02:00
Lukas Obermann b377c10b07 "Fixed" tests 2020-04-19 12:56:56 +02:00
Lukas Obermann 04bf908f08 Added CI tests on develop branch 2020-04-19 12:26:31 +02:00
Lukas Obermann f0470673e1 Updated Test workflow 2020-04-19 12:25:05 +02:00
Lukas Obermann de4e46a4f2 Fixed TS errors 2020-04-19 12:10:36 +02:00
Lukas Obermann 6f810dfb6c Fixed CONTRIBUTING 2020-04-19 12:06:35 +02:00
Lukas Obermann 9c4e7bd695 Added a GitHub action to tests TypeScript/Reason
This acts as a test for GitHub actions
2020-04-15 21:55:14 +02:00
Lukas Obermann a05eb917d4 Every "static type" except A/D/SA and UI messages done, including decoder 2020-04-12 23:45:39 +02:00
Lukas Obermann 327e74d30f Fixed TS 2020-04-09 22:51:09 +02:00
Lukas Obermann b2cb6488d9 Worked on integrity and combination functions 2020-04-08 01:13:22 +02:00
Lukas Obermann c4118daa38 Finished spells and liturgical chants types 2020-04-07 01:39:13 +02:00
Lukas Obermann f6e86833f1 Merge pull request #546 from elyukai/dependabot/npm_and_yarn/acorn-5.7.4
Bump acorn from 5.7.3 to 5.7.4
2020-04-05 09:28:23 +02:00
dependabot[bot] 29fd661fa7 Bump acorn from 5.7.3 to 5.7.4
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-04-05 07:21:26 +00:00
Lukas Obermann 89d38c4cb5 Further work on grouped static entries 2020-04-05 01:14:00 +02:00
Lukas Obermann 6bf7bc8aca Started grouping static data type definitions with their decoders 2020-04-04 03:22:21 +02:00
Lukas Obermann 0882b76b42 Fixes #543 2020-04-03 23:14:00 +02:00
Lukas Obermann 1f92d758e2 Fixed TS error 2020-04-03 22:00:04 +02:00
Lukas Obermann 0c88db896e Fixed German changelog 2020-04-03 21:39:45 +02:00
Lukas Obermann 3063b3172c Bumped version and updated dependencies 2020-04-03 21:22:22 +02:00
Lukas Obermann 16a727ba2d Added changelogs for German and English and updated tables 2020-04-03 20:54:33 +02:00
Lukas Obermann e87cb52b36 Updated CONTRIBUTING to reflect current development 2020-04-03 15:13:24 +02:00
Lukas Obermann cc4d63c5e0 Fixes #539 2020-04-03 14:34:58 +02:00
Lukas Obermann 89abf23996 Fixed ESLint errors 2020-04-03 14:16:09 +02:00
Lukas Obermann 4525f0635e Fixes #538 2020-04-03 14:05:24 +02:00
Lukas Obermann 43fe490891 Removed debug log 2020-04-02 21:44:25 +02:00
Lukas Obermann 7b05b4d2fe Fixes #507 2020-04-02 21:42:35 +02:00
Lukas Obermann 6f6eb34ae9 Fixes #506 2020-04-02 15:54:35 +02:00
Lukas Obermann adb8b67a22 Fixed warnings 2020-04-02 14:39:33 +02:00
Lukas Obermann 991e72cd0b Extracted UI Messages type and decoder 2020-03-31 01:46:14 +02:00
Lukas Obermann 8e1aa4f9d1 Started converting flat UI messages structure into hierarchical 2020-03-30 02:34:41 +02:00
Lukas Obermann 175cd5ebf1 Added more entry conversions, including the UI messages decoder 2020-03-30 02:16:50 +02:00
Lukas Obermann f5825c0156 Worked on simple conversions to Equipment Packages 2020-03-29 01:03:23 +01:00
Lukas Obermann a0c16fd369 Worked on blessed tradition JSON decoder 2020-03-27 13:55:11 +01:00
Lukas Obermann 60787fd22b More work on raw entry conversion 2020-03-27 00:18:14 +01:00
Lukas Obermann 6b894b899e Finished profession select options 2020-03-26 03:07:49 +01:00
Lukas Obermann 62c7200dc8 Worked on profession select options 2020-03-26 02:45:25 +01:00
Lukas Obermann 2a17220cb9 More work on updated YAML parser 2020-03-25 21:34:47 +01:00
Lukas Obermann 3115468578 Created base work for implementing YAML decoder in Reason 2020-03-24 05:02:38 +01:00
Lukas Obermann 630f165388 Added hero type defs and thus further work on prerequisites issue 2020-03-23 02:15:20 +01:00
Lukas Obermann 79e3d3e58e Added blockmap to Windows installer upload 2020-03-20 19:24:18 +01:00
Lukas Obermann c6b3af3b13 Started work on implementing #427 2020-03-16 23:09:41 +01:00
Lukas Obermann 0b24f77803 Minor description or Reason fixes and additions 2020-03-13 02:51:23 +01:00
Lukas Obermann 5b78ce3c55 Fixes #492 2020-03-10 12:31:36 +01:00
Lukas Obermann 2af5361736 Moved Reason static data definitions to single file 2020-03-10 02:36:15 +01:00
Lukas Obermann 0d0026979d Added Patron types 2020-03-09 01:20:23 +01:00
Lukas Obermann 81694e3ea6 Added changelog for 1.4.0-alpha.4 2020-03-07 17:19:03 +01:00
Lukas Obermann 814acbd257 Updated generated files and bumped version to 1.4.0-alpha.4 2020-03-07 16:55:58 +01:00
Lukas Obermann 98dda4926a - Removed the bourbon library
- Converted some pixel values on the sheet to mm/pt values
- Extracted the print to PDF function into its own file
- Fixed #473
2020-03-07 03:39:11 +01:00
Lukas Obermann 9dd15301c3 Fixes #483 2020-03-06 22:49:15 +01:00
Lukas Obermann ec91243248 Added updated tables 2020-03-06 02:36:38 +01:00
Lukas Obermann 1acdfee683 Bumped version to 1.4.0-alpha.3 2020-03-06 02:36:10 +01:00
Lukas Obermann dcef4d0097 Added changelog for current build 2020-03-06 02:35:49 +01:00
Lukas Obermann a6b48a77a9 Separated lazy variant of TextField from TextField component 2020-03-06 02:18:25 +01:00
Lukas Obermann 4db15b9755 Fixes #476 2020-03-06 01:30:57 +01:00
Lukas Obermann 6a958d3ef5 Reworked saving system, fixes #477 2020-03-06 01:26:13 +01:00
Lukas Obermann e99d2e7318 Started to work on #476 2020-03-05 02:37:23 +01:00
Lukas Obermann 6d6aa11d45 Increased version 2020-03-05 02:16:16 +01:00
Lukas Obermann b765f55124 Fixes #471 2020-03-05 02:12:38 +01:00
Lukas Obermann add5837d2f Increased version and updated tables 2020-03-04 02:50:03 +01:00
Lukas Obermann 01d4bda1ed Experimented with Reason and Electron Builder 2020-03-04 02:46:31 +01:00
Lukas Obermann 0bceb4b5ae Updated changelog for 1.3.1 2020-03-03 19:21:45 +01:00
Lukas Obermann 293114c063 Hotfix 1.3.1 changes
Merge pull request #452 from elyukai/hotfix/french-empty-lists
2020-03-03 18:32:58 +01:00
Lukas Obermann 24a2b8d3e3 Merge branch 'develop' into hotfix/french-empty-lists 2020-03-03 18:23:55 +01:00
Lukas Obermann a3fe6c13c3 Hotfix 1.3.1
Merge pull request #451 from elyukai/hotfix/french-empty-lists
2020-03-03 18:13:48 +01:00
Lukas Obermann 5d43f93409 New new tables and increased version 2020-03-03 18:09:28 +01:00
Lukas Obermann 2ade25a060 Fixes #450 2020-03-03 17:29:41 +01:00
Lukas Obermann 6e41ea8353 Fixes #448 2020-03-03 17:20:45 +01:00
Lukas Obermann 756d09fb3c Removed empty Reason file 2020-03-03 17:09:30 +01:00
Lukas Obermann 5960f1fe88 Cleaned up build scripts 2020-03-03 17:08:58 +01:00
Lukas Obermann 23c41a0e7b Updated version to be alpha and added dev version of tables 2020-03-03 14:54:13 +01:00
Lukas Obermann 4ca61b9441 Release 1.3.0 fixes
Merge pull request #442 from elyukai/release/1.3.0
2020-03-03 14:00:34 +01:00
Lukas Obermann 81d125880f Release 1.3.0
Merge pull request #441 from elyukai/release/1.3.0
2020-03-03 13:02:05 +01:00
Lukas Obermann ee1e94c59c Updated database and increased version 2020-03-03 12:55:12 +01:00
Lukas Obermann eef2b3eab5 Added Dutch changelog 2020-03-03 12:36:56 +01:00
Lukas Obermann 251864b22a Updated changelogs 2020-03-03 11:40:17 +01:00
Lukas Obermann 98d850901c Updated lock file 2020-03-03 11:20:22 +01:00
Lukas Obermann 45ac7ae6da Increased version 2020-03-02 23:24:50 +01:00
Lukas Obermann af869f94e0 Updated changelog and tables 2020-03-02 23:23:57 +01:00
Lukas Obermann 54e67b142c - Fixes #438
- Fixes #416
2020-03-02 23:16:57 +01:00
Lukas Obermann e65c2216a5 Increases version 2020-03-02 12:00:21 +01:00
Lukas Obermann 4a49014a3f Fixes #436 2020-03-02 11:59:47 +01:00
Lukas Obermann 6b7f6f4630 Fixes TS build info ignore 2020-03-02 03:26:05 +01:00
Lukas Obermann f97fdbb729 Remove TS build info from Git 2020-03-02 03:20:25 +01:00
Lukas Obermann fde3c30df3 Ignore TS build info in Git 2020-03-02 03:19:40 +01:00
Lukas Obermann e7b9286857 Increases version 2020-03-02 02:56:26 +01:00
Lukas Obermann 65152dc393 Fixes #435 2020-03-02 02:55:30 +01:00
Lukas Obermann 980769bb4c Fixes #432 2020-03-02 02:29:59 +01:00
Lukas Obermann faa7143d74 Fix CI issues with Reason modules 2020-03-02 00:13:27 +01:00
Lukas Obermann ace7074c32 Fixes #414 2020-03-02 00:00:47 +01:00
Lukas Obermann a712133cc9 Added new tables and changelog 2020-03-01 05:46:46 +01:00
Lukas Obermann 76aa7dc80f Fixes #420 2020-03-01 04:50:04 +01:00
Lukas Obermann 6e60139461 Fixes #422 2020-03-01 03:54:08 +01:00
Lukas Obermann 76c78f2ab2 Fixes #419 2020-03-01 03:38:59 +01:00
Lukas Obermann dd52f2522a Fixes #423 2020-03-01 03:29:02 +01:00
Lukas Obermann c3d8d8ef9c Fixes #413 2020-03-01 03:26:21 +01:00
Lukas Obermann 450e87a0fc Fixes #411 2020-03-01 02:51:44 +01:00
Lukas Obermann a52e38daac Closes #195 2020-02-28 14:20:57 +01:00
Lukas Obermann 50c5d462ad - Closes #347
- Closes #418
2020-02-28 12:39:18 +01:00
Lukas Obermann e3b67145aa Closes #351 2020-02-28 01:38:11 +01:00
Lukas Obermann 73c2accc10 Closes #350 2020-02-28 01:07:53 +01:00
Lukas Obermann 0037554613 Fixed errors from last commit 2020-02-27 15:01:19 +01:00
Lukas Obermann 9524480f2c Closes #348 2020-02-27 14:40:49 +01:00
Lukas Obermann e88d270d6c - Fixes #349
- Fixes #417
2020-02-27 02:19:24 +01:00
Lukas Obermann c3f3798ab4 Fixes #412 2020-02-26 00:08:07 +01:00
Lukas Obermann 538a535020 Fixed publication bug report template labels 2020-02-25 17:12:53 +01:00
Lukas Obermann 9ae738578b Further experimenting with Reason 2020-02-25 02:57:51 +01:00
Lukas Obermann 6f95992b28 Fixed Reason config, tried to convert ImprovementCostUtils 2020-02-25 00:39:45 +01:00
Lukas Obermann b2ca99c30f Fixed some Markdown linting issues in issue templates 2020-02-24 19:00:11 +01:00
Lukas Obermann d9520bc8c9 Added publication bug report template 2020-02-24 13:49:28 +01:00
Lukas Obermann 7ea530ca5c Fixes #404 2020-02-24 11:20:42 +01:00
Lukas Obermann 6eb8bc18db Fixes #291 2020-02-24 01:21:58 +01:00
Lukas Obermann 3852b1d0ba Fixes #290 2020-02-24 01:10:56 +01:00
Lukas Obermann 11f3327579 Fixes #289 2020-02-24 00:08:19 +01:00
Lukas Obermann a781d2d3cb Fixes #403 2020-02-23 23:51:30 +01:00
Lukas Obermann 39b0fb938e Fixes #214 2020-02-23 22:57:04 +01:00
Lukas Obermann 20f7637b38 Fixes #402 2020-02-23 22:32:10 +01:00
Lukas Obermann 15283ce543 Fixes #401 2020-02-23 14:39:30 +01:00
Lukas Obermann 2ef6993030 Fixes #229 2020-02-23 01:03:31 +01:00
Lukas Obermann 2d0bc1f7f8 Increases version number 2020-02-23 00:25:49 +01:00
Lukas Obermann 9d3eb04ba3 Fixes #286 2020-02-23 00:25:18 +01:00
Lukas Obermann 20a4ebd6a9 Fixes #400 2020-02-22 12:38:59 +01:00
Lukas Obermann 61e51e95ca Updated YAML files and schemes 2020-02-22 01:19:52 +01:00
Lukas Obermann 8cfbd41b66 Fixes #399 2020-02-22 01:17:11 +01:00
Lukas Obermann 0cf5771ae8 Fixed #398 2020-02-22 00:08:13 +01:00
Lukas Obermann cae45a857b Fixes #397 2020-02-22 00:02:21 +01:00
Lukas Obermann d7fde01d7b Fixes #285 2020-02-21 23:44:14 +01:00
Lukas Obermann 714edd48ac Fixes #343, fixes #394 2020-02-21 23:20:39 +01:00
Lukas Obermann d7217cf982 Fixes #341 and similar issues 2020-02-21 20:28:49 +01:00
Lukas Obermann 9c61d5772c FIxes #331 2020-02-21 20:03:03 +01:00
Lukas Obermann 8c9b3e5b03 Fixes #353 2020-02-21 17:34:03 +01:00
Lukas Obermann 1662e7d79c Fixes #357 2020-02-21 14:01:44 +01:00
Lukas Obermann 5771eec7b9 Increased version and added changed YAML files 2020-02-20 23:50:16 +01:00
Lukas Obermann cf22958a17 Fixes #370 2020-02-20 22:54:39 +01:00
Lukas Obermann dfa5aae311 Fixed #387 2020-02-20 22:32:46 +01:00
Lukas Obermann ab83ddab0b Fixes #390 2020-02-20 21:59:10 +01:00
Lukas Obermann 30c7c4b548 Fixes #369
Fixes #389
2020-02-20 20:46:14 +01:00
Lukas Obermann aa915a80ff Fixes #388 2020-02-20 20:31:06 +01:00
Lukas Obermann 1ba434b9b8 Fixes #386 2020-02-20 19:19:59 +01:00
Lukas Obermann fa996059d3 Added changelog and updated YAML files 2020-02-19 23:38:54 +01:00
Lukas Obermann a477927b62 - Fixed RCP select options
- Fixed missing Magical Actions in spells tab
2020-02-19 23:21:17 +01:00
Lukas Obermann 764c6c0917 Added own models for magical actions with conversion functions to standard spells 2020-02-19 13:32:36 +01:00
Lukas Obermann f0fa5030b5 Fixes #377 2020-02-19 12:16:41 +01:00
Lukas Obermann 8fc888075f Fixes #379 2020-02-19 11:20:26 +01:00
Lukas Obermann 87e19c908d Fixes #381 2020-02-19 11:18:14 +01:00
Lukas Obermann f0ab86691c Fixes #384 and other React.memo components 2020-02-19 11:05:19 +01:00
Lukas Obermann 6de9f7f01f - Fixes #380
- Fixes #382
- Fixes Markdown
- Fixes close icon on slide-ins
2020-02-19 10:50:45 +01:00
Lukas Obermann d66bab23d0 Fixed hero data conversion 2020-02-18 15:14:20 +01:00
Lukas Obermann 52a60597a1 Fixed build scripts 2020-02-17 23:27:03 +01:00
Lukas Obermann 252332750e Fixed CI, scripts and YAML files 2020-02-17 23:14:14 +01:00
Lukas Obermann 678f85e0e7 Switch to YAML files from XLSX tables
Merge pull request #368 from elyukai/feature/yaml-integration
2020-02-17 21:54:58 +01:00
Lukas Obermann 0e48a93e2d Fixed tests 2020-02-17 21:48:13 +01:00
Lukas Obermann d7d72482b5 Fixed encrypted files...? 2020-02-17 21:35:51 +01:00
Lukas Obermann f017dd492c Added debug script 2020-02-17 21:24:29 +01:00
Lukas Obermann 31419c78c6 Fixed JSON import 2020-02-17 21:16:17 +01:00
Lukas Obermann beaf081215 Fixed module export 2020-02-17 21:13:06 +01:00
Lukas Obermann 371046e30e Updated CI script for YAML files 2020-02-17 21:10:16 +01:00
Lukas Obermann 8367b64d9f Fixed last TS issues 2020-02-17 20:21:27 +01:00
Lukas Obermann 6f4bd5de86 Fixed loading of Optolith for YAML 2020-02-17 18:11:15 +01:00
Lukas Obermann 4c4835411b Large bit of work on converting the app to use new Wiki/StaticData structure 2020-02-16 00:14:28 +01:00
Lukas Obermann 2a6787015e Fixed missing L10n record keys in Views/ 2020-02-13 00:55:35 +01:00
Lukas Obermann 7597a8be77 Worked up to (including) sheets 2020-02-09 18:52:24 +01:00
Lukas Obermann 192cd7112b Started working on fixes due to the model changes
First part: Checking which UI messages are missing in Views/. Fixed UI message errors up to WikiCultureInfo.tsx
2020-02-09 02:50:29 +01:00
Lukas Obermann 36a90037d0 Tried to fix file name inconsistencies 2020-02-09 00:46:30 +01:00
Lukas Obermann 659dfed4fc Finished YAML Parser 2020-02-09 00:20:22 +01:00
Lukas Obermann bc43da3b30 Fixed liturgical chant enhancement IDs 2020-02-07 18:33:44 +01:00
Lukas Obermann 41edf21fd4 Started work on Special Ability entry converter and added converter for supported languages 2020-02-07 17:53:31 +01:00
Lukas Obermann 1b2515c623 Added Equipment, Spell and Liturgical Chant Enhancement entry converters 2020-02-07 15:37:02 +01:00
Lukas Obermann 9fc8d4a45f Added placeholder files for missing entry converters 2020-02-07 02:34:27 +01:00
Lukas Obermann 0312037f1d Added third part of entry converters 2020-02-07 02:33:58 +01:00
Lukas Obermann 9549b87761 Added second part of entry converters 2020-02-06 23:36:07 +01:00
Lukas Obermann a8e6aee20d Finished Spells and Liturgical Chants 2020-02-06 21:43:10 +01:00
Lukas Obermann be3616e680 Added first part of entry converters 2020-02-06 18:44:28 +01:00
Lukas Obermann f815f2708b Added basic YAML loading and parsing capabilities 2020-02-06 01:37:28 +01:00
Lukas Obermann 282d7764fe Added YAML files to .gitignore 2020-02-05 01:04:36 +01:00
Lukas Obermann 0f511fe2d8 ESLint fixes and CI integration
Merge pull request #359 from elyukai/eslint-fixes
2020-02-05 00:58:27 +01:00
Lukas Obermann 9a830e33ee Fixed ESLint errors due to merge commit 2020-02-05 00:55:36 +01:00
Lukas Obermann 164f791c0e Merge branch 'develop' into eslint-fixes 2020-02-05 00:50:07 +01:00
Lukas Obermann 2776bc039d Fixed all missing ESLint errors and configured TravisCI to now always lint 2020-02-05 00:43:17 +01:00
Lukas Obermann 7a1798193b ESLint fixes for Views complete 2020-02-04 18:21:32 +01:00
Lukas Obermann 216bcd25fc Added WebStorm project files 2020-02-04 03:12:13 +01:00
Lukas Obermann 5ad3c81666 Further work on RCP Selections 2020-01-16 23:32:59 +01:00
Lukas Obermann 8925fc1a8a Fixed first part of RCP selections 2020-01-16 00:55:04 +01:00
Lukas Obermann 462dae8a25 Fixed NavigationBar 2020-01-10 23:45:40 +01:00
Lukas Obermann 052061c8f8 Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2020-01-06 23:00:21 +01:00
Lukas Obermann 331af9b03d Added Condition, Optional Rule and Status models 2020-01-06 23:00:17 +01:00
Lukas Obermann 9d468f7842 Fixed Liturgical Chants ESLint errors 2020-01-06 21:02:05 +01:00
Lukas Obermann cb931bd77c Fixed ESLint errors E-I 2019-12-27 16:50:08 +01:00
Lukas Obermann 69f455a1a5 Fixed ESLint issues in views A-D 2019-12-26 21:32:58 +01:00
Lukas Obermann 0231d17d7b Refactored ActionTypes to use symbols instead of an enum 2019-12-26 20:38:43 +01:00
Lukas Obermann bfad37ebb1 Added Italian as possible language 2019-12-23 02:07:52 +01:00
Lukas Obermann 83f18dce52 Switched line comment to block comment 2019-12-20 16:39:20 +01:00
Lukas Obermann 9b9c09eace Added 1 more test for List.permutations 2019-12-20 15:29:38 +01:00
Lukas Obermann 111cea06cb Added List.permutations 2019-12-18 14:59:28 +01:00
Lukas Obermann 2550735f8b Updated README with auto update support and installer types 2019-12-12 14:24:28 +01:00
Lukas Obermann 3e6c9ec960 Typo in changelog 2019-12-12 12:13:13 +01:00
Lukas Obermann 7351e66c52 Readded all tables and reenabled French 2019-12-12 01:57:31 +01:00
Lukas Obermann 84501dda00 Last changes from 1.2.0 release 2019-12-12 01:49:52 +01:00
Lukas Obermann cf34748313 Release 1.2.0 2019-12-12 01:49:34 +01:00
Lukas Obermann 9110011281 Updated version number to stable 2019-12-12 01:41:34 +01:00
Lukas Obermann b3ba577296 Updated changelog for last commit 2019-12-12 01:38:40 +01:00
Lukas Obermann 10dcfb5f40 Fixes #339 2019-12-12 01:33:44 +01:00
Lukas Obermann 93bf8a6e69 Removed macOS code sign (Merge) 2019-12-12 01:23:19 +01:00
Lukas Obermann c3213abb9d Merge branch 'develop' into release/1.2.0 2019-12-12 01:23:03 +01:00
Lukas Obermann 988bec226e Removed macOS code sign 2019-12-12 01:22:23 +01:00
Lukas Obermann b603498944 Fix 1.2.0 prerelease CI 2019-12-12 00:37:28 +01:00
Lukas Obermann e3a5a5a347 Merge branch 'develop' into release/1.2.0 2019-12-12 00:37:12 +01:00
Lukas Obermann 32117fac36 Updated build config 2019-12-12 00:36:12 +01:00
Lukas Obermann 32a99364c8 Fixed Data/Serialize TS errors 2019-12-12 00:10:02 +01:00
Lukas Obermann 1d21dfff4a Updated build scripts and fixed severe errors for 1.2.0 2019-12-12 00:03:22 +01:00
Lukas Obermann b1030982e2 Merge branch 'develop' into release/1.2.0 2019-12-12 00:02:43 +01:00
Lukas Obermann 2b89b602db Updated build config to notarize macOS app 2019-12-11 23:55:35 +01:00
Lukas Obermann d9d1c66291 Fixes #128, fixes #333 2019-12-11 15:32:28 +01:00
Lukas Obermann a7e9450b89 Fixes #329, fixes #332, fixes #333 2019-12-11 10:52:37 +01:00
Lukas Obermann bac472297b Updated insider tables 2019-12-10 13:27:59 +01:00
Lukas Obermann a365fa1b40 Release 1.2.0 last fixes 2019-12-10 13:21:23 +01:00
Lukas Obermann 84c74e0223 Disabled French language 2019-12-10 13:18:01 +01:00
Lukas Obermann 450167bea4 Fixed test 2019-12-10 13:11:52 +01:00
Lukas Obermann 431a9def99 Fixes #237 2019-12-10 13:06:56 +01:00
Lukas Obermann df59c71c40 Fixes #292 and patched TS to 3.7.3 2019-12-10 12:59:54 +01:00
Lukas Obermann 17ab466503 Merge branch 'release/1.2.0' of https://github.com/elyukai/optolith-client into release/1.2.0 2019-12-09 23:44:37 +01:00
Lukas Obermann 01a1f977f7 Added NL changelog 2019-12-09 23:44:25 +01:00
Lukas Obermann b0b11bbf2d Merge branch 'master' into release/1.2.0 2019-12-09 23:35:38 +01:00
Lukas Obermann 7664df6ad4 Fixes TS for last commit 2019-12-09 01:21:46 +01:00
Lukas Obermann f328295f5e Fixes #284 2019-12-09 00:55:32 +01:00
Lukas Obermann 9618e2171f Fixes #307 2019-12-08 01:53:25 +01:00
Lukas Obermann 44c295b493 Fixes #294 2019-12-08 00:46:23 +01:00
Lukas Obermann 2a340dc0a3 Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2019-12-06 01:32:30 +01:00
Lukas Obermann 8a40806f0e Fixed dont displaying "PDF saved" when export canceled 2019-12-06 01:32:23 +01:00
Lukas Obermann f2a2b5bb84 Merge pull request #279 from johannes/patch-1
Fix typo
2019-12-05 23:42:28 +01:00
Lukas Obermann d16a9ca449 Fixes #295 2019-12-05 17:29:13 +01:00
Lukas Obermann 003955e201 Fixes #293 2019-12-05 13:53:20 +01:00
Lukas Obermann 978ec73289 Fixed shortcut issue in Alert 2019-12-04 17:42:43 +01:00
Lukas Obermann 571780f077 Removed electron-localshortcut and use mousetrap instead 2019-12-04 17:33:54 +01:00
Lukas Obermann 9dee6a419c Fixes #283 2019-12-04 17:23:52 +01:00
Lukas Obermann a74fd54639 Fixed type errors because of carrying capacity calculation change 2019-12-03 18:47:27 +01:00
Lukas Obermann 69801c6d6c Added mapAccumR 2019-12-01 20:01:47 +01:00
Lukas Obermann bdab2c2dfe Fixes #266 2019-11-30 23:48:16 +01:00
Lukas Obermann 08cf2ca060 Fixes #276, #278 2019-11-30 23:20:09 +01:00
Lukas Obermann 3b17767092 Allows groups in select column of univ table to reference specific groups 2019-11-30 18:03:00 +01:00
Johannes Schlüter ded1e3c1e4 Fix typo 2019-11-29 03:28:09 +01:00
Lukas Obermann 17754d4492 Fixes #267 2019-11-28 21:52:40 +01:00
Lukas Obermann ed0886efe1 Fixed #270 2019-11-28 21:02:32 +01:00
Lukas Obermann 6d47417658 Fixed #269 2019-11-28 13:15:09 +01:00
Lukas Obermann d8e7cc499e Fixes #273 2019-11-28 12:53:51 +01:00
Lukas Obermann 19dc248a42 Merged both generic JSON modules 2019-11-27 18:58:45 +01:00
Lukas Obermann 19464f5a9e Fixed #272 2019-11-27 18:25:35 +01:00
Lukas Obermann 7224b05af3 Fixed queue tests 2019-11-27 14:03:16 +01:00
Lukas Obermann 13e3346c86 Added more docs to Data/Queue 2019-11-27 11:45:55 +01:00
Lukas Obermann 58414a8af7 Increased alpha version 2019-11-19 00:48:49 +01:00
Lukas Obermann c4df01b9c1 Fixed #260 2019-11-18 22:01:54 +01:00
Lukas Obermann fdb3bce60a Fixed #262 2019-11-18 21:35:58 +01:00
Lukas Obermann 8e5d29caef Fixes #261 2019-11-18 20:36:33 +01:00
Lukas Obermann 9927351a99 Increased version for next prerelease 2019-11-17 23:33:31 +01:00
Lukas Obermann 5bdb20f255 Fixed #256, #258 and #259 2019-11-17 23:12:55 +01:00
Lukas Obermann 7de4e813d7 Reworked alerts to be Promise-based, added Queue data structure and fixed skill/spell rating reduction 2019-11-17 19:10:03 +01:00
Lukas Obermann e7a565ccd2 Updated Alert interface origin 2019-11-16 16:30:55 +01:00
Lukas Obermann fdaaff5aae Fixed TS errors 2019-11-16 12:41:55 +01:00
Lukas Obermann 3bb314524d Added Queue type, yet without functions 2019-11-16 12:37:38 +01:00
Lukas Obermann c366f8f92b Fixed TS 2019-11-15 23:17:47 +01:00
Lukas Obermann 3bc5c81085 Updated tables 2019-11-15 22:51:56 +01:00
Lukas Obermann 7487cfee18 Merge pull request #252 from LLmichi1/develop
Synchronisation bei Bedarf
2019-11-15 22:17:58 +01:00
LLmichi1 7935b26c23 Merge branch 'develop' into develop 2019-11-15 17:09:20 +01:00
Michael Schrempp 819ae3a6a9 Apply changes from PR 2019-11-15 17:05:38 +01:00
Lukas Obermann be0334e928 Added base for serializing custom data structures 2019-11-14 18:36:58 +01:00
Lukas Obermann e7dfaa3647 Switched to TS 3.7 2019-11-14 16:50:41 +01:00
Michael Schrempp b953029b2d Beim JSON-Exportabbruch wird jetzt eine vernünftige Meldung angezeigt 2019-11-13 16:48:38 +01:00
Michael Schrempp 439b3fd9b1 Removed Debug output 2019-11-13 09:22:28 +01:00
Michael Schrempp 9f41532d03 Reroll weight without a set size does now reroll size first 2019-11-13 09:21:43 +01:00
Michael Schrempp 8ebddb46cf Doppelte Anzeige der Dringend empfohlenen Nachteile entfernt 2019-11-13 09:04:26 +01:00
Lukas Obermann bd7e4ebd82 Added CODEOWNERS 2019-11-12 14:26:34 +01:00
Lukas Obermann fedb7867fb Updated CSS based on last commit (last commit includes Config load fix, too) 2019-11-11 10:28:56 +01:00
Lukas Obermann 846dc2e44b Finished #222 2019-11-11 10:28:06 +01:00
Lukas Obermann 119766f702 Started fixing Config import 2019-11-11 01:02:28 +01:00
LLmichi1 b2b1553f00 Merge pull request #4 from elyukai/develop
Update
2019-11-10 10:50:04 +01:00
Lukas Obermann 7056f28f8a Fixed professions' attribute prerequisite application 2019-11-10 00:03:59 +01:00
Lukas Obermann e1ba5168cb Fixed Personality Flaw implementation 2019-11-09 23:54:44 +01:00
Lukas Obermann 0bede90073 Fixed ISO date check 2019-11-05 00:25:57 +01:00
Lukas Obermann 774bfc31a2 Added magical tradition table 2019-11-01 00:12:26 +01:00
Lukas Obermann e8e137ce6b Reworked so that any column can be a column with notes 2019-10-31 15:02:39 +01:00
Lukas Obermann c92afa5a62 Added "errata" column 2019-10-31 13:08:01 +01:00
Lukas Obermann b282915d87 Added docs 2019-10-31 11:54:16 +01:00
Lukas Obermann 39a47710ae Extrated sheet join 2019-10-29 23:34:36 +01:00
Lukas Obermann ed670b0aeb Some XLSX refactoring 2019-10-29 12:41:04 +01:00
Lukas Obermann 7067f7e847 Some restructurings in App/Utilities/Raw 2019-10-28 00:42:15 +01:00
Lukas Obermann cbcbfb4567 Fixed Faer Pact Gifts, fixes #233 2019-10-27 23:30:40 +01:00
Lukas Obermann 9d9b2e27fa Fixed advantage "Einkommen", fixed issues with list item titles and fixed sortStrings 2019-10-27 13:01:09 +01:00
Lukas Obermann 95e14f3d5a Fixed saving used locale along the character 2019-10-27 11:17:14 +01:00
Lukas Obermann 61ae0fe8d0 A pact is now going to be saved 2019-10-27 11:02:29 +01:00
Lukas Obermann d14f59fb1c Removed break on unknown key in JSON object 2019-10-27 01:31:31 +02:00
Lukas Obermann 7d9e2b9554 Added JSON validation for config file 2019-10-27 01:30:04 +02:00
Lukas Obermann d0fe8df382 Merge pull request #226 from elyukai/feature/transfer-unfamiliar-handling
Transfer of unfamiliar spells by different special abilities or advantages
2019-10-26 22:08:03 +02:00
Lukas Obermann bf357c4255 Merge pull request #220 from LLmichi1/develop
sync bei Bedarf
2019-10-20 12:28:03 +02:00
Michael Schrempp 7e21966c19 package-lock updated 2019-10-17 14:44:59 +02:00
Elytherion 25d8055257 Finished transfer unfamiliar spells handling 2019-10-17 00:35:23 +02:00
Lukas Obermann d851f2ad38 Started implementing transfer unfamiliar handling 2019-10-16 17:25:15 +02:00
Michael Schrempp 8270571a61 Fixed leichter gang 2019-10-16 13:37:35 +02:00
Elytherion 530df36c0f Added "Six Blessings" to L10n and fixed issue with Cache at first startup 2019-10-09 22:20:39 +02:00
Lukas Obermann ed7b4ed1c0 Fixed nameless tradition not showing up at liturgical chants on character sheet 2019-10-09 17:23:02 +02:00
Lukas Obermann a086834bf2 Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2019-10-09 15:52:17 +02:00
Lukas Obermann 52da90be31 Introduced the option to provide a shorter name for chants 2019-10-09 15:52:08 +02:00
Lukas Obermann 8bcc493499 Added question issue template 2019-10-09 15:16:31 +02:00
Michael Schrempp 836f6cf64b Reverted the revert. Should i keep going? :P 2019-10-09 15:01:39 +02:00
Lukas Obermann 4411fb2790 Fixed SearchField hint 2019-10-08 23:18:16 +02:00
Michael Schrempp 3b199dc357 Reverted last change, as it works with an additional Table entry (Aspect 40===Namenloser). Adding an extra change should be more of a quick and dirty version 2019-10-08 16:11:04 +02:00
Michael Schrempp 4c78e5181b Requested Changes 2019-10-08 15:57:32 +02:00
Michael Schrempp 7b52e8cfbe Registered namenloser as Aspekt 2019-10-07 13:47:37 +02:00
Michael Schrempp bad32ac5bc Eliminated copypaste errors on liturgical chant sheet 2019-10-07 10:11:59 +02:00
Lukas Obermann cf456f8b3e Fixed #49 and "Große Meditation" increasing AE (6 per level of the SA) 2019-10-06 14:54:54 +02:00
Michael Schrempp dd4d961cea resolved merge conflict 2019-10-06 11:57:21 +02:00
Michael Schrempp 42aa971c49 Merge branch 'develop' of github.com:LLmichi1/optolith-client into develop 2019-10-06 11:51:28 +02:00
Michael Schrempp dab01f6b04 trailing comma 2019-10-06 11:48:58 +02:00
LLmichi1 18dafd8f23 Merge pull request #3 from elyukai/develop
update
2019-10-06 11:43:17 +02:00
Lukas Obermann dd392ebcdd Fixed text fields for search 2019-10-06 01:17:16 +02:00
Lukas Obermann 393d44f496 Fixed #90 2019-10-06 00:38:30 +02:00
Lukas Obermann 6d8b8949ce Avatars are now always saved base64-encoded 2019-10-05 23:40:34 +02:00
Lukas Obermann 632e2ebaae Added hero data fix for #99 2019-10-05 23:05:28 +02:00
Lukas Obermann 77a431bda0 Fixed fmap on Promise functor 2019-10-05 22:53:19 +02:00
Lukas Obermann 90c30c0433 Fixed #99 2019-10-05 22:09:01 +02:00
Lukas Obermann 7e8af28c2b Refactored IO to direct use of Promises 2019-10-05 20:10:05 +02:00
Lukas Obermann 0aad8be99b Unified Dialog to use React Portals API, fixed displaying window controls during load and refactored several files 2019-10-05 15:56:41 +02:00
Lukas Obermann ae70d737d3 Renamed minor pact 2019-10-04 08:29:52 +02:00
Lukas Obermann f390873cca Fixed icon button tooltips and added tooltips to herolist 2019-10-03 23:01:19 +02:00
Lukas Obermann 15533867da Finished AKO2 2019-10-03 21:28:46 +02:00
Lukas Obermann 737ccbe73d Finished SocialPrerequisite implementation for #136 2019-10-03 20:42:57 +02:00
Lukas Obermann 15d50af0ff Finished tooltip refactoring for #57 2019-10-03 19:43:46 +02:00
Lukas Obermann a9f0c4913f Upgraded Overlay component to adjust to windows border 2019-10-03 11:56:38 +02:00
Lukas Obermann 9a59b9de7d Some refactorings for tooltips, preparation/cleanup for bigger refactor 2019-09-22 22:21:10 +02:00
Lukas Obermann 1cdacd52d3 Improved undo/redo for text fields 2019-09-19 16:00:52 +02:00
Elytherion d1540507a8 Further work on social dependencies 2019-09-12 23:29:59 +02:00
Elytherion 33c037a49d Started work on social prerequisites 2019-09-12 22:59:08 +02:00
Elytherion 405dcc2e3d Replaced all static IDs with enum IDs 2019-09-12 21:33:28 +02:00
Elytherion 16586962b5 Added complete NL l10n and cultural package use detection 2019-09-11 19:56:35 +02:00
Elytherion 0275fb06c1 Added compiling the SCSS files 2019-09-11 17:45:54 +02:00
Elytherion 16fb875706 Fixed showing correct "instead-of-X" values for combat techniques in profession variants 2019-09-10 23:44:39 +02:00
Elytherion 16408c5163 Some refactoring of Maybe and use of Hooks 2019-09-10 23:25:11 +02:00
Lukas Obermann 4da3637a28 Fixed setWeight/setSize in reducer 2019-09-09 20:41:15 +02:00
Lukas Obermann 832b960feb Added use of cultural package to save data 2019-09-08 18:35:27 +02:00
Lukas Obermann 55d2ef8560 Refactored handling of tradition IDs 2019-09-08 15:44:32 +02:00
Lukas Obermann b43db1f4af Fixed advantage Leichter Gang increasing MOV by 1 2019-09-08 02:34:00 +02:00
Lukas Obermann b03ab6ec6b Exchanged more computed IDs to enum IDs 2019-09-08 02:28:48 +02:00
Lukas Obermann 6a0b29bf50 Moved yml upload to end of files to upload 2019-09-07 23:11:47 +02:00
Lukas Obermann 6519366237 Fixed encryption shell script 2019-09-07 23:00:07 +02:00
Lukas Obermann 87f1640845 Updated tables and script to encrypt tables 2019-09-07 22:41:05 +02:00
Lukas Obermann 1d8bbcc585 Increased version number 2019-09-07 21:53:14 +02:00
Lukas Obermann 52349b7c4f Fixed blessed styles 2019-09-07 21:52:43 +02:00
Elytherion cd911b6fa2 Some refactoring 2019-09-05 21:57:32 +02:00
Elytherion 20b53e2183 Updated files to include 2019-09-05 18:45:45 +02:00
Elytherion 48e20aeb58 Moved modifications not allowed for a specific aspect of a spell/chant to univ 2019-09-05 00:31:29 +02:00
Elytherion f9ecc29452 Fixed Higher Parade Values' influence on DO 2019-09-04 11:00:47 +02:00
Elytherion 5352a9b58f Added some more general documentation 2019-09-03 23:44:34 +02:00
Elytherion d586e1d31c Updates CONTRIBUTING to reflect folder changes 2019-09-03 19:53:56 +02:00
Elytherion ecea624597 Added final handling for applicable combat techniques for special abilities in univ 2019-09-03 00:24:21 +02:00
Elytherion 5561b4ce9a Fixed test and converted ESLint config to YAML 2019-09-02 15:11:40 +02:00
Lukas Obermann 9dcc609a65 Added @@name field to Record interfaces and handles scheme change 2019-09-02 14:22:02 +02:00
Elytherion c0fe9ad36c Added "Uploading ..." logs 2019-08-29 23:58:33 +02:00
Elytherion 749b741d9e Fixed path 2019-08-29 22:17:19 +02:00
Elytherion 9d24740019 Switched to Buffer and client.put() 2019-08-29 22:06:03 +02:00
Elytherion 0100b67321 Switched to SFTP 2019-08-29 21:53:08 +02:00
Elytherion 9402e9ea29 Added more debug info 2019-08-29 15:00:10 +02:00
Elytherion 714851169d Restored merged stages 2019-08-29 14:28:05 +02:00
Elytherion 0e28d9cc06 Splitted stages 2019-08-29 14:11:43 +02:00
Elytherion c3954894b8 Excluded compile from scripts 2019-08-29 14:09:25 +02:00
Elytherion 7c4c96bc0b Fixed error code handling 2019-08-29 13:52:51 +02:00
Elytherion 0fadd13ed0 Added early error handling to publish script and merged stages 2019-08-29 13:41:42 +02:00
Elytherion 26ec51a7d3 Fixed publish script 2019-08-29 13:23:35 +02:00
Elytherion 2633ee4b2d Try to fix CI, Take No. 6 2019-08-29 13:17:22 +02:00
Elytherion bf795c4eb5 Try to fix CI, Take No. 5 2019-08-28 23:15:54 +02:00
Elytherion 5e6d9c5616 Try to fix CI, Take No. 4 2019-08-28 22:20:51 +02:00
Elytherion a546f72c27 Try to get CI running, Take No. 3 2019-08-28 21:59:12 +02:00
Elytherion 633fbfd9f8 Try to fix CD No 2 2019-08-28 18:30:49 +02:00
Elytherion 167f75fb9e Trying to fix Deploy 2019-08-28 17:10:28 +02:00
Elytherion 244265e2ae Fixed user data fix 2019-08-28 15:40:20 +02:00
Elytherion 79b7185892 Fixed userData issue 2019-08-28 15:36:39 +02:00
Lukas Obermann a994cee8ed Merge pull request #201 from Zakant/ciDev
Reworked CI/CD logic
2019-08-28 11:43:50 +02:00
Zakant f42c2af704 Change to 2019-08-28 11:42:00 +02:00
Zakant 9cacf33c80 Restore .vscode 2019-08-28 11:40:14 +02:00
Zakant 0914d9f8ef Reworked CI/CD logic 2019-08-28 11:25:30 +02:00
Lukas Obermann c136c2e1bc Added Code of Conduct 2019-08-28 11:11:35 +02:00
Elytherion 1e79f6e656 Switched to proper sign for weight calc for Humans 2019-08-28 00:47:45 +02:00
Lukas Obermann a569aed155 Revert "Add CI/CD code and config" 2019-08-27 19:32:26 +02:00
Lukas Obermann 00a31e8468 Revert "Add CI/CD code and config" 2019-08-27 19:31:20 +02:00
Elytherion 315987197b Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2019-08-27 19:19:52 +02:00
Elytherion f2162fdc06 Now uses DC ids as enum 2019-08-27 19:19:47 +02:00
Lukas Obermann 78fdcb2a89 Add CI/CD code and config 2019-08-27 19:18:57 +02:00
Zakant 8e1528f39e Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2019-08-27 18:52:16 +02:00
Zakant 5e9faa7a84 Added CI/CD code and config 2019-08-27 18:51:36 +02:00
Elytherion 94fab2b2b9 Added missing groups 2019-08-27 18:17:48 +02:00
Elytherion f31315161d Fixed extended special abilities and some entries with skill selection 2019-08-27 14:33:31 +02:00
Lukas Obermann cb62c1e1e2 Integrates Brew for Hexenkessel-SAs in InlineWiki 2019-08-27 03:01:18 +02:00
Lukas Obermann 3951d3fd95 Merge branch 'develop' into develop 2019-08-27 02:58:45 +02:00
Elytherion b336f1054a Switched to ESLint and introduced group and id enums 2019-08-27 02:49:47 +02:00
Lukas Obermann 057eadc123 Added first part for up and download of files and tables 2019-08-26 02:16:51 +02:00
Lukas Obermann 307b3a7c7e Merge branch 'develop' of https://github.com/elyukai/optolith-client into develop 2019-08-21 20:20:55 +02:00
Lukas Obermann 3e6f695436 Added Lens descriptions 2019-08-21 20:20:51 +02:00
Michael Schrempp 16b52de898 activatableActiveAvalidationUtils braucht jetzt nicht mehr alle magischen/karmalen Traditionen aufzählen 2019-08-20 11:24:10 +02:00
Elytherion 14c0236107 Update some CD logic, still parts missing though 2019-08-20 11:16:31 +02:00
Michael Schrempp 9f34df940c Hexenkessel-SF besitzen jetzt auch die Sparte 'Gebräu' 2019-08-17 14:38:27 +02:00
Elytherion 99a5078c35 Fixed Build 2019-08-17 02:56:43 +02:00
Elytherion bc1ce5efa5 Started exploring TravisCI 2019-08-17 02:52:42 +02:00
LLmichi1 72b23a36a0 Merge pull request #2 from elyukai/develop
ref
2019-08-16 11:30:34 +02:00
Elytherion b135031841 Fixed circular deps 2019-08-16 01:03:44 +02:00
Elytherion 54be0be399 Tried to fix CI 2019-08-16 00:05:31 +02:00
Elytherion f2caeafab4 Cleaned up a bit 2019-08-15 23:56:49 +02:00
Elytherion b8dae7b4c5 Fixed some type issues and used Intl.ListFormat 2019-08-15 01:03:27 +02:00
Elytherion b81973c993 Fixed spacing 2019-08-14 17:14:00 +02:00
Lukas Obermann 72f093b9bb Changed caption formatting 2019-08-14 16:50:44 +02:00
Lukas Obermann 20f7342cbb Updated New Book Data template 2019-08-14 16:32:35 +02:00
Lukas Obermann 8004f6a43b Added bug report and feature request templates 2019-08-14 16:30:01 +02:00
Lukas Obermann 0a4ddaee75 Removed default 2019-08-14 15:52:02 +02:00
Lukas Obermann e218ebef99 Added New Book Data template 2019-08-14 15:50:13 +02:00
LLmichi1 5106842971 Merge pull request #1 from elyukai/develop
Reworked contribution guide
2019-08-14 09:32:07 +02:00
Lukas Obermann e45d21f283 Reworked contribution guide 2019-08-14 00:09:36 +02:00
Lukas Obermann d406a0ddf3 Merge pull request #25 from LLmichi1/develop
Falls du das nächste mal mergen willst
2019-08-13 16:30:29 +02:00
Elytherion 29f838f90e Added open source license 2019-08-13 14:51:12 +02:00
Elytherion a29717c9f3 A try to get everything done until RatCon ... its not done 2019-08-09 00:35:28 +02:00
Michael Schrempp 64e48849a7 Renamed smth and removed the restriction for Schönheit der Dar-Klajid 2019-08-08 15:27:15 +02:00
Michael Schrempp 01dccb4af9 Minderpaktierer können nun Paktgeschenke bekommen. Anzahl der Paktgeschenke für Dämonenpakte ist nun wie gewollt begrenzt 2019-08-08 11:54:29 +02:00
Michael Schrempp c0952d0feb Lesser Pact now allows to buy pact gifts 2019-08-08 10:08:28 +02:00
LLmichi1 8b7dab6468 Merge pull request #9 from Elytherion/develop
update
2019-08-08 08:36:01 +02:00
Elytherion 71fdc54c02 Fixed electron 6 2019-08-07 13:47:41 +02:00
Elytherion e308719035 Added alpha version 2019-08-06 21:04:58 +02:00
Lukas Obermann 3f6cc15131 Update 1.1.2 2019-08-06 21:01:35 +02:00
Elytherion e70943f415 Added changelog 2019-08-06 20:59:43 +02:00
Elytherion 018941cd3a Fixed copy naming 2019-08-06 17:33:33 +02:00
Elytherion fbf254efe9 Prepared 1.1.2 2019-08-06 17:32:51 +02:00
Elytherion 6fca96af97 Fixed all issues 2019-08-06 17:15:00 +02:00
Michael Schrempp 694e15e953 Anzeigebugs für Animistenkräfte gefixt 2019-08-06 15:29:18 +02:00
Michael Schrempp 609e69eca7 Finished Traditions of AMA3 2019-08-06 15:11:21 +02:00
Elytherion 21a1595c4c Fixed displaying combat SA groups in wiki eintries 2019-08-06 14:39:49 +02:00
Michael Schrempp 025fa55304 Merge branch 'develop' of github.com:LLmichi1/tdeheroes-code into develop 2019-08-06 13:53:09 +02:00
Michael Schrempp 57892f094a To be stable 2019-08-06 13:52:56 +02:00
LLmichi1 22f09a7577 Merge pull request #8 from Elytherion/develop
Merge pull request #23 from LLmichi1/develop
2019-08-06 13:50:52 +02:00
Lukas Obermann 31d9582eff Merge pull request #23 from LLmichi1/develop
Synchronisierung
2019-08-06 13:47:33 +02:00
Lukas Obermann cf033eeb2a Merge branch 'develop' into develop 2019-08-06 13:46:44 +02:00
Elytherion afbbdbad4d Added line break 2019-08-06 13:43:20 +02:00
Elytherion 4a08b79dcf Added example 2019-08-06 13:42:40 +02:00
Elytherion c7d4359b35 Added Function calls as a parameter coding style 2019-08-06 13:41:02 +02:00
Elytherion 91afd7b67d Fixed bug and added ternary operator to coding style 2019-08-06 13:26:08 +02:00
Michael Schrempp d3320e19da Added comment for magic number 2019-08-06 13:22:01 +02:00
Michael Schrempp 26ccfbb439 Corrected merge request 2019-08-06 13:19:22 +02:00
Michael Schrempp 1e5ef82041 Animistenkräfte werden vernünftig angezeigt 2019-08-06 11:59:50 +02:00
Michael Schrempp db50022b50 Demonpacts can now be chosen as expected 2019-08-05 14:35:40 +02:00
Michael Schrempp c2a1fb2626 Paktschluss mit Dämonen ist jetzt vernünftig. Evtl nochmal Mini-Überarbeitungsbedarf beim Wechsel zwischen Freie und Erzdämonen (Pakt sollte nicht valide bleiben) 2019-08-05 10:24:57 +02:00
Elytherion a1d46897ae Fixed bbcode format 2019-08-04 14:39:48 +02:00
Lukas Obermann 5e1dac296d Merge pull request #24 from Elytherion/release/1.1.0
Release/1.1.0
2019-08-04 12:30:53 +02:00
Lukas Obermann 462ac88747 Merge pull request #19 from Elytherion/release/1.1.0
Release 1.1.0
2019-08-04 12:24:59 +02:00
Elytherion adfaaef09d Fixed AP for automatic advantages 2019-08-04 02:43:38 +02:00
Elytherion 50d034bf1d Fixed missing bugs and completed changelog 2019-08-04 02:10:52 +02:00
Elytherion 085ca9f91a Fixed all bugs except equipment text display problem 2019-08-03 01:00:36 +02:00
Michael Schrempp 4e9ddc4910 Minderpakte hinzugefügt, vielleicht das Interface dafür nochmal anpassen 2019-08-02 17:47:01 +02:00
Michael Schrempp df71a7147a Dämonenpakte sind jetzt verfügbar 2019-08-02 16:37:51 +02:00
Michael Schrempp f74c7a5f84 Removed pact comments 2019-08-01 17:47:16 +02:00
Michael Schrempp c63175f96c missed a file 2019-08-01 16:53:32 +02:00
Michael Schrempp 05926768fc Added demondomains in code 2019-08-01 15:43:14 +02:00
Michael Schrempp eb40487ee5 Added some TODOs 2019-08-01 15:32:17 +02:00
Michael Schrempp f3ae96418b Leiteigenschaften werden nun korrekt berücksichtigt 2019-07-31 15:26:55 +02:00
Michael Schrempp c48e99a3cc Added Leiteigenschaften for Zibilijas and Brobim-Geoden 2019-07-31 15:12:01 +02:00
Elytherion 9dfb59060a Generalized prerequisites for select options 2019-07-31 00:54:59 +02:00
LLmichi1 c2cccd3a68 Merge pull request #7 from Elytherion/develop
adfh
2019-07-30 14:48:26 +02:00
Lukas Obermann cf5c661a3d Fixed FAQ and SPI/2 2019-07-30 14:42:05 +02:00
Lukas Obermann 12ccd334b9 Merge branch 'develop' into release/1.1.0 2019-07-30 14:41:30 +02:00
Michael Schrempp 290c4a593d trailing whitespaces 2019-07-30 14:37:57 +02:00
LLmichi1 2c83c3e738 Merge pull request #6 from Elytherion/develop
Merge pull request #21 from LLmichi1/develop
2019-07-30 14:14:30 +02:00
Elytherion 147852ec43 Fixed FAQ and SPI/2 2019-07-30 12:23:04 +02:00
Lukas Obermann 55343a03b0 Merge pull request #21 from LLmichi1/develop
fixed saveandclose
2019-07-30 11:58:15 +02:00
Lukas Obermann 13232ff95e Merge branch 'develop' into develop 2019-07-30 11:57:27 +02:00
Michael Schrempp 7d4db370bd Adjusted InlineWiki for new Spell Categories 2019-07-30 11:35:36 +02:00
Michael Schrempp 9bf3616813 Added some magical Traditions 2019-07-30 11:29:03 +02:00
Lukas Obermann 0f0c10e054 1.1.0 changes without 1.1.1 fixes 2019-07-30 11:21:39 +02:00
Michael Schrempp 4e00805323 Added SK/2 to checkModifiers and adjusted 'Herrschaftsrituale' 2019-07-30 09:18:48 +02:00
Michael Schrempp e81860c895 Volumen und Merkmal für Traditionsgegenstände ergänzt 2019-07-29 19:12:59 +02:00
Michael Schrempp 054bc8dd5d Zauberdauer -> Ritualdauer für die Rituale 2019-07-29 18:30:33 +02:00
Michael Schrempp 9219932807 Anzeige für neue Zaubertypen in AMA3 verbessert 2019-07-29 16:16:54 +02:00
Michael Schrempp de78ad7e0b Zauberbeschränkungen für Animisten eingefügt 2019-07-29 15:30:36 +02:00
Elytherion cea6dba522 Fixed path issue and other reported bugs 2019-07-29 00:42:08 +02:00
Elytherion d990e2dcc4 Fixed version 2019-07-27 01:43:26 +02:00
Elytherion ff5427a74e Last fixes for 1.1 2019-07-27 01:41:35 +02:00
Michael Schrempp a0609da64f Added Wirkungsdauer for Animistenkräfte 2019-07-26 20:38:27 +02:00
Elytherion abc921d26d Fixed wiki restrictions 2019-07-26 00:48:18 +02:00
Elytherion d8650900ef Finished 1.1.0 2019-07-26 00:07:50 +02:00
Michael Schrempp 3aa56f94dd AMAIII new spells can now be shown in Wiki. They are not all correct, but at least visible 2019-07-25 09:52:59 +02:00
Michael Schrempp 73f415bd0e Added Scripts 2019-07-22 15:44:51 +02:00
Elytherion fef77fd776 Anonymized copyTables and fixed primary attribute damage threshold in InlineWiki 2019-07-22 13:57:30 +02:00
Michael Schrempp a6cea9e741 Renamed saveandclose to saveandquit to match the name in l10n table 2019-07-22 07:40:23 +02:00
Elytherion bf746303c4 Fixed issues with liturgical chants 2019-07-22 02:31:58 +02:00
Elytherion 30dd3d3788 Further BST map explorations 2019-07-21 00:38:03 +02:00
Elytherion a3a68aa6bf Added basic IntMap and fixed tests 2019-07-20 02:38:30 +02:00
Elytherion e4767c04f1 Added Num type checks 2019-07-19 12:23:25 +02:00
LLmichi1 aa8cb0e003 Merge pull request #5 from Elytherion/develop
give me the actual stand
2019-07-19 11:00:34 +02:00
Elytherion dd8ecb5999 Fixed ENC text casing 2019-07-19 02:30:16 +02:00
Elytherion 131131c330 - Fixed prerequisites text for Activatables
- Added displaying custom ENC text and uses to InlineWiki for skills
2019-07-19 02:27:46 +02:00
Elytherion ae048e1ce3 Removed unnecessary logs 2019-07-19 00:55:50 +02:00
Elytherion be5ac933be Fixed remaining (technical) bugs 2019-07-19 00:54:49 +02:00
Elytherion b61aaa4e36 Fixed remaining merge errors 2019-07-18 22:42:54 +02:00
Elytherion f02a71ea66 Merge Data.Int and mathUtils into Data.Num 2019-07-18 22:38:43 +02:00
Elytherion fb3135536f - Merged Exceptional Sense and Restricted Sense entries
- Fixed a lot of bugs
2019-07-18 02:51:26 +02:00
Elytherion 30abadf066 Removed styles for testing purposes 2019-07-17 14:44:06 +02:00
Elytherion 5dd55b0af7 Fixed scrollbars on sheets and padding issues 2019-07-17 14:43:36 +02:00
Elytherion 0897a09384 Fixed some issues with professions 2019-07-17 02:55:09 +02:00
Elytherion 9bd70beeea Fixed some minor bugs 2019-07-16 20:11:22 +02:00
Elytherion c05c589cd8 Finished additional sources and fixed some minor bugs 2019-07-16 01:32:31 +02:00
Elytherion 026bf82c1d Fixed tests 2019-07-15 20:51:36 +02:00
Elytherion 36f4dc847b - Fixed Herrschaftsrituale in InlineWiki
- Fixed sid dependencies
- Added option to merge and show source links
2019-07-15 20:48:14 +02:00
Elytherion 8954dde8c3 Started debugging level dependencies 2019-07-15 02:11:20 +02:00
Elytherion a63f41dd38 Fixed scheme check 2019-07-15 00:48:50 +02:00
Elytherion 1bdfe1eea5 - Fixed Aspect Knowledge
- Improved unsaved actions dialog
- Fixed sorting spelly by property
- Fixed Property Knowledge
- Fixed data: images in herolist
- Fixed sorting spell/chant extensions in InlineWiki
2019-07-14 22:57:55 +02:00
Elytherion bbb0b459be Fixed sort extensions by AP 2019-07-12 14:26:27 +02:00
Elytherion f18750168a Fixed copyTables npm scripts 2019-07-11 14:01:50 +02:00
Elytherion c9998dfe62 Updated build scripts for stable builds, separated copy tables logic 2019-07-11 13:53:21 +02:00
Elytherion 4bb097ac65 Preparation for beta test 2019-07-11 00:32:24 +02:00
Elytherion b3281e2066 Fixed all remaining issues relevant for v1.1 2019-07-11 00:28:53 +02:00
Elytherion 3b7ddf3747 Fixed multiple issues with Pets 2019-07-10 16:26:46 +02:00
Elytherion c43a3c60ef Fixed image issues on Linux 2019-07-10 14:30:52 +02:00
LLmichi1 acbff114d0 Merge pull request #4 from Elytherion/develop
ewfd
2019-07-10 10:49:19 +02:00
Elytherion b620edcf17 - Fixed curses AP calc in RCP option selections
- You cant buy spell extensions for unfamiliar spells anymore.
- Fixed extended SA prerequisites view
- Fixed profession variant skills view
2019-07-10 02:47:59 +02:00
Elytherion 47e56a41d3 - Fixed spells in profession variants in InlineWiki
- Fixed removing spell if on SR 0 after merging profession base and variant
2019-07-09 22:11:38 +02:00
LLmichi1 04aff07e86 Merge pull request #3 from Elytherion/develop
test
2019-07-09 17:18:32 +02:00
Elytherion b83e5f77cc Merge branch 'develop' of https://github.com/Elytherion/tdeheroes-code into develop 2019-07-09 16:13:06 +02:00
Elytherion c2794be7d3 - Fixed AP cost of SA "Bindung des Bannschwerts"
- No unfamiliar spells/cantrips for "Intuitive Zauberer"
2019-07-09 16:13:01 +02:00
LLmichi1 a9381b2994 Merge pull request #18 from LLmichi1/develop
Initial Pull Request
2019-07-09 15:46:43 +02:00
Michael Schrempp 3ee6805233 Fixed Intuitive Mages to not choose Rituals or D Spells, also limited C Spells to 1 2019-07-09 15:42:58 +02:00
Elytherion d634bde250 Added real names to all Records to get proper record names in show 2019-07-09 13:47:33 +02:00
Elytherion e957c532a1 Started debugging SA_344 AP costs 2019-07-08 21:19:43 +02:00
Elytherion 8b761731ad Added filtering special abilities by nameInWiki as well 2019-07-08 20:18:11 +02:00
LLmichi1 2de64f4025 Merge pull request #2 from Elytherion/develop
Fixed validateLevel
2019-07-08 13:58:49 +02:00
Elytherion 0353760990 Fixed validateLevel 2019-07-08 12:57:44 +02:00
Michael Schrempp 034ed5ee85 Typo in merge 2019-07-08 09:20:00 +02:00
LLmichi1 f2b32f9f4c Merge branch 'develop' into develop 2019-07-08 09:12:54 +02:00
Michael Schrempp 520c8d7490 Matching Merge restrictions 2019-07-08 09:07:29 +02:00
Elytherion 5612a48ec4 Removed log and added "How to add LP/AE/KP" to FAQ 2019-07-08 02:58:16 +02:00
Elytherion d128b61369 Fixed automatic advantages cost no AP 2019-07-08 02:34:45 +02:00
Elytherion 5f127485e7 Fixed sort options type and fixed updating dateModified on save 2019-07-08 01:39:54 +02:00
Elytherion c57e352840 - Added proper localization for manual hero data repair options
- Fixed shields view on character sheet
- Fixed pact tab
- Added hint bc of incomplete pact options
2019-07-08 00:42:46 +02:00
Elytherion 06aff3c21f Fixed advantage "Less Visions" 2019-07-07 22:32:20 +02:00
Elytherion c503f60f00 - Added minimum attribute value restrictions for added energies
- Fixed liturgical chants and spells tables on character sheet
2019-07-07 22:00:12 +02:00
Elytherion 7d3c78fc01 - Fixed removing specific special abilities from base professions 2019-07-07 20:02:53 +02:00
Elytherion d8da233f63 - Fixed Activatable dependencies
- Fixed comma in Activatable InlineWiki
- Added named records (for `show`)
- Completed Data.Bool module
- Removed Pair test (included in Tuple)
- Remove unsafe Record checkers - now uses RecordCreator#is instead
2019-07-07 19:32:33 +02:00
Elytherion 99c583baca Removed unnecessary concatMap 2019-07-07 01:03:40 +02:00
Elytherion 0427717a81 Fixed comma in InlineWiki for special abilities 2019-07-07 00:54:22 +02:00
Elytherion 6ce15f77f3 Reverted ES Modules change, switched to custom classNames and fixed x === true in views 2019-07-07 00:25:04 +02:00
Michael Schrempp f9ce0703f9 Removed Debug Output 2019-07-06 10:24:01 +02:00
Michael Schrempp cf6e2d7c08 Fixed the bug, where SpecialAbilities and DisAdvantages had no level on the character sheet. The reason was the boolean addLevelToName in activatableCostUtils:convertPerTierCostToFinalCost, which was used in the other way then the original variable 2019-07-06 10:12:07 +02:00
Michael Schrempp 3abfbbae05 Initializing Debugger 2019-07-05 14:23:35 +02:00
Michael Schrempp f061dadfba Merge branch 'Elytherion-develop' into develop 2019-07-04 16:39:57 +02:00
Michael Schrempp 39c2ce2290 merged package lock 2019-07-04 16:39:35 +02:00
Elytherion 43b53a83f3 Removed Data.Pair in favor of Data.Tuple 2019-07-02 19:34:11 +02:00
Michael Schrempp cc495907e8 package-lock.json inserted. State after installation & compile 2019-06-04 12:42:53 +02:00
Lukas Obermann a4852d441a Release 1.0.3 2019-03-13 03:21:28 +01:00
Lukas Obermann 88691e9066 Merge pull request #9 from Elytherion/develop
Release
2018-04-16 02:16:05 +02:00
1186 changed files with 95622 additions and 56697 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"extends": ["@commitlint/config-conventional"]
}
+6
View File
@@ -0,0 +1,6 @@
src/App/Utilities/YAML/Schema/
*.js
*.gen.tsx
node_modules
/app
/deploy
-36
View File
@@ -1,36 +0,0 @@
{
"plugins": ["tslint"],
"parser": "typescript-eslint-parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"ecmaFeatures": {
"modules": true,
"jsx": true
},
"env": {
"node": true
},
"rules": {
"prefer-const": 1,
"no-var": 2,
"no-new-object": 2,
"function-paren-newline": [2, "consistent"],
"arrow-parens": [2, "as-needed"],
"no-case-declarations": 2,
"no-nested-ternary": 1,
"no-unneeded-ternary": 2,
"no-mixed-operators": [2, {
"groups": [
["&", "|", "^", "~", "<<", ">>", ">>>"],
["==", "!=", "===", "!==", ">", ">=", "<", "<="],
["&&", "||"],
["in", "instanceof"]
],
"allowSamePrecedence": true
}],
"newline-per-chained-call": [2, { "ignoreChainWithDepth": 2 }],
"no-whitespace-before-property": 2
}
}
+496
View File
@@ -0,0 +1,496 @@
root: true
parser: "@typescript-eslint/parser"
plugins:
- "@typescript-eslint"
- eslint-plugin-react
- eslint-plugin-react-hooks
- eslint-plugin-tsdoc
parserOptions:
ecmaVersion: latest
sourceType: module
project:
- ./tsconfig.json
ecmaFeatures:
jsx: true
env:
commonjs: true
node: true
es6: true
browser: true
rules:
# Possible errors
for-direction: 2
getter-return: 2
no-async-promise-executor: 1
no-compare-neg-zero: 1
no-cond-assign: 2
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-duplicate-case: 2
no-empty-character-class: 2
no-ex-assign: 2
no-inner-declarations: 1
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-misleading-character-class: 2
no-prototype-builtins: 2
no-regex-spaces: 2
no-sparse-arrays: 2
no-template-curly-in-string: 2
no-unreachable: 2
no-unsafe-finally: 2
no-unsafe-negation: 2
require-atomic-updates: 2
use-isnan: 2
# Best Practices
accessor-pairs: 2
class-methods-use-this: 1
# complexity: 2
curly:
- 2
- all
default-case: 2
dot-location:
- 2
- property
# dot-notation:
# - 2
# - allowKeywords: false
eqeqeq: 2
guard-for-in: 2
no-alert: 2
no-caller: 2
no-case-declarations: 2
no-div-regex: 2
# no-else-return:
# - 2
# - allowElseIf: true
# no-empty-function: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-extend-native:
- 2
- exceptions:
- "Array"
- "Map"
- "Set"
no-extra-bind: 2
no-extra-label: 2
no-fallthrough: 2
no-floating-decimal: 2
no-global-assign: 2
no-implicit-coercion:
- 2
- allow:
- "!!"
no-implied-eval: 2
# no-invalid-this: 2
no-iterator: 2
no-labels: 2
no-lone-blocks: 2
no-loop-func: 2
no-multi-spaces: 2
no-multi-str: 2
no-new: 2
no-new-func: 2
no-new-wrappers: 2
no-octal: 2
no-octal-escape: 2
no-param-reassign: 2
no-proto: 2
no-redeclare: 0
no-return-assign: 2
no-script-url: 2
no-self-assign: 2
no-self-compare: 2
no-throw-literal: 2
no-unmodified-loop-condition: 2
no-unused-labels: 2
no-useless-call: 2
no-useless-catch: 2
no-useless-concat: 2
no-useless-escape: 2
no-useless-return: 2
no-void: 2
no-warning-comments: 1
no-with: 2
prefer-named-capture-group: 1
prefer-promise-reject-errors: 2
radix: 2
require-unicode-regexp: 2
wrap-iife: 2
yoda: 2
# Variables
init-declarations: 2
no-delete-var: 2
no-label-var: 2
no-shadow: 0
no-shadow-restricted-names: 2
# no-undef: 2
# Stylistic Issues
array-bracket-spacing:
- 2
- always
array-element-newline:
- 2
- consistent
block-spacing: 2
# capitalized-comments: 2
comma-dangle:
- 2
- arrays: always-multiline
objects: always-multiline
imports: always-multiline
exports: always-multiline
functions: only-multiline
comma-style: 2
computed-property-spacing: 2
eol-last: 2
func-name-matching: 2
func-names: 2
func-style:
- 2
- declaration
- allowArrowFunctions: true
function-call-argument-newline:
- 2
- consistent
function-paren-newline:
- 2
- multiline-arguments
jsx-quotes: 2
key-spacing: 2
keyword-spacing: 2
line-comment-position: 2
lines-around-comment:
- 0
# requires an empty line before block comments
- beforeBlockComment: true
# requires an empty line after block comments
afterBlockComment: false
# requires an empty line before line comments
beforeLineComment: true
# requires an empty line after line comments
afterLineComment: false
# allows comments to appear at the start of block statements
allowBlockStart: true
# allows comments to appear at the end of block statements
allowBlockEnd: false
# allows comments to appear at the start of object literals
allowObjectStart: true
# allows comments to appear at the end of object literals
allowObjectEnd: false
# allows comments to appear at the start of array literals
allowArrayStart: true
# allows comments to appear at the end of array literals
allowArrayEnd: false
# allows comments to appear at the start of classes
allowClassStart: true
# allows comments to appear at the end of classes
allowClassEnd: false
ignorePattern: "^ *@"
lines-between-class-members: 2
max-len:
- 2
- code: 100
ignoreComments: true
ignoreTemplateLiterals: true
ignorePattern: "^import |^export \\{(.*?)\\}|^ \\* |^ *it ?\\(\"\\w+"
max-statements-per-line: [2, { max: 2 }]
multiline-ternary:
- 2
- always-multiline
new-parens: 2
newline-per-chained-call:
- 2
- ignoreChainWithDepth: 2
no-bitwise: 2
no-continue: 2
no-inline-comments: 2
no-lonely-if: 2
no-mixed-operators:
- 2
- groups:
- ["&", "|", "^", "~", "<<", ">>", ">>>"]
- ["==", "!=", "===", "!==", ">", ">=", "<", "<="]
- ["&&", "||"]
- ["in", "instanceof"]
allowSamePrecedence: true
no-mixed-spaces-and-tabs: 2
no-multi-assign: 2
no-multiple-empty-lines: 2
no-negated-condition: 2
no-new-object: 2
no-tabs: 2
no-trailing-spaces: 2
no-unneeded-ternary: 2
nonblock-statement-body-position: 2
# object-curly-newline:
# - 2
# - multiline: true
object-curly-spacing:
- 2
- always
operator-assignment: 2
operator-linebreak:
- 2
- before
- overrides:
"=": ignore
padded-blocks:
- 2
- blocks: never
classes: never
switches: never
padding-line-between-statements:
- 2
- blankLine: always
prev: "*"
next: return
prefer-object-spread: 2
quote-props:
- 2
- as-needed
semi-spacing: 2
semi-style: 2
space-before-blocks: 2
space-in-parens: 2
space-infix-ops:
- 2
- int32Hint: true
space-unary-ops: 2
spaced-comment: 2
switch-colon-spacing: 2
template-tag-spacing:
- 2
- always
# ECMAScript 6
arrow-body-style: 2
arrow-parens:
- 2
- as-needed
arrow-spacing: 2
constructor-super: 2
generator-star-spacing:
- 2
- after
no-class-assign: 2
no-new-symbol: 2
no-this-before-super: 2
no-useless-computed-key: 2
no-useless-rename: 2
no-var: 2
object-shorthand: 2
prefer-arrow-callback: 2
prefer-const: 2
prefer-destructuring:
- 2
- object: true
array: false
prefer-numeric-literals: 2
prefer-rest-params: 2
prefer-spread: 2
prefer-template: 2
require-yield: 2
rest-spread-spacing: 2
# sort-imports:
# - 2
# - ignoreCase: true
# ignoreMemberSort: true
symbol-description: 2
template-curly-spacing: 2
yield-star-spacing:
- 2
- after
# TypeScript
"@typescript-eslint/adjacent-overload-signatures": 2
"@typescript-eslint/array-type": 2
"@typescript-eslint/await-thenable": 2
# "@typescript-eslint/class-name-casing": 2
"@typescript-eslint/consistent-type-assertions": 2
"@typescript-eslint/member-delimiter-style":
- 2
- multiline:
delimiter: none
singleline:
delimiter: semi
requireLast: false
"@typescript-eslint/naming-convention":
- error
- selector: interface
format:
- PascalCase
custom:
regex: "^I[A-Z]"
match: false
"@typescript-eslint/no-floating-promises": 2
"@typescript-eslint/no-for-in-array": 2
"@typescript-eslint/no-inferrable-types": 2
"@typescript-eslint/no-misused-new": 2
"@typescript-eslint/no-misused-promises": 2
"@typescript-eslint/no-this-alias": 2
"@typescript-eslint/no-unnecessary-type-arguments": 2
"@typescript-eslint/no-unnecessary-type-assertion": 2
"@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
"@typescript-eslint/restrict-plus-operands": 2
# "@typescript-eslint/semi":
# - 2
# - never
"@typescript-eslint/strict-boolean-expressions": 2
"@typescript-eslint/triple-slash-reference": 2
"@typescript-eslint/type-annotation-spacing": 2
# "@typescript-eslint/unbound-method": 2
"@typescript-eslint/unified-signatures": 2
# TypeScript Extension
brace-style: 0
"@typescript-eslint/brace-style":
- 2
- stroustrup
comma-spacing: 0
"@typescript-eslint/comma-spacing": 2
func-call-spacing: 0
"@typescript-eslint/func-call-spacing":
- 2
- always
- allowNewlines: true
indent: 0
"@typescript-eslint/indent": 0
no-array-constructor: 0
"@typescript-eslint/no-array-constructor": 2
no-extra-parens: 0
"@typescript-eslint/no-extra-parens": 0
no-extra-semi: 0
"@typescript-eslint/no-extra-semi": 2
no-unused-expressions: 0
"@typescript-eslint/no-redeclare": 2
"@typescript-eslint/no-shadow": 2
"@typescript-eslint/no-unused-expressions": 2
"@typescript-eslint/no-unused-vars":
- 2
- argsIgnorePattern: "^_"
varsIgnorePattern: "^_"
"@typescript-eslint/no-use-before-define": 2
no-useless-constructor: 0
"@typescript-eslint/no-useless-constructor": 2
quotes: 0
"@typescript-eslint/quotes":
- 2
- double
- avoidEscape: true
allowTemplateLiterals: true
no-return-await: 0
"@typescript-eslint/return-await": 2
semi: 0
"@typescript-eslint/semi":
- 2
- never
- beforeStatementContinuationChars: never
space-before-function-paren: 0
"@typescript-eslint/space-before-function-paren": 2
# React
react/boolean-prop-naming: 2
react/destructuring-assignment: 2
react/no-access-state-in-setstate: 2
react/no-array-index-key: 2
react/no-children-prop: 2
react/no-danger: 2
react/no-danger-with-children: 2
react/no-deprecated: 2
react/no-did-mount-set-state: 2
react/no-did-update-set-state: 1
react/no-direct-mutation-state: 2
react/no-find-dom-node: 2
react/no-is-mounted: 2
# react/no-multi-comp: 2
react/no-redundant-should-component-update: 2
react/no-render-return-value: 2
react/no-typos: 2
react/no-string-refs: 2
react/no-this-in-sfc: 2
react/no-unescaped-entities: 2
react/no-unsafe: 2
react/no-unused-prop-types: 2
react/no-unused-state: 2
react/no-will-update-set-state: 2
react/prefer-es6-class: 2
react/prefer-stateless-function: 2
react/react-in-jsx-scope: 2
react/require-render-return: 2
react/self-closing-comp: 2
react/state-in-constructor:
- 2
- never
react/style-prop-object: 2
react/void-dom-elements-no-children: 2
react/jsx-boolean-value:
- 2
- never
react/jsx-child-element-spacing: 2
react/jsx-closing-bracket-location:
- 2
- props-aligned
react/jsx-closing-tag-location: 2
react/jsx-curly-newline: 2
react/jsx-curly-spacing: 2
react/jsx-equals-spacing: 2
react/jsx-first-prop-new-line: 2
react/jsx-handler-names: 2
# react/jsx-indent:
# - 2
# - 2
react/jsx-indent-props:
- 2
- 2
react/jsx-max-props-per-line:
- 2
- maximum: 3
react/jsx-no-bind: 2
react/jsx-no-comment-textnodes: 2
react/jsx-no-literals: 2
react/jsx-no-target-blank: 2
react/jsx-one-expression-per-line:
- 2
- allow: single-child
react/jsx-curly-brace-presence:
- 2
- props: never
children: ignore
react/jsx-fragments: 2
react/jsx-pascal-case: 2
react/jsx-props-no-multi-spaces: 2
react/jsx-props-no-spreading: 2
react/jsx-tag-spacing: 2
react/jsx-wrap-multilines:
- 2
- declaration: parens-new-line
assignment: parens-new-line
return: parens-new-line
arrow: parens-new-line
condition: parens-new-line
logical: parens-new-line
prop: ignore
# React Hooks
react-hooks/rules-of-hooks: 2
react-hooks/exhaustive-deps: 2
# TSDoc
tsdoc/syntax: warn
settings:
react:
version: detect
+13
View File
@@ -0,0 +1,13 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: optolith # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+73
View File
@@ -0,0 +1,73 @@
name: Bug report
description: Create a report to help improve Optolith
labels:
- Bug
body:
- type: checkboxes
id: agreements
attributes:
label: Please confirm the following
options:
- label: I checked the [current issues](https://github.com/elyukai/optolith-client/issues) for duplicate problems.
required: true
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: to-reproduce
attributes:
label: To Reproduce
description: |
Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
validations:
required: false
- type: dropdown
id: operating-system
attributes:
label: Operating System
description: Which operating systems have you used? You may select more than one.
multiple: true
options:
- macOS
- Windows
- Linux
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: Which Optolith version have you used?
placeholder: 1.1.0, 1.3.0-alpha.5, …
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false
+30
View File
@@ -0,0 +1,30 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: Feature Request
assignees: ''
---
## Is your feature request related to a problem?
A clear and concise description of what the problem is. E.g. _I'm always frustrated when [...]_
## Describe the solution you'd like
A clear and concise description of what you want to happen.
## Describe alternatives
A clear and concise description of any alternative solutions or features you've considered.
## Additional context
> Add any other context or screenshots about the feature request here.
+36
View File
@@ -0,0 +1,36 @@
---
name: New Book Data
about: Implement a specific part of a (new) book
title: 'Book: Section'
labels: 'Domain: Static Data, L10n'
assignees: ''
---
## Sources
> List here what is included in this part of the book to implement. E.g., for special abilities, you need to list every source of entries from the book. Example (in German):
>
> - S. 133150 (Berufsgeheimnisse)
- S. X (Section/Chapter Name)
## Special Notes
> List here any special hints to implement the sources listed above.
>
> - …
## Special Implementations
> List here what cannot be solved only using the database. Example (in German):
>
> - [ ] Voraussetzungen Vorliebe I-II
@@ -0,0 +1,23 @@
---
name: Publication ambiguity
about: An ambiguity in an official publication
title: ''
labels: 'Ulisses: Question'
assignees: ''
---
## Source(s)
Please complete the following information:
- Book: [e.g. Magic of Aventuria I]
- Printing: [e.g. 1st]
- Page(s): [e.g. 199]
- Area: [e.g. Profession Black Mage (Demirion Ophenos's Student), AP value]
## Describe the ambiguity
A clear and concise description of what the ambiguity is.
@@ -0,0 +1,39 @@
---
name: Publication bug report
about: Create a report of an bug in one of the official publications
title: ''
labels: 'Bug, Domain: Static Data, Ulisses: Bug'
assignees: ''
---
## Source (please complete the following information):
- Book: [e.g. Magic of Aventuria I]
- Printing: [e.g. 1st]
- Page(s): [e.g. 199]
- Area: [e.g. Profession Black Mage (Demirion Ophenos's Student), AP value]
## Describe the bug
A clear and concise description of what the bug is.
## Expected text
A clear and concise description of what the text *should* be instead.
## Optolith Version:
If applicable, the exact version of Optolith where you experience the bug, e.g. 1.2.0, 1.3.0-alpha.5.
## Additional context
If needed, add any other context about the problem here.
+15
View File
@@ -0,0 +1,15 @@
name: Commitlint
on: [pull_request]
jobs:
commitlint:
name: Lint commit messages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v2
with:
configFile: .commitlintrc.json
+66
View File
@@ -0,0 +1,66 @@
name: Prerelease Builds
on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+-[a-z]+.[0-9]+
jobs:
build:
name: Build ${{ matrix.osName }} Prerelease
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- windows-latest
- macOS-latest
include:
- 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 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- 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 }}
+66
View File
@@ -0,0 +1,66 @@
name: Stable Builds
on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
jobs:
build:
name: Build ${{ matrix.osName }} Stable
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- windows-latest
- macOS-latest
include:
- 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 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- 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 }}
+49
View File
@@ -0,0 +1,49 @@
name: Integration
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.ACCESS_TOKEN }}
submodules: true
- name: Use Node.js 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- 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 18.x
uses: actions/setup-node@v1
with:
node-version: 18.x
- name: Install Node.js dependencies
run: npm ci
- name: Run linter
run: npm run lint
+16 -1
View File
@@ -6,8 +6,23 @@ npm-debug.log*
/dist/
.rpt2_cache
.esm-cache
app/index.html
app/main.css
app/**/*.js
app/**/*.js.map
!app/index.js
!app/esmPreload.js
/installer/
electron-builder.env
app/Database/**/*.xlsx
*.map
publishSettings.json
.env*
Tables.zip
tables/
deploy/tablesSrc.json
/lib/bs/
.merlin
.bsb.lock
*.tsbuildinfo
+3
View File
@@ -0,0 +1,3 @@
[submodule "app/Database"]
path = app/Database
url = https://github.com/elyukai/optolith-data.git
+3
View File
@@ -0,0 +1,3 @@
# Default ignored files
/workspace.xml
/eslintPlugin.xml
+44
View File
@@ -0,0 +1,44 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="RIGHT_MARGIN" value="0" />
<option name="SOFT_MARGINS" value="80,100" />
<JSCodeStyleSettings version="0">
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</JSCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="USE_SEMICOLON_AFTER_STATEMENT" value="false" />
<option name="FILE_NAME_STYLE" value="PASCAL_CASE" />
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
<option name="PREFER_AS_TYPE_CAST" value="true" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
<option name="IMPORT_SORT_MODULE_NAME" value="true" />
</TypeScriptCodeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="RIGHT_MARGIN" value="100" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="SPACE_AROUND_BITWISE_OPERATORS" value="false" />
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
<option name="METHOD_CALL_CHAIN_WRAP" value="2" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="RIGHT_MARGIN" value="100" />
<option name="SPACE_AROUND_UNARY_OPERATOR" value="true" />
<option name="SPACE_BEFORE_METHOD_CALL_PARENTHESES" value="true" />
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
<option name="WRAP_COMMENTS" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>
+5
View File
@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="TypeScriptCompiler">
<option name="recompileOnChanges" value="true" />
<option name="showAllErrors" value="true" />
</component>
</project>
+11
View File
@@ -0,0 +1,11 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="JSX" />
</component>
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/optolith-client.iml" filepath="$PROJECT_DIR$/.idea/optolith-client.iml" />
</modules>
</component>
</project>
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
-6
View File
@@ -1,6 +0,0 @@
{
"parser": "typescript",
"printWidth": 100,
"singleQuote": true,
"trailingCommas": "all"
}
+15
View File
@@ -0,0 +1,15 @@
{
"types": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "build", "hidden": true },
{ "type": "chore", "hidden": true },
{ "type": "ci", "hidden": true },
{ "type": "docs", "hidden": true },
{ "type": "style", "hidden": true },
{ "type": "refactor", "hidden": true },
{ "type": "perf", "hidden": true },
{ "type": "test", "hidden": true }
],
"releaseCommitMessageFormat": "build(release): {{currentTag}}"
}
+56
View File
@@ -0,0 +1,56 @@
{
// Place your TDE app files workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
// "Print to console": {
// "scope": "javascript,typescript",
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"Print a indented Show to console": {
"scope": "javascript,typescript,javascriptreact,typescriptreact",
"prefix": "lshow",
"body": [
"console.log (showP ($1))"
],
"description": "Print the result of passing a value to `showP`, which properly indents the stringified value, to the console."
},
"TypeScript FP JSDoc template": {
"scope": "javascript,typescript,javascriptreact,typescriptreact",
"prefix": "fpdoc",
"body": [
"/**",
" * ```haskell",
" * $1",
" * ```",
" *",
" * $2",
" */$0"
],
"description": "Generates a FP JSDoc template."
},
"Maybe Type": {
"scope": "javascript,typescript,javascriptreact,typescriptreact",
"prefix": "myb",
"body": [
"Maybe<$1>$0"
],
"description": "Maybe Type"
},
"Record Type": {
"scope": "javascript,typescript,javascriptreact,typescriptreact",
"prefix": "rec",
"body": [
"Record<$1>$0"
],
"description": "Record Type"
},
}
+37
View File
@@ -0,0 +1,37 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Electron: Debug Main",
"type": "pwa-node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
"windows": {
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
},
"runtimeArgs": [
"--remote-debugging-port=9223",
"."
],
"outputCapture": "std"
},
{
"name": "Electron: Attach Renderer",
"type": "chrome",
"request": "attach",
"port": 9223,
"webRoot": "${workspaceFolder}",
"timeout": 30000
}
],
"compounds": [
{
"name": "Electron: Debug All",
"configurations": [
"Electron: Debug Main",
"Electron: Attach Renderer"
]
}
]
}
+19 -3
View File
@@ -1,5 +1,21 @@
{
"typescript.tsdk": "node_modules\\typescript\\lib",
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.preferences.quoteStyle": "double",
"javascript.preferences.quoteStyle": "double"
}
"javascript.preferences.quoteStyle": "double",
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/*.js.map": true
},
"eslint.validate": [
"typescript",
"typescriptreact"
],
"eslint.lintTask.enable": true,
"eslint.lintTask.options": "\"src/**\" -c \"./.eslintrc.yaml\" --ext=\"ts\" --ext=\"tsx\" --ignore-pattern=\"./src/App/Utilities/YAML/Schema/**\"",
"editor.tabSize": 2,
"editor.detectIndentation": false
}
+58 -37
View File
@@ -8,50 +8,71 @@
"type": "shell",
"tasks": [
{
"label": "build",
"command": "npm run build",
"problemMatcher": [
"$tsc"
]
},
{
"label": "buildTest",
"command": "npm run buildTest"
},
{
"label": "buildMac",
"command": "npm run buildMac"
},
{
"label": "buildMacTest",
"command": "npm run buildMacTest"
},
{
"label": "watch",
"command": "npm run watch"
},
{
"label": "bundle",
"command": "npm run bundle",
"problemMatcher": [
"$tsc"
]
},
{
"label": "run",
"label": "start",
"command": "npm start"
},
{
"label": "bundle_l10ns",
"command": "npm run bundle_l10ns"
"label": "jest",
"command": "npm test",
"group": {
"kind": "test",
"isDefault": true
}
},
{
"label": "bundle_data",
"command": "npm run bundle_data"
"label": "tsc watch",
"type": "typescript",
"tsconfig": "tsconfig.json",
"option": "watch",
"isBackground": true,
"problemMatcher": [
"$tsc-watch"
],
"group": "build",
"presentation": {
"group": "watch"
}
},
{
"label": "bundle_css",
"command": "npm run bundle_css"
"label": "webpack watch",
"command": "npm run js:watch",
"isBackground": true,
"group": "build",
"presentation": {
"group": "watch"
}
},
{
"label": "sass watch",
"command": "npm run css:watch",
"isBackground": true,
"group": "build",
"presentation": {
"group": "watch"
}
},
{
"label": "watch",
"dependsOn": ["tsc watch", "webpack watch", "sass watch"],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "create prerelease",
"command": "npm run release:pre",
"problemMatcher": []
},
{
"label": "create release",
"command": "npm run release:main",
"problemMatcher": []
},
{
"label": "git push --follow-tags",
"command": "git push --follow-tags",
"problemMatcher": []
}
]
}
+2 -2
View File
@@ -1,2 +1,2 @@
Lukas Obermann <lukas.obermann@live.de>
Thore Schuchardt <schuchi@dsa-sh.de>
Lukas Obermann <lukas.obermann@icloud.com>
Philipp Borucki <p.borucki@icloud.com>
+699 -69
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
* @elyukai
+76
View File
@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at support@optolith.app. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
+85 -127
View File
@@ -1,166 +1,124 @@
# Contributing
Es gibt ein paar Richtlinien fürs Helfen beim Coden:
## Reporting bugs, feature requests and more
- Der Code steht unter der Lizenz des Scriptoriums, weshalb diese Repo auch privat ist. Wird dieses Repo geforkt, **muss** das geforkte Repo auch privat sein. Eine Verwendung außerhalb dessen ist nicht möglich.
- Bitte schaut, dass der beigesteuerte Code dem Stil des bisherigen Codes entspricht. Ich habe mich für keinen verfügbaren Styleguide entscheiden können und mit Helfern wie Prettier konnte ich mich - bis jetzt - auh noch nicht anfreunden.
- Der **develop**-Branch ist der Arbeitsbranch. Codeänderungen - also Pull Requests - führen meistens darauf zurück.
- Der Masterbranch wird nur für Releases verwendet (das aber erst, nachdem die Beta fertig ist). Diese bekommen dann auch ihre eigenen temporären Branches, bei denen nur noch Bugfixes einfließen dürfen.
- Es ließ sich nicht einstellen, daher hier noch einmal schriftlich: Ich möchte jede Pull Request, die als Zielbranch **master**, **develop** oder einen von mir erstellten Branch hat, reviewen.
- Bitte schreibt nach Möglichkeit JSDoc Texte für neue Funktionen. Ich bin auch dabei, dass für alte Funktionen nachzuholen. Es ist jetzt nicht essenziell, wäre aber zum Verständnis besser! :)
- Solange #1 (Use Redux instead of Flux) noch aktiv ist, solltet ihr von dem **electron-redux**-Branch abbranchen, so ihr denn in dieser Repo arbeitet.
### 1. Is the issue already reported
Ich habe das jetzt einfach etwas direkter formuliert, da ich bei solchen Geschichten ungern um den heißen Brei herum rede! ;)
[Check](https://github.com/elyukai/optolith-client/issues) if the issue you want to report already exists.
An dieser Stelle auch Vielen Dank an alle Helfer!
### 2. Do you need help
P.S.: Ich sollte an dieser Stelle noch erwähnen, dass ich bis jetzt noch keine Erfahrung gesammelt habe, was kollaboratives Coden angeht. Ich bin auch bis zuletzt nicht davon ausgegangen, dass ich mal nicht der einzige sein werde, der an diesem Projekt arbeiten würde. Es mag daher sein, dass ihr Dateien findet, die etwas älter sind. Ich hoffe trotzdem, dass ihr euch zurechtfindet, da ich momentan nicht die Zeit habe, um alles durchzugehen (man kann ja schon am Switch zu Redux sehen, wie lange alles gedauert hat und wie viel Zeit ich entsprechend hatte). Erstellt bei Fragen/Unklarheiten einfach einen Issue! :)
Feel free to create a new issue and someone will help you! Give as much details as you think is needed but don't include irrelevant details.
## Coding Style
### 3. Did you find a bug
Please follow the (AirBnb Style Guide)[https://github.com/airbnb/javascript]. There are, however, some exceptions. If you find any code does not follow the guidelines linked and specified below, please either create a new issue or fork and create a new pull request.
Please include the following:
### `if`-`else`
- The version of the app you are using. You can find the version in the About > Third-party licenses section of the app.
- A *detailed* description of what you have done.
- What you expected to happen and what actually happened.
`else if` or `else` must start on a new line.
The Alpha version also provides access to the Chrome DevTools via the bug button in the top right corner. If you are not familiar with web development: Check if there are any errors shown in the Console tab. In that case please include the error message.
```ts
// bad
if (condition) {
expression;
} else {
expression;
}
### 4. Do you have a suggestion
// bad
if (condition)
{
expression;
}
else
{
expression;
}
You can suggest features either in the issues tracker or in one of the [listed forums](https://github.com/elyukai/optolith-client).
// good
if (condition) {
expression;
}
else {
expression;
}
## Contributing code
### 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. 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
- Branches follow Git Flow. Please try to follow Git Flow as well if you edit this repository. But if it's possible, please fork this repo and create PRs.
- Commits need to follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/), which is enforced by the CI and Git Hooks locally.
- Please check out the [Style Guide](https://github.com/elyukai/optolith-client/wiki/Code-Style-Guide) for more information on that topic! Sadly, TSLint cannot ensure the whole style so you partially need to take care of that on your own!
- There is a page covering [Naming Conventions](https://github.com/elyukai/optolith-client/wiki/Naming-Conventions) as well!
- The key criteria for the project are mentioned in the [README](README.md). They also apply to pull requests. A feature usually does not consist of the technical part only. Much more important is how the feature presents itself to the user. And that must be planned and discussed.
- Code should follow functional programming practices while maintaining readablilty &ndash; which can be an issue using JavaScript/TypeScript, which is why in certain circumstances imperative/OOP code is allowed. It is also possible to write Reason/OCaml code, which compiles to JS.
- The contribution has to be easy to understand not only for players using the app, but also for coders trying to further enhance the app: Please document *at least* module exports!
### Install required software
- **Git** &mdash; <https://git-scm.com/downloads> or via a package manager
- **Node.js** with **npm** &mdash; <https://nodejs.org/en/> or via [`nvm`](https://github.com/nvm-sh/nvm)
- *Optional:* **Visual Studio Code** &mdash; <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
Clone the repo, including the private submodule.
```sh
git clone --recurse-submodules https://github.com/elyukai/optolith-client.git
```
### Curried functions
Make sure Node.js (lastest version) is installed and run
Functions (and methods) have to be fully curried. There should not be partial function application, as this would cause different possibilities in calling functions. I want to enforce one style:
```ts
const add = (a: number) => (b: number) => a + b;
// worst
const addedNumbers = add(2)(3);
// still bad
const addedNumbers = add(2) (3);
// still bad
const addedNumbers = add (2)(3);
// good
const addedNumbers = add (2) (3);
// multiline
const addedNumbers = add (2)
(3);
// or
const addedNumbers =
add (2)
(3);
// or
const addedNumbers =
add
(2)
(3);
```sh
npm i
```
This style is readable while having curried functions. It's derived from the Haskell style of calling functions, where the arguments are separate by one whitespace as well:
This installs all necessary packages.
```hs
add :: Int -> Int -> Int
### First run
add 2 3
Compile the source code. `js:` is for TypeScript/Webpack, `re:` for Reason/OCaml and `css:` for CSS/Sass. Webpack does not check the TypeScript validity, to check this, use `ts:` commands.
You have to run the Reason build first as it generates TypeScript files...
```sh
npm run ts:build
npm run css:build
npm run js:build
```
**Fun fact:** `add (2) (3)` is valid Haskell, it just contains unnecessary groupings.
(There's also a shorthand for that:)
### Methods
If you need to use a class (e.g. the custom data structures *Maybe*, *List* a.s.o. are implemented as classes, consider the following styistic rules for using methods:
```ts
// bad
maybeValue.fmap(R.inc)
// still bad
maybeValue.fmap (R.inc)
// still bad
maybeValue .fmap(R.inc)
// good
maybeValue .fmap (R.inc)
```sh
npm run build
```
This way, a method seems to be more like an infix function. Instance methods are always curried, too.
&hellip;or watch it for better performance for subsequent compiling on save (you need to use separate terminal instances then).
```ts
// very bad
Maybe.fmap(R.inc)(maybeValue)
// still bad
Maybe.fmap (R.inc) (maybeValue)
// still bad
Maybe .fmap (R.inc) (maybeValue)
// good
Maybe.fmap (R.inc) (maybeValue)
```sh
npm run re:watch
npm run css:watch
npm run js:watch
```
Static methods do not need a space before the dot because `Maybe` is no value. So `Maybe.fmap` as a whole is the function (name).
To check the TypeScript validity, either check once or watch for changes (I'd always recommend to do the latter one).
This way, you can also better differenciate between static and instance methods.
```sh
npm run ts:build
npm run ts:watch
```
### Function declarations
Run the app:
Do not use named function expressions if using `function`, e.g. `const fn = function longFunctionName () { ... }`. Prefer arrow functions, which must be declared using `const fn = () => { ... }`, though.
```sh
npm start
```
### Arrow functions
### Stylesheets
Concerning (Arrow Functions 8.4)[https://github.com/airbnb/javascript#arrows--one-arg-parens]: Only use parentheses when there is more than one argument, do not use even if the function uses braces (actually you don't need parentheses at all, because all functions should be curried).
To compile the SCSS files, use
### Modules
```sh
npm run css:build
```
Concerning (Modules 10.2)[https://github.com/airbnb/javascript#modules--no-wildcard]: Use wildcards when there are too many imports or for the sake of consistency across files (especially used for files in `src/types`, e.g. `* as Wiki`).
### Miscellaneous
Concerning (Modules 10.3)[https://github.com/airbnb/javascript#modules--no-export-from-import]: Prefer shorter syntax.
Clean the files built by the Reason compiler, if there are any issue with it.
Concerning (Modules 10.6)[https://github.com/airbnb/javascript#modules--prefer-default-export]: Do not use default exports, as possible renaming cannot benefit from TypeScript's ability to find all symbol references.
```sh
npm run re:clean
```
Concerning (Arrow Functions 10.8)[https://github.com/airbnb/javascript#modules--multiline-imports-over-newlines]: Put everything on one line, as it is more compact. TypeScript warns when there are missing or unnecessary imports anyway.
Lint all project TS files using ESLint.
### Unimportant rules
- (Object 3.5)[https://github.com/airbnb/javascript#objects--grouped-shorthand]: Group object shorthand properties
- (Arrow Functions 8.3)[https://github.com/airbnb/javascript#arrows--paren-wrap]: Wrap expression in parentheses
- (Arrow Functions 8.5)[https://github.com/airbnb/javascript#arrows--confusing]: Avoid confusing arrow function syntax with comparison operators
- (Arrow Functions 8.6)[https://github.com/airbnb/javascript#whitespace--implicit-arrow-linebreak]: Enforce the location of arrow function bodies with implicit returns
- (Variables 13.3)[https://github.com/airbnb/javascript#variables--const-let-group]: Group `const`s and `let`s
- (Comparison 15.8)[https://github.com/airbnb/javascript#comparison--no-mixed-operators]: Enclose mixing operators in parentheses
### TSLint
A lot of areas are already covered by TSLint and it's plugins. Please use TSLint, it makes following the guidelines a lot easier!
```sh
npm run lint
```
+390 -3
View File
@@ -1,8 +1,395 @@
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.
Optolith Character Generator and Manager for The Dark Eye 5th Edition
Copyright (C) 2017-present Lukas Obermann
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.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
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.
------------------------------------------------------------
Mozilla Public License Version 2.0
==================================
1. Definitions
--------------
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
--------------------------------
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
-------------------
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
--------------
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
8. Litigation
-------------
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
----------------
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
10. Versions of the License
---------------------------
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
-------------------------------------------
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.
------------------------------------------------------------
The following disclaimer is only valid if any material of material protected by Ulisses Medien und Spiele Distribution GmbH is included, which is only the case in test builds or final builds of Optolith.
This product was created under license from Ulisses Medien und Spiele Distribution GmbH. Das Schwarze Auge / The Dark Eye and their respective logo(s) as well as Aventuria, Dere, Myranor, Riesland, Tharun and Uthuria, and their respective logos are trademarks of Ulisses Medien und Spiele Distribution GmbH. The title and contents of this book are protected under the copyright laws of Germany, the United States of America and other countries. No part of this publication may be reproduced, stored in retrieval systems or transmitted, in any form or by any means without prior written consent from Ulisses Medien und Spiele Distribution GmbH.
This publication includes material that was produced by Ulisses Spiele and/or other authors and which is protected under applicable copyright laws. Use of such material is granted under the Community Content Agreement for the SCRIPTORIUM AVENTURIS.
All original content in this work is copyright 2017-present by Lukas Obermann and published under the Community Content Agreement for the SCRIPTORIUM AVENTURIS.
------------------------------------------------------------
+18 -6
View File
@@ -1,15 +1,27 @@
# Optolith Character Generator
# Optolith Character Generator and Manager [![Build Status](https://travis-ci.com/elyukai/optolith-client.svg?branch=develop)](https://travis-ci.com/elyukai/optolith-client)
This is the code repository for Optolith, a desktop application for The Dark Eye 5th Edition.
Welcome to the repository for Optolith, a desktop application for The Dark Eye 5th Edition. Nice to see you here! 👋🏻
## Installing
## Install
You can download the app [here (German page)](http://www.ulisses-ebooks.de/product/209711) or here [here (English page)](http://www.drivethrurpg.com/product/220253) (same app on both pages). You'll get an installer for Windows and a DMG for Mac, both with Auto Update support. For Linux, you have to use the .tar.gz, but I am working on an Auto Updater for Linux via AppImage.
You can download the app [here (German page)](http://www.ulisses-ebooks.de/product/209711) or here [here (English page)](http://www.drivethrurpg.com/product/220253) (same app on both pages). You'll get an installer for Windows with Auto Update support and a DMG for Mac. For Linux, you get an AppImage, which *should* support Auto Update but it doesnt seem to work currently. You also get a tar.gz if you don't like AppImage.
It is available for Windows 7+ as well as for Linux (Ubuntu 12.04+, Fedora 21, Debian 8) and macOS 10.9+ x64.
## Goal
Optolith was built and is developed based on a few key criteria:
- A player should be able to create characters without additional cost.
- A player should take care of the more important parts of a character &ndash; the personality and background &ndash; instead of keeping track of prerequisites and AP.
- Creating a character should be as easy and as intuitive as possible to focus on the actual stats.
With those criteria in mind, we further enhance the app.
## Contributing
This repository only contains the code for this app, but you can the bug tracker and more at [here](https://www.github.com/Elytherion/tdeheroes).
Info on reporting bugs, getting help, contributing code and more can be found in the [Contributing Guide](CONTRIBUTING.md)!
Currently there is no need to help coding, so it would be great if you just test the app and provide feedback! But it might be in the future, please check out [respective file](CONTRIBUTING.md) then!
## License
[MPL 2.0](LICENSE)
Submodule
+1
Submodule app/Database added at a43a1789d8
-24
View File
@@ -1,24 +0,0 @@
## Ich kann keine Zauber oder Liturgien hinzufügen!
Es wird daran liegen, dass du die Voraussetungen dafür nicht erfüllst!
Folgende Voraussetungen gelten:
### Zauber:
- Wähle den Vorteil *Zauberer*.
- Wähle die magische SF *Tradition*.
### Liturgien:
* Wähle den Vorteil *Geweihter*.
* Wähle die karmale SF *Tradition*.
## Ich kann einen der folgenden Zauber nicht hinzufügen: Invocatio Minor, Invocatio Maior, Elementarer Diener, Dschinnenruf!
Diese vier Zauber haben Voraussetzungen, die im Regelwerk auf Seite 263 genannt sind.
Demnach haben diese Zauber folgende Voraussetzungen und können erst nach Erfüllung dieser gewählt werden:
* Invocatio Minor: Invocatio Minima 10
* Invocatio Maior: Invocatio Minor 12
* Elementarer Diener: Manifesto 10
* Dschinnenruf: Elementarer Diener 12
-13
View File
@@ -1,13 +0,0 @@
## I can't add spells or liturgical chants! That's a bug, isn't it?
It's likely because you do not meet the (following) requirements for adding spells or liturgical chants:
### Spells:
- Buy advantage *Spellcaster*.
- Buy the magical special ability *Tradition*.
### Liturgien:
* Buy advantage *Blessed One*.
* Buy the blessed special ability *Tradition*.
-14
View File
@@ -1,14 +0,0 @@
## Ich kann keine Zauber oder Liturgien hinzufügen! Ist das ein Bug?
Es wird daran liegen, dass du die Voraussetungen dafür nicht erfüllst!
Folgende Voraussetungen gelten:
### Zauber:
- Wähle den Vorteil *Zauberer*.
- Wähle die magische SF *Tradition*.
### Liturgien:
* Wähle den Vorteil *Geweihter*.
* Wähle die karmale SF *Tradition*.
+241
View File
@@ -0,0 +1,241 @@
[size=200]1.1.2[/size]
[size=150]Verbesserungen[/size]
[list]
[*]Die Meldung beim Laden ist jetzt auf Deutsch.
[*]Das Abschließen der SKP-Auswahl kann jetzt rückgängig gemacht werden.
[/list]
[size=150]Fehlerbehebungen[/size]
[list]
[*]Kampfsonderfertigkeiten zeigen jetzt wieder ihren Typ (passiv/Basismanöver/Spezialmanöver) im Wiki an.
[*]Zauber nach Gruppe zu sortieren sortiert die Gruppen jetzt alphabetisch.
[*]Auf EG [i]Unerfahren[/i] kann mal als Gildenmagier jetzt auch den ausgewählten Fremdzauber (der jetzt keiner mehr ist) auswählen.
[*]In der Auswahlliste für SF [i]Tradition (Gildenmagier)[/i] werden jetzt keine traditionseigenen Zauber mehr angezeigt.
[*]Das englische User Interface lädt jetzt wieder ohne Probleme.
[*]Profession [i]Akademie von Licht und Dunkelheit[/i] kann jetzt wieder ohne UI-Fehler ausgewählt werden.
[/list]
[size=200]1.1.0/1.1.1[/size]
[i]Die genaue Versionsnummer der App ist 1.1.1.[/i]
Nach mehr als über einem Jahr kommt nun endlich ein großes Update auch wenn man es als Benutzer nicht unbedingt mitbekommt: Optolith hat einen komplett neuen Code bekommen. Mit einher geht eine interne Umstrukturierung, sodass Features wie Gruppen in Zukunft performant möglich sein werden. Das ist zwar die größte Änderung, aber nicht die einzige: Sämtliche gemeldeten Bugs sind behoben und über die letzten zwei Wochen haben meine Tester auch noch diverse Bugs gefunden, die hiermit auch behoben werden.
Vermutlich werdet ihr feststellen, dass Optolith ein paar Sekunden länger braucht zum Laden als vorher. Das liegt daran, dass ich Optolith neu gebaut habe mit dem Grundgedanken, dass es stabiler läuft. Ich führe daher beim Laden Prüfungen durch, damit alle Daten, die geladen werden, auch wirklich so aussehen wie erwartet und nicht durch falsche Tabellen oder andere Daten etwas im Programm passiert, was nicht beabsichtigt ist. Die Start-Performance wird definitiv noch verbessert werden, für den Anfang ist mir ein stabileres Programm aber lieber als ein schnelles; schließlich geht es hier auch nur um den Programmstart, die Performance bei der Benutzung ist davon nicht betroffen.
Nicht zuletzt aber auch ein bereits an anderer Stelle erwähntes großes Dankeschön an euch, für eure Geduld und euer ganzes Feedback und weitere Hilfe, ohne die ich nicht all die Fehler hätte beheben können. Zwar haben es neue Regelwerke noch nicht in diese Version geschafft, und auch die nächste Version wird nicht alle neuen beinhalten, aber dennoch wird Optolith jetzt vergleichsweise schnell auf den aktuellen Stand der Regeln kommen können.
Aber nun zum Changelog dieser Version:
[size=150]Neue Features[/size]
[list]
[*]Helden können über die Heldenliste nun direkt gespeichert werden.
[*]Portraits von Helden und Begleitern können jetzt auch wieder gelöscht werden.
[/list]
[size=150]Verbesserungen[/size]
[list]
[*]Auswahllisten werden nach aktivierten Regelwerken gefiltert. Das funktionierte vorher nur für die Hauptlisten wie Sonderfertigkeiten, jetzt aber eben auch für z. B. die Liste von Berufsgeheimnissen.
[list]
[*]Wikieinträge können nicht nach bestimmten Regelwerken gefiltert werden; ebenso wenig wie diese bei geöffneten Helden nach den dort gewählten Regelwerken gefiltert werden. Dies wird noch nachgereicht!
[/list]
[*]Fremdzauber werden jetzt wie untypische Vorteile durch eine rote Einfärbung markiert.
[*]Die Suche nach Professionen durchsucht jetzt auch Professionsvarianten.
[*]Auf dem Heldenbogen ist jetzt für doppelt so viele Sprachen Platz.
[*]Beim Hinzufügen von Vor-/Nachteilen werden jetzt sowohl die AP für Vorteile als auch für Nachteile angezeigt.
[*]Schilde werden auf dem Heldenbogen jetzt sowohl als Schild als auch als Waffe eingetragen.
[*]Texte des Wikis können jetzt selektiert und dadurch kopiert werden.
[*]Für die [i]Tradition (Gildenmagier)[/i] muss jetzt ein Fremdzauber festgelegt werden. [b]Für eine bereits aktivierte SF funktioniert dies im [i]Regeln[/i]-Tab! Bitte stellt dies ein, weil es für kommende Regelwerke relevant ist![/b]
[*]Um später besser auf Unterschiede von Versionen in verschiedenen Sprachen reagieren zu könne, wird zu den Helden ab jetzt auch die Sprache gespeichert, in der der Held erstellt wurde. [b]Für ältere Helden wird diese auf die aktuell eingestellte Sprache eingestellt. Zum Ändern müsst ihr in den [i]Regeln[/i]-Tab wechseln! Bitte stellt dies ein, weil es in kommenden Versionen relevant wird![/b]
[*]Im Profil wird jetzt angezeigt, wie sich die zufällige Generierung für Gewicht und Größe zusammensetzt.
[*]Der Dialog, der beim Schließen auftaucht, wenn ungespeicherte Aktionen vorhanden sind, ist jetzt klarer formuliert und hat jetzt drei Buttons für alle drei Optionen.
[*]Text auf dem Heldenbogen kann jetzt selektiert werden. Diese Option ist aber nicht dazu geeignet, um den gesamten Heldenbogen zu kopieren, weil das Layout nicht richtig übernommen wird.
[*]Den FAQ wurde der Eintrag hinzugefügt, wie man LE/AE/KE hinzufügt.
[*]Wenn man den Wikieintrag für einen Eintrag außerhalb des Wikis angezeigen lässt, wird der Listeneintrag wie im Wiki hervorgehoben.
[*]Beim Pakt wird angezeigt, wenn Felder fehlen, die ausgefüllt werden müssen, um einen vollständigen Pakt zu erhalten.
[*]Die AP, die beim Beenden der Heldenerschaffung maximal übrig sein dürfen, betragen jetzt immer 10 AP, egal in welchem Modus man sich befindet.
[*]Einsatzmöglichkeiten für Talente hinzugefügt.
[*]Bei Talenten, bei denen die Einrechnung der Belastung nicht eindeutig ist, wird im Wikieintrag jetzt die komplette Beschreibung angezeigt, wann die Belastung relevant ist und wann nicht.
[*]Die einzelnen Einträge für Vorteil [i]Herausragender Sinn[/i] und Nachteil [i]Eingeschränkter Sinn[/i] wurden zusammengefügt.
[*]Unter [i]Ergänzende Quellen[/i] werden in Wikieinträgen von Vorteilen, Nachteilen und Sonderfertigkeiten jetzt die Quellen genannt, von denen die jeweiligen Einträge ihre Auswahlmöglichkeiten bekommen. Z. B. wird bei Berufsgeheimnissen dann nicht nur die eigentliche SF aus dem Basisregelwerk als Quelle genannt, sondern eben auch die Quellen weiterer Berufsgeheimnisse auch anderen Büchern.
[*]Analog zur geweihten Variante des Rabenschnabels gibt es jetzt die im Regelwerk beschriebene profane Variante des Rabenschnabels zum dort genannten Preis von 90 S. Außer des Status [i]geweiht/nicht geweiht[/i] unterscheiden sich die Gegenstände nicht.
[*]Die dargstellte Formel zur Berechnung der Astralenergie passt sich jetzt entsprechend der Tradition an. Denn bei einigen Traditionen fließt nur die Hälfte der Leiteigenschaft ein und einige haben keine Leiteigenschaft, die einfließen könnte.
[*]Bei Stabzaubern wird [i]Bindung des Stabes[/i] als Voraussetzung ausgeblendet.
[/list]
[size=150]Fehlerbehebungen[/size]
[list]
[*]Nach einem Wechsel von Deutsch zu Englisch konnten Charaktere nicht mehr bearbeitet werden.
[*]Sonderfertigkeiten können wieder nach Gruppen sortiert werden.
[*]Verbreitung von Liturgien wird jetzt alphabetisch sortiert.
[*]Fertigkeits- und Kampftechnik-Maxima werden bei der Erstellung nun auch von den Probeneigenschaften bzw. Leiteigenschaften beeinflusst.
[*]Hesindegeweihter: Sternkunde 4 anstelle von Alchimie 4.
[*]FAQ: Zwei Typos korrigiert.
[*][i]Meistertalentierte[/i] können keine Zauber mehr kaufen.
[*]Gelb hervorgehobene Vorteile/Nachteile werden jetzt auch in der Legende erklärt.
[*]Ein/e durch eine Professionsvariante entfernte/r Zauber/Liturgie der Basisprofession wird jetzt auch wirklich entfernt und nicht mehr auf FW 0 aktiviert.
[*]Fehlende Professionsvarianten für Profession [i]Wildniskundiger[/i] hinzugefügt.
[*]Fehlende Berufsgeheimnisse aus dem [b]Aventurischen Kompendium I[/b] hinzugefügt.
[*]Bilder werden auf Linux wieder angezeigt.
[*]Automatische Vorteile haben jetzt Kosten von 0 AP, sodass Spezieskosten wieder korrekt sind.
[*]Das Sortieren von Ausrüstung nach Gruppen wirft keinen Fehler mehr.
[*]Das Portrait von Begleitern wird nun beim Export auch mit exportiert.
[*]Details für Zauber und Liturgien werden wieder auf dem Heldenbogen angezeigt.
[*][i]Intuitive Zauberer[/i] haben keinen Zugriff mehr auf Rituale und Zauber des Steigerungsfaktors D.
[*]„Steigerungskosten“ → „Steigerungsfaktor“.
[*]Astralenergie wird beim [i]Gildenmagier aus Perricum[/i] wieder richtig berechnet.
[*]Die Voraussetzung „Spezies, Kultur oder Profession muss [...] als automatischen oder empfohlenen [Vorteil/Nachteil] aufweisen“ berücksichtigt jetzt auch wieder automatische Vorteile der Spezies, sollten diese entfernt worden sein.
[*]Liturgiestile werden jetzt beim Charakterwechsel auch korrekt übernommen, sodass keine Zulassungen durch vorherige Stile mehr relevant sind.
[*]Begleiterlayout auf dem Heldenbogen ist jetzt wieder korrekt.
[*]Bei der PDF ist jetzt kein Scrollbalken mehr zu sehen.
[*]Ein valider Pakt wirft bei Sonderfertigkeiten keinen Fehler mehr.
[*]Bann-/Schutzkreise werden wieder auf dem Heldenbogen angezeigt.
[*]Beim Senken von Eigenschaften im Editor-Modus werden nun hinzugekaufte LE/AE/KE berücksichtigt und verhindern ggf. das Senken.
[*][i]Intuitive Zauberer[/i] behandeln jetzt alle Zauber als Zauber ihrer Tradition.
[*]Manchmal wurde im Wikieintrag von Professionen anstelle eines Wertes, z. B. bei [i]Ehrenhaftigkeit 6[/i], `null` angezeigt, sodass dort dann [i]Ehrenhaftigkeit null[/i] stand.
[*]Manchmal wurde der im Wikieintrag angezeigte vorherige Wert von durch Professionsvarianten veränderte Wert um 6 erhöht. Beispiel Profession Ritter: [i]Etikette 2 statt 12[/i] ist eigentlich [i]Etikette 2 statt 6[/i].
[*]Vorteil [i]Herausragende Fertigkeit[/i] funktioniert jetzt auch wieder für Zauber.
[*]Vorteil [i]Koboldfreund[/i] fehlte.
[*]Nachteil [i]Kleine Zauberauswahl[/i] ist wieder für [i]Intuitive Zauberer[/i] verfügbar.
[*]Nachteil [i]Lästige Blütenfeen[/i] fehlte.
[*]Nachteil [i]Schlechte Eigenschaft (Geiz)[/i] und [i](Verschwendungssucht)[/i] haben sich nicht ausgeschlossen.
[*]Im Eingabefeld für Nachteil [i]Prinzipientreue[/i] steht jetzt „Prinzip“ und nicht mehr „Prinzipie“.
[*]Zauber und Liturgien sind jetzt nicht mehr im Nachteil [i]Unfähig[/i] enthalten. Bei Helden, die dies hatten, wird der Nachteil automatisch entfernt.
[*]Das Kaufen des Nachteils [i]Wenige Visionen[/i] wirft keinen Fehler mehr.
[*]SF [i]Adaption (Zauber)[/i] wird jetzt angezeigt, wenn die Voraussetzungen erfüllt sind.
[*]SF [i]Adaption (Zauber)[/i] exkludiert jetzt Fremdzauber.
[*]SF [i]Aspektkenntnis[/i] kann wieder problemlos hinzugefügt werden.
[*]SF [i]Astralraub[/i]: Leerzeichen fehlte.
[*]SF [i]Böser Namensvetter[/i], [i]Lächerlicher Name[/i], [i]Schurkenname[/i], [i]Unpassender Name[/i]: Nicht mehr als Elf wählbar.
[*]SF [i]Böser Namensvetter[/i]: Formatierung korrigiert.
[*]SF [i]Buchdrucker[/i]: Voraussetzung Stoffbearbeitung 4 → Mechanik 4.
[*]SF [i]Eisenhagel[/i] kann wieder gekauft werden.
[*]SF [i]Gebieter des \[Aspekts\][/i] wird jetzt wieder angezeigt, wenn die Voraussetzungen dafür erfüllt werden.
[*]SF [i]Kupferstich[/i]: Voraussetzung Lebensmittelbearbeitung 4 → Malen & Zeichen 4.
[*]SF [i]Macht der Namenlosen Klinge[/i] ist jetzt wieder in allen 13 Stufen auswählbar, natürlich vorausgesetzt, dass die Voraussetzungen erfüllt sind.
[*]SF [i]Merkmalskenntnis[/i] kann wieder problemlos hinzugefügt werden.
[*]SF [i]Präziser Schuss/Wurf[/i] hatte falsche Eigenschaftsvoraussetzungen.
[*]SF [i]Scharfschütze II[/i]: Voraussetzung ist jetzt IN 17 statt IN 15.
[*]SF [i]Siegelbrecher[/i]: Merkmal Hellsicht → Merkmal Antimagie.
[*]SF [i]Verschwinde![/i]: AsP-Kosten und Volumen ergänzt.
[*]Die Nachteile [i]Keine Flugsalbe[/i] und [i]Kein Vertrauter[/i] verringern nun korrekt die Kosten der SF [i]Tradition (Hexen)[/i].
[*]SF [i]Tradition (Gildenmagier)[/i] wird jetzt bei der Fremdzauberbegrenzung berücksichtigt (siehe dazu auch die Änderung an der Tradition weiter oben).
[*]SF [i]Volumenerweiterung des Bannschwerts[/i]: AsP-Kosten ergänzt.
[*][i]Bekehren & Überzeugen[/i]: Probe MU/IN/CH → MU/KL/CH.
[*][i]Etikette[/i], Belastung: Evtl. → Nein.
[*][i]Fahrzeuge[/i]: Unter [b]Werkzeuge[/b] fehlte [i]Fahrzeug[/i].
[*][i]Tanzen[/i], misslungene Probe: Vorher war dort der Text von [i]Sinnesschärfe[/i].
[*][i]Verkleiden[/i], Belastung: Evtl. → Ja.
[*]Falsche Probeneigenschaften von Zaubern/Magischen Handlungen:
[list]
[*][i]Friedenslied[/i]: MU/KL/IN → MU/IN/CH
[*][i]Sorgenlied[/i]: MU/CH/CH → MU/IN/IN
[*][i]Zaubermelodie[/i]: MU/KL/CH → MU/IN/CH
[/list]
[*]Text, dass ein bestimmter Aspekt eines Zaubers nicht modifiziert werden kann, fehlt:
[list]
[*]MOTORICUS: Kosten
[*]MOVIMENTO: Wirkungsdauer
[*]NEBELWAND: Kosten
[/list]
[*]Fehlende Probenmodifikatoren (SK/ZK) bei Zaubern hinzugefügt.
[*]ADLERAUGE: Tradition Druiden ergänzt, AMA1-Quelle ergänzt.
[*]ANALYS ARKANSTRUKTUR: Zauberdauer 2 Aktionen → 32 Aktionen.
[*]ATTRIBUTO für Mut, Fingerfertigkeit, Gewandheit und Konstitution beinhaltet nun auch die Wirkungen der einzelnen QS.
[*]BAND UND FESSEL Zaubererweiterungen: Wortdopplung korrigiert.
[*]DUNKELHEIT Zaubererweiterungen: Leerzeichen fehlten.
[*]FULMINICTUS Zaubererweiterungen: Name korrigiert und Voraussetzungen angepasst.
[*]KARNIFILO hieß vorher Kanifilo.
[*]KLARUM PURUM, Kosten: 8 AsP.
[*]KRABBELNDER SCHRECKEN [i]Starker Ekel[/i]: Typo korrigiert.
[*]MANUS MIRACULA Zaubererweiterungen: Name korrigiert und Voraussetzungen angepasst.
[*]PHYSIOSTABILIS: Effekttext ist wieder korrekt.
[*]SCHWARZER SCHRECKEN, Kosten: 8 AsP → 4 AsP.
[*]UNBERÜHRT VON SATINAV: Merkmal Objekt → Merkmal Temporal.
[*]WIRBELFORM verhält sich jetzt vollständig wie der Eintrag aus [b]Aventurische Magie II[/b].
[*]XENOGRAPHUS [i]Besseres Sprachverständnis[/i] hieß vorher [i]Längere Wirkungsdauer[/i].
[*]ZAUBERKLINGE GEISTERSPEER Zaubererweiterungen: Formatierung korrigiert.
[*][i]Melodie des Magieschadens[/i] war nicht durch Ceoladir wählbar.
[*][i]Melodie der Zähigkeit[/i]: Formatierung korrigiert.
[*][i]Melodie des Zögerns[/i] war nicht durch Derwisch wählbar, konnte aber durch Sangara gewählt werden.
[*]Herrschaftsrituale sind nun enthalten.
[*]Falsche Probeneigenschaften von Liturgien:
[list]
[*][i]Kleiner Bannstrahl[/i]: MU/KL/CH → MU/IN/CH
[*][i]Ehrenhaftigkeit[/i]: MU/KL/CH → MU/IN/CH
[*][i]Ermutigung[/i]: MU/KL/CH → MU/IN/CH
[*][i]Friedvolle Aura[/i]: MU/KL/CH → MU/IN/CH
[*][i]Wasserlauf[/i]: MU/KL/IN → MU/IN/GE
[/list]
[*]Text, dass ein bestimmter Aspekt einer Liturgie nicht modifiziert werden kann, fehlt:
[list]
[*][i]Bann der göttlichen Gaben[/i]: Liturgiedauer
[*][i]Dämonenwall[/i]: Kosten
[*][i]Liturgieschild[/i]: Kosten
[*][i]Mächtiger Angriff[/i]: Kosten
[*][i]Magiebann[/i]: Liturgiedauer
[*][i]Magiespiegel[/i]: Kosten
[*][i]Motivation[/i]: Kosten
[*][i]Namenlose Kälte[/i]: Kosten
[/list]
[*][i]Ächtung (Exkommunikation)[/i] Liturgieerweiterungen: Buchname bei der Seitenangabe ergänzt.
[*][i]Blitzschlag[/i]: Verbreitung [i]Boron (Tod)[/i] statt [i]Rondra (Sturm)[/i].
[*][i]Delphingestalt[/i]: Effekttext korrigiert.
[*][i]Häutung[/i] und [i]Häutung[/i] Liturgieerweiterungen: Leerzeichen fehlte.
[*][i]Guter Fang[/i]: Liturgie → Zeremonie.
[*][i]Guter Fang[/i] Liturgieerweiterungen: Formatierung korrigiert.
[*][i]Klarer Geist[/i]: Aspekt [i]Bildung[/i] entfernt.
[*][i]Namenlose Zweifel[/i]: Effekttext korrigiert.
[*][i]Namenloses Vergessen[/i]: Effekttext korrigiert.
[*][i]Nebelschwaden[/i]: Effekttext korrigiert.
[*][i]Obsession[/i] fehlte.
[*][i]Opfergang[/i]: Typo korrigiert.
[*][i]Pech und Schwefel[/i]: Effekttext vervollständigt.
[*][i]Ruf der Heimat[/i]: Effekttext vervollständigt.
[*][i]Seevogelsprache[/i] Mehr Vögel: Leerzeichen eingefügt.
[*][i]Sicherer Weg[/i]: Leerzeichen eingefügt.
[*][i]Traumbild[/i], Effekt: Leerzeichen fehlte.
[*][i]Traumbild[/i] Liturgieerweiterungen: Formatierung korrigiert.
[*][i]Verblassende Erinnerung[/i]: Falsche Verbreitung.
[*][i]Verblassende Erinnerung[/i] Liturgieerweiterungen: Formatierung korrigiert.
[*][i]Wasserlauf[/i]: Verbreitung [i]Allgemein[/i] hinzugefügt, Effekttext korrigiert.
[*][i]Windruf[/i], Zielkategorie: Objekt (profane Objekte, Segel).
[*][i]Zähe Haut[/i]: Aspekt [i]Gutes Gold[/i] hinzugefügt.
[*][i]Albernische Bauernwehr[/i]: Wort fehlte.
[*][i]Albernisches Entermesser[/i]: Typo behoben.
[*][i]Amazonensäbel[/i] fehlte.
[*][i]Andergaster[/i]: Formatierung des Waffenvorteils korrigiert.
[*][i]Dietrichset[/i] hat jetzt auch Preis und Gewicht.
[*][i]Faustschild[/i]: Formatierung korrigiert.
[*][i]Gänsebeutel[/i]: Preis korrigiert.
[*][i]Gaoraith[/i]: Länge fehlte.
[*][i]Hakendolch[/i]: Vorteil und Nachteil ergänzt.
[*][i]Handspiegel[/i] zeigt jetzt die dazugehörige Regeltechnik.
[*][i]Harbener Säbel[/i], Länge: 100 HF → 75 HF.
[*][i]Havener Messer[/i]: Formatierung korrigiert.
[*][i]Hunde-, Pony, Pferdefutter[/i]: Gewicht entfernt.
[*][i]Kettenhemd[/i]: Formatierung angepasst.
[*][i]Kletterseil[/i] hat jetzt korrekte Kosten.
[*][i]Korspieß[/i]: Formatierung korrigiert.
[*]Der Waffennachteil des [i]Langbogens[/i] war unvollständig.
[*][i]Neckerdreizack[/i]: Typo behoben.
[*][i]Pergament, gutes, 1 Blatt[/i]: Preis korrigiert.
[*][i]Richtschwert[/i] war nicht als Waffe gruppiert.
[*][i]Seesäbel[/i]: Formatierung korrigiert und fehlendes Wort ergänzt.
[*][i]Sense[/i] war keine improvisierte Waffe mit einem Gewicht von 3,5 Stn.
[*]Kosten und Gewicht für [i]Seidenseil[/i] ergänzt.
[*][i]Spealleagh[/i] war nicht als Waffe eingetragen.
[*][i]Streitkolben der Streitenden Königreiche[/i] fehlte.
[*][i]Stockdegen[/i]: Formatierung angepasst.
[*][i]Sturmsense[/i]: Formatierung angepasst.
[*][i]Turnierrüstung[/i]: Formatierung angepasst.
[*][i]Turnierzweihänder[/i]: Leiteigenschaften angepasst.
[*][i]Wurfnetz[/i]: Formatierung korrigiert.
[*][i]Zugvogelfedern[/i]: Preis korrigiert.
[/list]
+575
View File
@@ -0,0 +1,575 @@
## 1.5.1
### Verbesserungen
* **MapTool:** unter dem Exportbutton sind nun Links zu der MapTool-Erweiterung ([07d336d](https://github.com/elyukai/optolith-client/commit/07d336dbb3ceba9818185a9b8c0cdffa6283afb3))
### Fehlerbehebungen
* **MapTool:** ohne Avatar konnte nicht exportiert werden ([80fdffb](https://github.com/elyukai/optolith-client/commit/80fdffb373fccc467383cf6d98c1f07a92168ee4)), schließt [#1348](https://github.com/elyukai/optolith-client/issues/1348)
* **MapTool:** für MapTool Version 1.11.4 wurde das Exportformat angepasst ([9e9a113](https://github.com/elyukai/optolith-client/commit/9e9a1139d3821bb5a36fbaa973236319026d996a))
* Vorteil *Vertrauenerweckend* konnte selbst mit einem aktiven Nachteil *Inkompetent* in einem Gesellschaftstalent gekauft werden ([8102bb1](https://github.com/elyukai/optolith-client/commit/8102bb1a9adac4849499380bf3bc2270aa7dd2c6)), schließt [#1351](https://github.com/elyukai/optolith-client/issues/1351)
* Voraussetzungen, die hätten durchgestrichen werden sollen, wurden stattdessen mit umgebenen Tilden dargestellt ([2c9332c](https://github.com/elyukai/optolith-client/commit/2c9332c37f9b2d8d9e0359a9e4dadf0a40beeba1)), schließt [#1349](https://github.com/elyukai/optolith-client/issues/1349)
## 1.5.0
### Features
* MapTool-Export ([87cec15](https://github.com/elyukai/optolith-client/commit/87cec15ba9751c329ee39719dc654895b9f4f193))
* Portugiesische Übersetzung ([d8c9f52](https://github.com/elyukai/optolith-client/commit/d8c9f52542120f9e5fa569728b3f11cb79102365), [#676](https://github.com/elyukai/optolith-client/issues/676))
* Native Unterstützung für Apples M1 ([94e751f](https://github.com/elyukai/optolith-client/commit/94e751fda169c4de90cdb82346d3d864cf697300))
### Verbesserungen
* Sicherheit ([723e910](https://github.com/elyukai/optolith-client/commit/723e9106ebb178db6a7cccec2a022b3edaed5b98) and others)
### Fehlerbehebungen
* Der Trefferzonenrüstungscharakterbogen hatte einen höheren Abstand nach links als die anderen Bögen ([e637136](https://github.com/elyukai/optolith-client/commit/e63713687eff9b825a79d159fb8b44dc26f64ffe), [#788](https://github.com/elyukai/optolith-client/issues/788))
* Bei hinzugekaufter LE wurde nicht für KO ein entsprechendes Minimum gesetzt, sondern für KK ([390dcb6](https://github.com/elyukai/optolith-client/commit/390dcb616aaa68e5b103bb49dd75d1529c4e7e3a), [#787](https://github.com/elyukai/optolith-client/issues/787))
* Waffenindikatoren für zweihändig (2H) und improvisiert (i) fehlten auf dem Charakterbogen ([3f9fae3](https://github.com/elyukai/optolith-client/commit/3f9fae30a2291b8e53486a74dae8cc1533741b94), [#797](https://github.com/elyukai/optolith-client/issues/797))
* Waffen der Kampftechnik Raufen hatten auf dem Charakterbogen keinen Paradewert ([a02700e](https://github.com/elyukai/optolith-client/commit/a02700eeccbd95a75f778d4d9e78ad7a2447dad8), [#1229](https://github.com/elyukai/optolith-client/issues/1229))
* Ein Eintrag, der von einer einzelnen Aktivierung eines anderen Eintrags abhängt, hat die Möglichkeit, die Aktivierung zu entfernen, auch bei mehreren Aktivierungen dieses anderen Eintrags nicht bereitgestellt ([092343f](https://github.com/elyukai/optolith-client/commit/092343f45da566a45b13b275899a458fed720a76), [#1097](https://github.com/elyukai/optolith-client/issues/1097))
* Einträge, die Fremdzauber in die eigenen Tradition überführen, konnten entfernt werden, wenn für diese Zauber Zaubererweiterungen gekauft worden waren ([28f260a](https://github.com/elyukai/optolith-client/commit/28f260a2c4a96adb0d36585a478676f95c304414), [#827](https://github.com/elyukai/optolith-client/issues/827))
* Der Infobereich für Gegenstände hat manchmal nur Fehler angezeigt ([ae2fbad](https://github.com/elyukai/optolith-client/commit/ae2fbad1c738354dd468c1b36b06eda729a879e5))
* Professionen, die höhere Kampftechnikwerte geben als durch den Erfahrungsgrad erlaubt, wurden nicht ausgeblendet ([c8094f5](https://github.com/elyukai/optolith-client/commit/c8094f5ef15f62f69088386b9fc6c64f7d8bfd02), [#1244](https://github.com/elyukai/optolith-client/issues/1244))
* Bei der Sonderfertigkeit Kernschuss war unter Erschwernis ein Minuszeichen falsch platziert ([ccd7dec](https://github.com/elyukai/optolith-client/commit/ccd7decc8314ca476b6a15932ed9b3fb1c22a1f7), [#1080](https://github.com/elyukai/optolith-client/issues/1080))
* In der Beschreibung von Albernisches Entermesser und Harbener Säbel war die Seitenzahl falsch ([ccd7dec](https://github.com/elyukai/optolith-client/commit/ccd7decc8314ca476b6a15932ed9b3fb1c22a1f7), [#1081](https://github.com/elyukai/optolith-client/issues/1081))
* In der Beschreibung des Zaubers Zauberschnurren waren die QS-Beschreibungen vertauscht ([ccd7dec](https://github.com/elyukai/optolith-client/commit/ccd7decc8314ca476b6a15932ed9b3fb1c22a1f7), [#846](https://github.com/elyukai/optolith-client/issues/846) [#1122](https://github.com/elyukai/optolith-client/issues/1122))
* Schlachtermesser und Fleischerbeil waren nicht als improvisierte Waffen markiert ([ccd7dec](https://github.com/elyukai/optolith-client/commit/ccd7decc8314ca476b6a15932ed9b3fb1c22a1f7), [#808](https://github.com/elyukai/optolith-client/issues/808))
* INI/GS-Modifikatoren von Rüstungen wurden negativ eingerechnet ([eb5a068](https://github.com/elyukai/optolith-client/commit/eb5a06884db1894e1a9f2b4b040b114cb4dc85cb), [#1091](https://github.com/elyukai/optolith-client/issues/1091))
* Sprachspezialisierungen kosteten nicht immer 1 AP und konnten zudem pro Sprache nicht mehrfach aktiviert werden ([0a59d9e](https://github.com/elyukai/optolith-client/commit/0a59d9e5e571e87525b18d0b25035e73f7cd87bf), [#1082](https://github.com/elyukai/optolith-client/issues/1082))
* Portraits mit transparenten Flächen hatten einen schwarzen Hintergrund ([cc5ecd6](https://github.com/elyukai/optolith-client/commit/cc5ecd6f098ae6c080eeb3b306887727a99c1220), [#800](https://github.com/elyukai/optolith-client/issues/800))
* Bei Profession Garether Krieger fehlte Schwerter auf 12 und Orientierung sollte 3 statt 2 betragen ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#792](https://github.com/elyukai/optolith-client/issues/792))
* Das bornländische Kulturpaket führte Lederbearbeitung statt Lebensmittelbearbeitung auf ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#824](https://github.com/elyukai/optolith-client/issues/824))
* Zauber Wirbelform hatte die falsche Tradition und eine falsche Reihenfolge bei den Zaubererweiterungen ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#1139](https://github.com/elyukai/optolith-client/issues/1139))
* Kleine Fehler bei den Maßangaben in der Beschreibung des Zaubers Invocatio Minima ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#1224](https://github.com/elyukai/optolith-client/issues/1224))
* Leiteigenschaftsänderungen bei Gegenständen wurden auf dem Charakterbogen geändert, aber nicht direkt im Editierfenster des Gegenstands ([6c63ab1](https://github.com/elyukai/optolith-client/commit/6c63ab1b5051882ace71f15740c3a69fff4a267f), [#798](https://github.com/elyukai/optolith-client/issues/798))
* Bestimmte Professionen waren trotz eines für vorausgesetzte Eigenschaften zu niedrigen Erfahrungsgrads auswählbar ([fdde329](https://github.com/elyukai/optolith-client/commit/fdde329de591319df3f6da11404dd7523d800c3e), [#1109](https://github.com/elyukai/optolith-client/issues/1109))
* Herbeirufende und beschwörende Zauber aus Professionen haben nicht direkt die Abhängigkeiten für ihre Voraussetzungen registriert ([c1b2e26](https://github.com/elyukai/optolith-client/commit/c1b2e267cb3f02d2d18812415c39c58739ad99ec), [#1240](https://github.com/elyukai/optolith-client/issues/1240))
* Das Gewicht bei Elfen wurde nicht korrekt zufällig generiert ([3b05e69](https://github.com/elyukai/optolith-client/commit/3b05e69e27f7faa1634b50eb134000fe1a2c3a21), [#813](https://github.com/elyukai/optolith-client/issues/813))
* Schreibfehler bei Physiostabilis ([e40f995](https://github.com/elyukai/optolith-client/commit/e40f995e341dc7fbcb1d9688c4b82a9187c180de), [#1234](https://github.com/elyukai/optolith-client/issues/1234))
* Tradition (Druide) referenzierte einen nicht existierenden Nachteil statt des Vorteils Eisenaffine Aura ([f8114c2](https://github.com/elyukai/optolith-client/commit/f8114c2f4318967631b71ea3614bf647e7826fa2), [#1237](https://github.com/elyukai/optolith-client/issues/1237))
* Der Hakendolch war nicht als Parierwaffe markiert ([ed74170](https://github.com/elyukai/optolith-client/commit/ed74170865b2caad8008a345db5c1705e0376bc5), [#1232](https://github.com/elyukai/optolith-client/issues/1232))
* Der Waffenvorteil des Kriegsbogens hatte einen falschen Schadensbonus ([8297455](https://github.com/elyukai/optolith-client/commit/8297455ddbd360035428a4ed244a684e6f1c7e7a), [#1074](https://github.com/elyukai/optolith-client/issues/1074))
* Profession Spinnenhexe hatte einen falschen Tierkunde-Wert ([#1250](https://github.com/elyukai/optolith-client/issues/1250))
* Eigenschaften auf dem niedrigsten möglichen Wert (8) erlaubten Kampftechniken, dessen Leiteigenschaften sie waren, keinen Kampftechnikwert über 6 ([47e66d6](https://github.com/elyukai/optolith-client/commit/47e66d65467999e2661eaac30a97b5a1ebfece94), [#835](https://github.com/elyukai/optolith-client/issues/835))
* Profession Sharisad bekam einen Bonus auf Steinbearbeitung statt auf Stoffbearbeitung ([cd16e53](https://github.com/elyukai/optolith-client/commit/cd16e5314a7f579a5f5f916bb204a15df3220bda), [#1341](https://github.com/elyukai/optolith-client/issues/1341))
* Die PDF-Datei war zu groß, wenn die Hintergrundtextur verwendet wurde ([9cb2658](https://github.com/elyukai/optolith-client/commit/9cb26586f3a5026d06f41801d4bbf714631d06a4), [#1094](https://github.com/elyukai/optolith-client/issues/1094))
* Bei AppImages funktionierte der Auto-Updater nicht ([a24ff80](https://github.com/elyukai/optolith-client/commit/a24ff8082a5556fc07af05f113bacfd9c84428a4), [#753](https://github.com/elyukai/optolith-client/issues/753))
* SF Weg der Schreiberin konnte nicht aktiviert werden ([83b534d](https://github.com/elyukai/optolith-client/commit/83b534d3f9fcd5e63ef7cf482d9dd26f06b5a1a2), [#1233](https://github.com/elyukai/optolith-client/issues/1233))
* Einige Leiteigenschaftsvoraussetzungen wurden ignoriert ([ac0cdc3](https://github.com/elyukai/optolith-client/commit/ac0cdc377800a1eb380993dbb7914fa88b8f254e), [#1260](https://github.com/elyukai/optolith-client/issues/1260))
* Die Texteingabefehler für die Reichweite von Fernkampfwaffen beeinflussten ihre Inhalte gegenseitig ([0ab65e8](https://github.com/elyukai/optolith-client/commit/0ab65e869c26536127b386753db110f2e26b33af), [#1251](https://github.com/elyukai/optolith-client/issues/1251))
* Wenn eine einzige Sprache und dazu passende Schrift vorausgesetzt wurden, wurden stattdessen alle Sprachen und Schriften vorausgesetzt ([4dabbdb](https://github.com/elyukai/optolith-client/commit/4dabbdbcd23c1ffeff18a8b1f9497a4a8315aa6a), [#1343](https://github.com/elyukai/optolith-client/issues/1343))
* Schriften erforderten keine aktive passende Sprache ([1ed0c64](https://github.com/elyukai/optolith-client/commit/1ed0c64b0dd9873593169bd9994082d49299fa3e), [#1344](https://github.com/elyukai/optolith-client/issues/1344))
* Einige Gegenstandswerte wurden nicht gespeichert ([f2e6138](https://github.com/elyukai/optolith-client/commit/f2e61386abe444aa76f0211469d50c30fde99a0c), [#1252](https://github.com/elyukai/optolith-client/issues/1252))
* Schreibfeler bei Tarnele ([8b5eede](https://github.com/elyukai/optolith-client/commit/8b5eedeb372622761480f2511935e8b74bdfcdcd), [#1330](https://github.com/elyukai/optolith-client/issues/1330))
* Die Auswahl eines Fremdzaubers für eine gildenmagische Profession war optional ([3574d1b](https://github.com/elyukai/optolith-client/commit/3574d1ba46725d04a83286cd1055c080fe1de95f), [#1315](https://github.com/elyukai/optolith-client/issues/1315))
* Kampftechniken haben nicht das Minimum ihrer Leiteigenschaften beeinflusst ([1ce2db9](https://github.com/elyukai/optolith-client/commit/1ce2db9cfbb06b1ca8a549957b8225af71de9185), [#836](https://github.com/elyukai/optolith-client/issues/836))
* Das Speichern eines Charakters hat manchmal die Änderungshistorie von mehreren Charakteren gelöscht ([923b760](https://github.com/elyukai/optolith-client/commit/923b7605fee4c4288dc743e962728308f7254ca9), [#811](https://github.com/elyukai/optolith-client/issues/811))
* Zauber, die durch Imitationszauberei in Schelmenstreiche konvertiert wurden, konnten Zaubererweiterungen nutzen ([e558c1d](https://github.com/elyukai/optolith-client/commit/e558c1d80d1c668f926e4a56049029f989081a45), [#828](https://github.com/elyukai/optolith-client/issues/828))
* Dickere Zeilen in der zweiten Spalte der Talenttabelle auf dem Charakterbogen ([41ee35b](https://github.com/elyukai/optolith-client/commit/41ee35ba76af42ad837daa6c45a940406b0c5daa), [#1342](https://github.com/elyukai/optolith-client/issues/1342))
* Sonderfertigkeit Blattschuss zeigte den falschen Kampfsonderfertigkeitstyp an ([7e31136](https://github.com/elyukai/optolith-client/commit/7e31136083ae62e26c5017f3af2376938bd264c3), [#1331](https://github.com/elyukai/optolith-client/issues/1331))
* Schreibfehler bei Tradition (Scharlatane) ([bdb3eb7](https://github.com/elyukai/optolith-client/commit/bdb3eb7804f8464689172f39d5bd8c229140c891), [#1239](https://github.com/elyukai/optolith-client/issues/1239))
### Danke
Zu guter Letzt ein großes **Danke** an alle, die über verschiedeste Kanäle Feedback geben und helfen, sowie an die folgenden Menschen auf GitHub, die an dieser Version mitgewirkt haben!
- [Elidia (@FloraMayr)](https://github.com/FloraMayr)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lector (@Lector)](https://github.com/Lector)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [Marc Schwering (@m4rcsch)](https://github.com/m4rcsch)
- [Pepelios (@Pepelios)](https://github.com/Pepelios)
## 1.4.2
### Enhancements
- Der Start der Anwendung war viel langsamer als in Version 1.3.2. [#751](https://github.com/elyukai/optolith-client/issues/751)
### Fehlerbehebungen
- Das Maximum von Kampftechniken konnte höher sein als es die Regeln eigentlich erlauben. [#749](https://github.com/elyukai/optolith-client/issues/749)
- Der Abstand von Overlays also z. B. wenn Vorteile hinzugefügt werden nach oben war zu klein. [#727](https://github.com/elyukai/optolith-client/issues/727)
- Wenn eine Profession es erlaubt hat, aus einer Menge an Kampftechniken eine zweite für einen niedrigeren Bonus als den der ersten auszuwählen, wurde dieser niedrigere Bonus nicht auf den Charakter angewandt. [#647](https://github.com/elyukai/optolith-client/issues/647)
- Die *Fackel* hatte als L+S KK 15 statt KK 14. [#752](https://github.com/elyukai/optolith-client/issues/752) [#737](https://github.com/elyukai/optolith-client/issues/737)
- Der Schadensbonus durch L+S wurde bei Waffen, die keinen festen Schaden hatten, nicht berücksichtigt. [#737](https://github.com/elyukai/optolith-client/issues/737)
- Es konnte nur ein Talentstil zur gleichen Zeit aktiv sein, obwohl es keine Einschränkung diesbezüglich gibt. [#665](https://github.com/elyukai/optolith-client/issues/665)
- Die Profession *Weißmagier (Akademie Schwert und Stab zu Gareth)* aus dem **Regelwerk** hatte falsche AP-Kosten und *Sternkunde 4* statt *Alchemie 4*. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Das Talentefeld für Tierbegleiter auf dem Charakterbogen was zu klein, um alle relevanten Talente aufnehmen zu können. [#733](https://github.com/elyukai/optolith-client/issues/733)
- Im Regeltext für das *Großzelt, 12 Personen* fehlte ein Wort. [#739](https://github.com/elyukai/optolith-client/issues/739)
- SF *Anhänger des Güldenen* erlaubte Liturgien bis Steigerungsfaktor C, obwohl nur welche bis B erlaubt sind. [#754](https://github.com/elyukai/optolith-client/issues/754)
- SF *Scholar des Magierkollegs zu Honingen* fehlte. [#726](https://github.com/elyukai/optolith-client/issues/726)
- SF *Havena-Stil* fehlte. [#740](https://github.com/elyukai/optolith-client/issues/740)
- Der Name des Feenpaktgeschenks *Ruf des Waldes* hatte einen Schreibfehler. [#755](https://github.com/elyukai/optolith-client/issues/755)
- Profession *Gildenloser Magier nach Vadif sal Karim* hatte eine Bonus auf den falschen *Hagelschlag*-Zauber. [#772](https://github.com/elyukai/optolith-client/issues/772)
- Der Text der dritten Erweiterung des Zaubers *Klarheit des Eises* hatte eine falsche Zeiteinheit in der Zeitangabe. [#766](https://github.com/elyukai/optolith-client/issues/766)
- Der SF *Spiritualistinnen* hatte falsche erweiterte Sonderfertigkeiten. [#763](https://github.com/elyukai/optolith-client/issues/763)
- SF *Klingensturm* hatte falsche Kampftechniken angegeben. [#768](https://github.com/elyukai/optolith-client/issues/768)
- Bilder mit großgeschriebenen Dateiendungen wurden als Portraits nicht akzeptiert. [#762](https://github.com/elyukai/optolith-client/issues/762)
- Wenn ein Portrait fehlte, wurde auf dem Charakterbogen das Upload-Icon angezeigt. [#759](https://github.com/elyukai/optolith-client/issues/759)
- Auf dem Mac wurden, wenn eine Papiertextur für den Charakterbogen ausgewählt wurde, zusätzliche leere Seiten generiert. [#748](https://github.com/elyukai/optolith-client/issues/748)
- Der Effekttext der SF *Bindung des Dolches* hatte einen Schreibfehler. [#773](https://github.com/elyukai/optolith-client/issues/773)
### Danke
Zu guter Letzt ein großes **Danke** an alle, die über verschiedeste Kanäle Feedback geben und helfen, sowie an die folgenden Menschen auf GitHub, die an dieser Version mitgewirkt haben!
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.4.1
### Fehlerbehebungen
- Italienisch war nicht verfügbar.
## 1.4.0
### Features
- **Havena &ndash; Versunkene Geheimnisse** [#460](https://github.com/elyukai/optolith-client/issues/460)
- **Unendlichkeit & Tiefenrausch** [#461](https://github.com/elyukai/optolith-client/issues/461)
- **Katakomben & Ruinen** [#462](https://github.com/elyukai/optolith-client/issues/462)
- Italienische Übersetzung [#667](https://github.com/elyukai/optolith-client/issues/667) [#610](https://github.com/elyukai/optolith-client/issues/610)
- Optionaler Charakterbogenhintergrund in Papieroptik. [#36](https://github.com/elyukai/optolith-client/issues/36)
- Zoom-Option für Charakterbogen-Ansicht. [#665](https://github.com/elyukai/optolith-client/issues/665)
- Geld zum Geldbeutel hinzufügen oder davon abziehen. [#666](https://github.com/elyukai/optolith-client/issues/666)
- Eigene Vorteile, Nachteile und Sonderfertigkeiten mit eigenem Namen und AP-Wert erstellen (temporäre Lösung). [#632](https://github.com/elyukai/optolith-client/issues/632)
### Verbesserungen
- Im Ausrüstungstab wird das Gewicht nun in einer eigenen Spalte angezeigt. [#305](https://github.com/elyukai/optolith-client/issues/305)
- Unnötige Kampfbögen werden jetzt nicht mehr angezeigt und exportiert, stattdessen basiert die Anzeige nun darauf, welche Rüstungen der jeweilige Charakter besitzt. Der Kampfbogen für Komplettrüstungen wird angezeigt, wenn der Charakter keine Rüstung besitzt. [#407](https://github.com/elyukai/optolith-client/issues/407)
- Der Name eines Eintrags zeigt nun, wie der Info-Button am Ende, den Regeltext des Eintrags an. [#556](https://github.com/elyukai/optolith-client/issues/556)
### Fehlerbehebungen
- Waffen aus **Aventurische Magie I** wurden nicht angezeigt. [#617](https://github.com/elyukai/optolith-client/issues/617)
- Gegenstände aus **Aventurische Magie II** wurden nicht angezeigt. [#659](https://github.com/elyukai/optolith-client/issues/659)
- In der Beschreibung der SF *Metessa Galora-Stil* war ein Schreibfehler. [#635](https://github.com/elyukai/optolith-client/issues/635)
- SF *Tannhaus-Stil* hatte eine falsche Kampftechniken-Angabe. [#634](https://github.com/elyukai/optolith-client/issues/634)
- SF *Sippenkrieger-Stil* hatte falsche erweiterte Sonderfertigkeiten. [#587](https://github.com/elyukai/optolith-client/issues/587)
- Bei der Profession *Golgarit* und dessen Variante *Untotenjäger* fehlte die SF *Berittener Kampf*. [#597](https://github.com/elyukai/optolith-client/issues/597)
- Die Profession *Ingerimmgeweihter* hatte falsche AP-Kosten und ihr fehlte eine Liturgie. [#574](https://github.com/elyukai/optolith-client/issues/574)
- Die Varianten der Profession *Borongeweihter* hatten falsche Talentmodifikationen. [#548](https://github.com/elyukai/optolith-client/issues/548)
- SF *Rabenschwestern (Seherin von Heute und Morgen)* hatte falsche erweiterte Sonderfertigkeiten. [#639](https://github.com/elyukai/optolith-client/issues/639)
- Profession *Kammerdiener (Zofe)* hatte einen Bonus auf das falsche Talent. [#614](https://github.com/elyukai/optolith-client/issues/614)
- SF *Elfenfreund* hatte Errata, die aber noch nicht eingepflegt waren. [#621](https://github.com/elyukai/optolith-client/issues/621)
- Profession *Weißmagier (Schwert & Stab zu Gareth)* hatte einen falschen AP-Wert und eine zusätzliche Talentmodifikation. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Der Name der Variante *Pfad der Wächterin* der Profession *Gildenlose Magierin (Bannakademie von Fasar)* hatte einen Schreibfehler. [#566](https://github.com/elyukai/optolith-client/issues/566)
- Zauber *Skelettarius* hatte die Zauberweiterung *Längere Dienste* statt *Längerer Dienst* und auch einen falschen Beschreibungstext. [#602](https://github.com/elyukai/optolith-client/issues/602)
- Spezifisch definierte übliche Professionen einer Kultur werden nun auch dann angezeigt, wenn sie nicht aus dem **Regelwerk** stammen. [#563](https://github.com/elyukai/optolith-client/issues/563)
- SF *Balboram-Stil* hatte Lanzenangriff I statt Beidhändiger Kampf I als Voraussetzung. [#563](https://github.com/elyukai/optolith-client/issues/563)
- Der Erfahrungsgrad *Brillant* wurde zuvor Brilliant geschrieben. Das gleiche Problem gab es auch bei anderen Einträgen. [#567](https://github.com/elyukai/optolith-client/issues/567)
- Zauber *Halluzination* hatte als Verbreitung Elfen, obwohl es Druiden hätte sein müssen. [#564](https://github.com/elyukai/optolith-client/issues/564)
- Das Interface konnte kleiner skaliert werden. [#487](https://github.com/elyukai/optolith-client/issues/487)
- Schelmenstreiche zeigten keine Wirkungsdauer an, obwohl sie eine besitzen. [#663](https://github.com/elyukai/optolith-client/issues/663)
- Waffen der Kampftechnik *Lanzen* wurden nicht auf dem Heldenbogen abgezeigt. [#662](https://github.com/elyukai/optolith-client/issues/662)
- Eigenschaften ignorierten das Minimum, welches durch höhere Fertigkeitswerte entsteht. Das Maximum für Fertigkeitswerte ist die höchste an der Probe beteiligte Eigenschaft&thinsp;+&thinsp;2, wodurch die höchste Eigenschaft mindestens FW&thinsp;&minus;&thinsp;2 sein muss. [#630](https://github.com/elyukai/optolith-client/issues/630)
- Das neue Anwendungsgebiet *Fachpublikationen* für das Talent *Rechtskunde* hatte eine falsche Sonderfertigkeitsvoraussetzung. [#680](https://github.com/elyukai/optolith-client/issues/680)
- Geweihte des Namenlosen konnten keine Segnungen kaufen. [#657](https://github.com/elyukai/optolith-client/issues/657)
- Einige Listeneinträge waren breiter als die eigentliche Liste. [#683](https://github.com/elyukai/optolith-client/pull/683)
- SF *Kind der Natur* und ähnliche SFs erlaubten nur ein Talent. [#649](https://github.com/elyukai/optolith-client/issues/649)
- Listenüberschriften waren standardmäßig nicht zentriert. [#637](https://github.com/elyukai/optolith-client/issues/637)
- SF *Fachwissen* hatte unerwartete Zeichen im generierten Namen. [#611](https://github.com/elyukai/optolith-client/issues/611)
- Permanent ausgegebene LE verbot den Kauf weiterer LeP. [#606](https://github.com/elyukai/optolith-client/issues/606)
- Wenn KO auf 8 war und keine Einträge von ihr abhingen, konnten keine weiteren LeP gekauft werden. [#694](https://github.com/elyukai/optolith-client/issues/694)
- *Aspektkenntnis*-SFs konnten trotz des Minimums von mindestens drei Liturgien des Aspekts auf FW 10 oder höher nicht gekauft werden. [#591](https://github.com/elyukai/optolith-client/issues/591)
- Der Zaubertrick *Hexenblick* konnte von allen Zauberern gekauft werden. [#377](https://github.com/elyukai/optolith-client/issues/377)
- Zaubertänzer konnten keine Zaubertänze kaufen. [#594](https://github.com/elyukai/optolith-client/issues/594)
- Die Varianten der Zaubertänzer und -barden berücksichtigten ihre jeweiligen Kultur- und ggf. Geschlechtsvoraussetzungen nicht. [#565](https://github.com/elyukai/optolith-client/issues/565)
- Wenn bei einer Profession neben der Auswahl einer oder mehrerer Kampftechniken für einen bestimmten KtW eine oder mehrere weitere Kampftechniken für einen niedrigeren KtW ausgewählt werden sollen (z. B. bei der Profession *Soldat*), war dies nicht möglich. [#647](https://github.com/elyukai/optolith-client/issues/647)
- Die SFs *Gift melken (...)* beschrieben ein neues Einsatzgebiet, gemeint ist eine *Einsatzmöglichkeit*. [#651](https://github.com/elyukai/optolith-client/issues/651)
- Die Beschreibung des Zaubers *Gletscherform* entsprach nicht dem Text aus **Aventurische Magie II**. [#654](https://github.com/elyukai/optolith-client/issues/654)
- Meldungen des Updaters sowie der Suche-nach-Updates-Button sind nun auf macOS deaktiviert, da dort aktuell keine automatischen Updates möglich sind. [#589](https://github.com/elyukai/optolith-client/issues/589)
- Die SF *Feindgespür* nannte falsche Kampftechniken, für die die SF gilt. [#658](https://github.com/elyukai/optolith-client/issues/658)
- Auto-Update-Warnungen wurden auf Linux gezeigt selbst wenn keine direkten Auto-Updates möglich waren. [#573](https://github.com/elyukai/optolith-client/issues/573)
- Bei der SF *Zugvögel* und SFs mit vergleichbaren Effekten wurden die zusätzlich ermöglichten Liturgieplätze durch passende aktive Liturgien, die allerdings auch für die eigentliche Tradition der Geweihten verfügbar waren, blockiert. [#677](https://github.com/elyukai/optolith-client/issues/677)
- Die SF *Giftverstärkung* hatte einen falschen Regeltext. [#713](https://github.com/elyukai/optolith-client/issues/713)
- Beim Exportieren eines Charakters als JSON wurde im Speichern-Dialog die Dateiendung nicht an den vorgeschlagenen Dateinamen angefügt. [#718](https://github.com/elyukai/optolith-client/issues/718)
### API
Die nächste Release wird wichtige und mit vorherigen Versionen inkompatible Änderungen mit sich bringen, wenn du also Optolith-Quelldateien oder -Speicherdateien nutzt, würde ich dir empfehlen, mal auf [Discord](https://discord.gg/wfdgB9g) vorbeizuschauen, da kann ich dir dann alles im Detail erläutern. Da mehr und mehr Menschen von der Optolith-Datenbasis abhängen, werde ich ab jetzt Semantic Versioning strikt folgen, sodass du dich allein auf Basis der Version darauf verlassen kannst, dass du mit deiner Software immer noch damit arbeiten kannst. Es wird ein neues Format für Charaktere, aber auch für sämtliche Wikieinträge geben. Du kannst mir auch immer noch Feedback zukommen lassen, da noch nicht alles bis ins letzte Detail fertig ist &ndash; aber ich denke, es macht immer noch Sinn, sich diese Änderungen recht früh anzusehen. Die nächste major Version ist immer noch ein gutes Stück entfernt, sodass noch mehr als genug Zeit ist, um deine Software anzupassen.
### Danke
Zu guter Letzt ein großes **Danke** an die folgenden Menschen auf GitHub, die an dieser Version mitgewirkt haben!
- [Jonas (@Rahjenaos)](https://github.com/Rahjenaos)
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [manuelstengelberger (@manuelstengelberger)](https://github.com/manuelstengelberger)
- [Philipp A. (@flying-sheep)](https://github.com/flying-sheep)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.3.2
### Fehlerbehebungen
- SF Wege der Gelehrten: Es fehlten einige Auswahlmöglichkeiten. #517
- Neue Kampftechniken aus Büchern abseits des Regelwerks fehlten im Kampftechniken-Tab. #543
- Die Beschreibung der Kampftechnikauswahl bei Professionsvarianten wurde nicht richtig angezeigt.
- Die Sozialstatusvoraussetzung für *Herrschaftsanspruch* funktionierte nicht.
- Profession *Lanisto*: Die Fertigkeitsspezialisierung galt für das falsche Talent.
- Professionen haben ihre Abhängigkeiten nicht beachtet.
- In den persönlichen Daten hatte das Textfeld „Titel“ die falsche Beschriftung.
- Falsche Volumenangaben in der Effektbeschreibung des Zaubers *Manifesto*.
- Profession *Hazaqi*: *Steinbearbeitung* 4 ist jetzt *Stoffbearbeiung* 4.
- Berufsgeheimnisse aus der *Rüstkammer der Streitenden Königreiche* fehlten. #474
- SF *Bindung des Bannschwerts* hatte keine Kosten. #490
- *Götter & Kulte* war bei den meisten Geweihtenprofessionen auf FW 6. #475
- Auf dem PDF wurde die Zustand/Status-Tabelle abgeschnitten, was aber nicht in der PDF-Vorschaut in Optolith der Fall war. #473
- SF *Waldritter-Stil* war nicht wählbar. #478
- SF *Angetäuschter Angriff* hatte als Voraussetzung KK 15 statt GE 15. #481
- Die `config.json` hat immer noch bei vielen Fehler geworfen. Das Problem sollte nun endgültig gebannt sein. #476
- In sehr seltenen Fällen wurden Teile der Heldendatei oder die gesamte Heldendatei gelöscht. Das Schreiben von Heldendateien wurde daher komplett neu geschrieben und zusammengefasst, um weiteren Fehlern vorzubeugen. #477
- Fehlenden Garethi-Dialekt *Nostrisch* hinzugefügt. #480
- SF Kraftkontrolle hatte als Voraussetzung statt Leiteigenschaft 15 Leiteigenschaft 13. #471
- Fehler bei Drittanbieterlizenzen behoben. #471
- Typo im Namen des Hardas-Stils korrigiert. #469
### Bekannte Fehler
- Einige Einträge, die komplexere Voraussetzungen haben, können diese Voraussetzungen falsch *anzeigen*, sie aber trotzdem richtig *verwenden*.
## 1.3.1
### Fehlerbehebungen
- In der französischen Version fehlten alle Einträge, die zur Heldenerschaffung nötig sind (Spezies etc.). Sie waren vorhanden, wurden aber nicht in der Liste angezeigt. #449
- Es gab Fehler, weil die Config unbekannte Keys hatte, wodurch Optolith nicht startete. #450
- Auf dem Heldenbogen wurden Status nur in einer Spalte dargestellt, wenn es eine gerade Anzahl war. #448
## 1.3.0
### Neue Features
- Französische Version (inkl. Regelwerk) #34
- Aventurische Magie 2 #41
- Aventurisches Kompendium 2 #93
### Verbesserungen
- Das Suchfeld im Wiki wird jetzt nicht mehr gelöscht, wenn man die Kategorie wechselt. #286
- Wenn der Import eines Helden fehlschlägt, werden nun genauere Infos gegeben, was genau das Problem war. (inkompatible Version, invalide Datei, etc.) #343 #394
- Komplett neuer Datenbankunterbau und dadurch Ladezeitersparnis von ca. 50%
### Fehlerbehebungen
- Der Cache für AP funktioniert jetzt wieder ordnungsgemäß, wenn man nicht alle Helden speichert. #416
- Die Sprachtabelle verzerrte das Layout, wenn Hjaldisch/Saga-Thorwalsch aktiv war. #419
- SF *Zugvögel*: Statt Rahjaliturgien standen Travialiturgien zur Auswahl. #423
- Die Texte bei den persönliche Daten auf dem Heldenbogen wurden teilweise beschnitten. #413
- Die Profession *Schwarzmagier (Schüler des Demirion Ophenos)* hatte falsche AP-Kosten. #344
- Die Ausrichtung des Gesamtgewichts auf dem Besitz-Bogen wurde behoben. #291
- Ein Gegenstand konnte nicht als improvisierte Waffe eingetragen werden. #290
- SF *Jägerinnen der weißen Maid*: Mögliche Liturgien zeigten keine Aspekte an. #289
- Die Infotabelle für Routineproben war nicht richtig ausgerichtet. #214
- Angst vor: Auswahl/eigener Text wurde auf dem Heldenbogen nicht angezeigt. #213
- Man konnte keine Bilder von einem Server als Bild importieren. #229
- Das Hinzufügen von AP funktionierte nicht, wenn man nicht das Eingabefeld verlassen hat. #341
- Waffen, die keinen Schaden verursachen, zeigen nicht mehr nur "W" als Schaden. #353
- Keine Talentwertverringerung *Fährtensuche* mehr möglich bei Jäger (Kopfgeldjäger). #357
- SF *Vorstoß* hatte KT Schwerter doppelt aufgeführt. #355
- Ein exportierter Held mit einer BOM konnte nicht gelesen werden. #37
- Gegenstandsänderungen konnten in bestimmten Situationen nicht gespeichert werden. #389
- Fehler behoben, dass das Feld "Wo getragen?" bei Gegenständen nicht gespeichert wurde. #369
- Die Zaubertricks Hexenblick und Elfenhaar sind jetzt nur noch für Hexen bzw. Elfen wählbar. #377
- Die Obergrenze durch die Leiteigenschaft bei Kampftechniken funktioniert jetzt wieder. #379
- Typo in ATTRIBUTO (Körperkraft), zweite Erweiterung behoben. #366
- Wurfnetz war bei *Schleudern* anstelle bei *Wurfwaffen* hinterlegt. #345
- Typo im Text der SF *Abrichter* behoben. #342
- Die Anwendungskonfiguration wirft jetzt keine Fehler mehr hervor. #358
### API
Es gibt auf [GitHub](https://github.com/elyukai/optolith-client/tree/master/app/Schema/Hero) jetzt ein einfaches Schema zum Validieren eines Helden. Ein vollständiges Schema ist in Arbeit; die unfertige Version davon findet sich ebenfalls im verlinkten Ordner.
## 1.2.0
Diese Release ist hauptsächlich für andere Sprachen, da es Optolith jetzt auch auf Niederländisch gibt und English an Büchern aufgeholt hat. Allerdings gibt es auch viele relevante Fehlerbehebungen und kleine Verbesserungen.
### Neue Features
- Niederländische Version (inkl. Regelwerk)
- Neue Bücher auf Englisch
### Verbesserungen
- Schilde werden normalerweise nicht als Primärwaffe genutzt, weshalb der doppelte Paradebonus nun standardmäßig auf dem Heldenbogen eingerechnet wird und nicht mehr der einfache.
- Verbessertes Ausweichen IIII erhöht AW nicht mehr, da dies nur passieren darf, wenn man keine Rüstung trägt.
- *Saga-Thorwalsch* in *Hjaldinsch/Saga-Thorwalsch* umbenannt.
- SF Variante (beide) in *Zaubererweiterung* und *Liturgieerweiterung* umbenannt.
### Fehlerbehebungen
- Die Optionalregel *Höhere Paradewerte* erhöhte AW um 2 bzw. 4, obwohl es eigentlich nur 1 bzw. 2 sind.
- Eine Zauber der Tradition (Scharlatan) hatten diese nicht als Tradition eingetragen.
- Vorteil *Leichter Gang* hat die GS nicht erhöht.
- Nachteil *Pech I-III* hat die maximalen SchiPs auf dem Heldenbogen nicht verringert.
- Das Fenster für permanent ausgegebene Astralenegie und Karmaenergie war nicht schließbar.
- Nachteil *Stigma (Grüne Haare)* ändert die Haarfarbe jetzt auf Grün.
- Die Bildvorschau zeigt jetzt auch PNGs und nicht mehr nur JPEGs an.
- Muttersprache (MS) konnte nicht als Stufe für Sprachen selektiert werden.
- Der Schließen-Button des App-Fensters funktionierte nicht.
- Fehlermeldungen beim Import-/Export-Abbruch entfernt.
- SERPENTIALIS ist jetzt für Hexen und nicht mehr für Elfen.
- Feenpaktgeschenke haben jetzt Beschreibungen.
- Persönlichkeitsschwäche: Es ist jetzt möglich, so viele Vorurteil/Weltfremd-Einträge zu kaufen wie man möchte.
- Für Professionen erforderliche Eigenschaftswerte werden jetzt auch so eingetragen.
- SF Merkmalskenntnis funktionierte nicht und hatte eine falsche Kostenberechnung.
- Halbgötter waren nicht als Anwendungsgebiete für *Götter & Kulte* verfügbar.
- Fehlende Heilkräuter hinzugefügt.
- Das Neuauswürfeln des Gewichts ohne eine bereits eingetragene Größe geht nun nicht mehr von einer Größe von 0 aus, sondern würfelt erst die Größe neu aus und lässt diesen Wert dann in das Gewicht einfließen.
- Wenn die KK 8 ist, ist die Tragkraft nicht mehr 0 sondern 16.
- Kampftechnikanpassungen in Professionsvarianten wurden nicht korrekt dargestellt.
- Der Standardname für einen exportierten Heldenbogen ist jetzt der Name des Helden.
- Das Maximum für Fremdzauber griff auch noch nach der Heldenerstellung.
- Helden, die von der aktuell ausgeführten Optolith-Version nicht unterstützt werden, werden nicht mehr geladen bzw. angezeigt.
- SF Athlet: Falsche Voraussetzungen
- SF Buchdrucker: Falsche Voraussetzungen
- Wenn ein Zauber für die Tradition Gildenmagier ausgewählt werden soll, werden Zauber der Tradition Allgemein ausgeblendet.
- Umlautzeichen in Listenelementen werden jetzt nicht mehr abgeschnitten.
- Die gewählte Sprache eines Helden wurde nicht gespeichert.
- Pakte wurden nicht gespeichert.
- SF Kupferstich: Falsche Voraussetzungen
- Das Feld *Verbreitung* hat die Tradition (Namenloser) nicht aufgeführt.
- Zu lange Liturgienamen werden auf dem Heldenbogen jetzt als Abkürzung dargestellt.
- Die Liturgietabelle auf dem Liturgiebogen hatte teilweise falsche Überschriften.
- Bann-/Schutzkreise werden auf dem Heldenbogen jetzt korrekt angezeigt.
- Erweiterte Liturgiesonderfertigkeiten wurden häufig nicht durch Liturgiestile freigeschaltet.
- Nachteil *Unfähig* hatte den Vorteil *Begabung* als Ganzes verboten und nicht nur das jeweilige Talent.
- Das Maximum von Kampftechniken durch die Leiteigenschaft greift jetzt auch während der Heldenerstellung.
- Hat man die Tradition Meistertalentierte ausgewählt, wurden die in Vorteile und Nachteile ausgegebenen AP nicht angezeigt.
- SF Lieblingszauber erlaubt jetzt das Auswählen inaktiver Zauber nicht mehr.
- Der Anteil der Kopfrüstung und der Torsorüstung bei Zonenrüstung war vertauscht.
- SF Baliho-Stil hatte Schilddeckung als mögliche erweiterte Kampfsonderfertigkeit aufgezählt, obwohl es Schildstoß hätte sein müssen.
## 1.1.2
### Verbesserungen
- Die Meldung beim Laden ist jetzt auf Deutsch.
- Das Abschließen der SKP-Auswahl kann jetzt rückgängig gemacht werden.
### Fehlerbehebungen
- Kampfsonderfertigkeiten zeigen jetzt wieder ihren Typ (passiv/Basismanöver/Spezialmanöver) im Wiki an.
- Zauber nach Gruppe zu sortieren sortiert die Gruppen jetzt alphabetisch.
- Auf EG *Unerfahren* kann mal als Gildenmagier jetzt auch den ausgewählten Fremdzauber (der jetzt keiner mehr ist) auswählen.
- In der Auswahlliste für SF *Tradition (Gildenmagier)* werden jetzt keine traditionseigenen Zauber mehr angezeigt.
- Das englische User Interface lädt jetzt wieder ohne Probleme.
- Profession *Akademie von Licht und Dunkelheit* kann jetzt wieder ohne UI-Fehler ausgewählt werden.
## 1.1.0/1.1.1
*Die genaue Versionsnummer der App ist 1.1.1.*
Nach mehr als über einem Jahr kommt nun endlich ein großes Update auch wenn man es als Benutzer nicht unbedingt mitbekommt: Optolith hat einen komplett neuen Code bekommen. Mit einher geht eine interne Umstrukturierung, sodass Features wie Gruppen in Zukunft performant möglich sein werden. Das ist zwar die größte Änderung, aber nicht die einzige: Sämtliche gemeldeten Bugs sind behoben und über die letzten zwei Wochen haben meine Tester auch noch diverse Bugs gefunden, die hiermit auch behoben werden.
Vermutlich werdet ihr feststellen, dass Optolith ein paar Sekunden länger braucht zum Laden als vorher. Das liegt daran, dass ich Optolith neu gebaut habe mit dem Grundgedanken, dass es stabiler läuft. Ich führe daher beim Laden Prüfungen durch, damit alle Daten, die geladen werden, auch wirklich so aussehen wie erwartet und nicht durch falsche Tabellen oder andere Daten etwas im Programm passiert, was nicht beabsichtigt ist. Die Start-Performance wird definitiv noch verbessert werden, für den Anfang ist mir ein stabileres Programm aber lieber als ein schnelles; schließlich geht es hier auch nur um den Programmstart, die Performance bei der Benutzung ist davon nicht betroffen.
Nicht zuletzt aber auch ein bereits an anderer Stelle erwähntes großes Dankeschön an euch, für eure Geduld und euer ganzes Feedback und weitere Hilfe, ohne die ich nicht all die Fehler hätte beheben können. Zwar haben es neue Regelwerke noch nicht in diese Version geschafft, und auch die nächste Version wird nicht alle neuen beinhalten, aber dennoch wird Optolith jetzt vergleichsweise schnell auf den aktuellen Stand der Regeln kommen können.
Aber nun zum Changelog dieser Version:
### Neue Features
- Helden können über die Heldenliste nun direkt gespeichert werden.
- Portraits von Helden und Begleitern können jetzt auch wieder gelöscht werden.
### Verbesserungen
- Auswahllisten werden nach aktivierten Regelwerken gefiltert. Das funktionierte vorher nur für die Hauptlisten wie Sonderfertigkeiten, jetzt aber eben auch für z. B. die Liste von Berufsgeheimnissen.
- Wikieinträge können nicht nach bestimmten Regelwerken gefiltert werden; ebenso wenig wie diese bei geöffneten Helden nach den dort gewählten Regelwerken gefiltert werden. Dies wird noch nachgereicht!
- Fremdzauber werden jetzt wie untypische Vorteile durch eine rote Einfärbung markiert.
- Die Suche nach Professionen durchsucht jetzt auch Professionsvarianten.
- Auf dem Heldenbogen ist jetzt für doppelt so viele Sprachen Platz.
- Beim Hinzufügen von Vor-/Nachteilen werden jetzt sowohl die AP für Vorteile als auch für Nachteile angezeigt.
- Schilde werden auf dem Heldenbogen jetzt sowohl als Schild als auch als Waffe eingetragen.
- Texte des Wikis können jetzt selektiert und dadurch kopiert werden.
- Für die *Tradition (Gildenmagier)* muss jetzt ein Fremdzauber festgelegt werden. **Für eine bereits aktivierte SF funktioniert dies im *Regeln*-Tab! Bitte stellt dies ein, weil es für kommende Regelwerke relevant ist!**
- Um später besser auf Unterschiede von Versionen in verschiedenen Sprachen reagieren zu könne, wird zu den Helden ab jetzt auch die Sprache gespeichert, in der der Held erstellt wurde. **Für ältere Helden wird diese auf die aktuell eingestellte Sprache eingestellt. Zum Ändern müsst ihr in den *Regeln*-Tab wechseln! Bitte stellt dies ein, weil es in kommenden Versionen relevant wird!**
- Im Profil wird jetzt angezeigt, wie sich die zufällige Generierung für Gewicht und Größe zusammensetzt.
- Der Dialog, der beim Schließen auftaucht, wenn ungespeicherte Aktionen vorhanden sind, ist jetzt klarer formuliert und hat jetzt drei Buttons für alle drei Optionen.
- Text auf dem Heldenbogen kann jetzt selektiert werden. Diese Option ist aber nicht dazu geeignet, um den gesamten Heldenbogen zu kopieren, weil das Layout nicht richtig übernommen wird.
- Den FAQ wurde der Eintrag hinzugefügt, wie man LE/AE/KE hinzufügt.
- Wenn man den Wikieintrag für einen Eintrag außerhalb des Wikis angezeigen lässt, wird der Listeneintrag wie im Wiki hervorgehoben.
- Beim Pakt wird angezeigt, wenn Felder fehlen, die ausgefüllt werden müssen, um einen vollständigen Pakt zu erhalten.
- Die AP, die beim Beenden der Heldenerschaffung maximal übrig sein dürfen, betragen jetzt immer 10 AP, egal in welchem Modus man sich befindet.
- Einsatzmöglichkeiten für Talente hinzugefügt.
- Bei Talenten, bei denen die Einrechnung der Belastung nicht eindeutig ist, wird im Wikieintrag jetzt die komplette Beschreibung angezeigt, wann die Belastung relevant ist und wann nicht.
- Die einzelnen Einträge für Vorteil *Herausragender Sinn* und Nachteil *Eingeschränkter Sinn* wurden zusammengefügt.
- Unter *Ergänzende Quellen* werden in Wikieinträgen von Vorteilen, Nachteilen und Sonderfertigkeiten jetzt die Quellen genannt, von denen die jeweiligen Einträge ihre Auswahlmöglichkeiten bekommen. Z. B. wird bei Berufsgeheimnissen dann nicht nur die eigentliche SF aus dem Basisregelwerk als Quelle genannt, sondern eben auch die Quellen weiterer Berufsgeheimnisse auch anderen Büchern.
- Analog zur geweihten Variante des Rabenschnabels gibt es jetzt die im Regelwerk beschriebene profane Variante des Rabenschnabels zum dort genannten Preis von 90 S. Außer des Status *geweiht/nicht geweiht* unterscheiden sich die Gegenstände nicht.
- Die dargstellte Formel zur Berechnung der Astralenergie passt sich jetzt entsprechend der Tradition an. Denn bei einigen Traditionen fließt nur die Hälfte der Leiteigenschaft ein und einige haben keine Leiteigenschaft, die einfließen könnte.
- Bei Stabzaubern wird *Bindung des Stabes* als Voraussetzung ausgeblendet.
### Fehlerbehebungen
- Nach einem Wechsel von Deutsch zu Englisch konnten Charaktere nicht mehr bearbeitet werden.
- Sonderfertigkeiten können wieder nach Gruppen sortiert werden.
- Verbreitung von Liturgien wird jetzt alphabetisch sortiert.
- Fertigkeits- und Kampftechnik-Maxima werden bei der Erstellung nun auch von den Probeneigenschaften bzw. Leiteigenschaften beeinflusst.
- Hesindegeweihter: Sternkunde 4 anstelle von Alchimie 4.
- FAQ: Zwei Typos korrigiert.
- *Meistertalentierte* können keine Zauber mehr kaufen.
- Gelb hervorgehobene Vorteile/Nachteile werden jetzt auch in der Legende erklärt.
- Ein/e durch eine Professionsvariante entfernte/r Zauber/Liturgie der Basisprofession wird jetzt auch wirklich entfernt und nicht mehr auf FW 0 aktiviert.
- Fehlende Professionsvarianten für Profession *Wildniskundiger* hinzugefügt.
- Fehlende Berufsgeheimnisse aus dem **Aventurischen Kompendium I** hinzugefügt.
- Bilder werden auf Linux wieder angezeigt.
- Automatische Vorteile haben jetzt Kosten von 0 AP, sodass Spezieskosten wieder korrekt sind.
- Das Sortieren von Ausrüstung nach Gruppen wirft keinen Fehler mehr.
- Das Portrait von Begleitern wird nun beim Export auch mit exportiert.
- Details für Zauber und Liturgien werden wieder auf dem Heldenbogen angezeigt.
- *Intuitive Zauberer* haben keinen Zugriff mehr auf Rituale und Zauber des Steigerungsfaktors D.
- „Steigerungskosten“ → „Steigerungsfaktor“.
- Astralenergie wird beim *Gildenmagier aus Perricum* wieder richtig berechnet.
- Die Voraussetzung „Spezies, Kultur oder Profession muss \[...] als automatischen oder empfohlenen \[Vorteil/Nachteil] aufweisen“ berücksichtigt jetzt auch wieder automatische Vorteile der Spezies, sollten diese entfernt worden sein.
- Liturgiestile werden jetzt beim Charakterwechsel auch korrekt übernommen, sodass keine Zulassungen durch vorherige Stile mehr relevant sind.
- Begleiterlayout auf dem Heldenbogen ist jetzt wieder korrekt.
- Bei der PDF ist jetzt kein Scrollbalken mehr zu sehen.
- Ein valider Pakt wirft bei Sonderfertigkeiten keinen Fehler mehr.
- Bann-/Schutzkreise werden wieder auf dem Heldenbogen angezeigt.
- Beim Senken von Eigenschaften im Editor-Modus werden nun hinzugekaufte LE/AE/KE berücksichtigt und verhindern ggf. das Senken.
- *Intuitive Zauberer* behandeln jetzt alle Zauber als Zauber ihrer Tradition.
- Manchmal wurde im Wikieintrag von Professionen anstelle eines Wertes, z. B. bei *Ehrenhaftigkeit 6*, `null` angezeigt, sodass dort dann *Ehrenhaftigkeit null* stand.
- Manchmal wurde der im Wikieintrag angezeigte vorherige Wert von durch Professionsvarianten veränderte Wert um 6 erhöht. Beispiel Profession Ritter: *Etikette 2 statt 12* ist eigentlich *Etikette 2 statt 6*.
- Vorteil *Herausragende Fertigkeit* funktioniert jetzt auch wieder für Zauber.
- Vorteil *Koboldfreund* fehlte.
- Nachteil *Kleine Zauberauswahl* ist wieder für *Intuitive Zauberer* verfügbar.
- Nachteil *Lästige Blütenfeen* fehlte.
- Nachteil *Schlechte Eigenschaft (Geiz)* und *(Verschwendungssucht)* haben sich nicht ausgeschlossen.
- Im Eingabefeld für Nachteil *Prinzipientreue* steht jetzt „Prinzip“ und nicht mehr „Prinzipie“.
- Zauber und Liturgien sind jetzt nicht mehr im Nachteil *Unfähig* enthalten. Bei Helden, die dies hatten, wird der Nachteil automatisch entfernt.
- Das Kaufen des Nachteils *Wenige Visionen* wirft keinen Fehler mehr.
- SF *Adaption (Zauber)* wird jetzt angezeigt, wenn die Voraussetzungen erfüllt sind.
- SF *Adaption (Zauber)* exkludiert jetzt Fremdzauber.
- SF *Aspektkenntnis* kann wieder problemlos hinzugefügt werden.
- SF *Astralraub*: Leerzeichen fehlte.
- SF *Böser Namensvetter*, *Lächerlicher Name*, *Schurkenname*, *Unpassender Name*: Nicht mehr als Elf wählbar.
- SF *Böser Namensvetter*: Formatierung korrigiert.
- SF *Buchdrucker*: Voraussetzung Stoffbearbeitung 4 → Mechanik 4.
- SF *Eisenhagel* kann wieder gekauft werden.
- SF *Gebieter des \[Aspekts\]* wird jetzt wieder angezeigt, wenn die Voraussetzungen dafür erfüllt werden.
- SF *Kupferstich*: Voraussetzung Lebensmittelbearbeitung 4 → Malen & Zeichen 4.
- SF *Macht der Namenlosen Klinge* ist jetzt wieder in allen 13 Stufen auswählbar, natürlich vorausgesetzt, dass die Voraussetzungen erfüllt sind.
- SF *Merkmalskenntnis* kann wieder problemlos hinzugefügt werden.
- SF *Präziser Schuss/Wurf* hatte falsche Eigenschaftsvoraussetzungen.
- SF *Scharfschütze II*: Voraussetzung ist jetzt IN 17 statt IN 15.
- SF *Siegelbrecher*: Merkmal Hellsicht → Merkmal Antimagie.
- SF *Verschwinde!*: AsP-Kosten und Volumen ergänzt.
- Die Nachteile *Keine Flugsalbe* und *Kein Vertrauter* verringern nun korrekt die Kosten der SF *Tradition (Hexen)*.
- SF *Tradition (Gildenmagier)* wird jetzt bei der Fremdzauberbegrenzung berücksichtigt (siehe dazu auch die Änderung an der Tradition weiter oben).
- SF *Volumenerweiterung des Bannschwerts*: AsP-Kosten ergänzt.
- *Bekehren & Überzeugen*: Probe MU/IN/CH → MU/KL/CH.
- *Etikette*, Belastung: Evtl. → Nein.
- *Fahrzeuge*: Unter **Werkzeuge** fehlte *Fahrzeug*.
- *Tanzen*, misslungene Probe: Vorher war dort der Text von *Sinnesschärfe*.
- *Verkleiden*, Belastung: Evtl. → Ja.
- Falsche Probeneigenschaften von Zaubern/Magischen Handlungen:
- *Friedenslied*: MU/KL/IN → MU/IN/CH
- *Sorgenlied*: MU/CH/CH → MU/IN/IN
- *Zaubermelodie*: MU/KL/CH → MU/IN/CH
- Text, dass ein bestimmter Aspekt eines Zaubers nicht modifiziert werden kann, fehlt:
- MOTORICUS: Kosten
- MOVIMENTO: Wirkungsdauer
- NEBELWAND: Kosten
- Fehlende Probenmodifikatoren (SK/ZK) bei Zaubern hinzugefügt.
- ADLERAUGE: Tradition Druiden ergänzt, AMA1-Quelle ergänzt.
- ANALYS ARKANSTRUKTUR: Zauberdauer 2 Aktionen → 32 Aktionen.
- ATTRIBUTO für Mut, Fingerfertigkeit, Gewandheit und Konstitution beinhaltet nun auch die Wirkungen der einzelnen QS.
- BAND UND FESSEL Zaubererweiterungen: Wortdopplung korrigiert.
- DUNKELHEIT Zaubererweiterungen: Leerzeichen fehlten.
- FULMINICTUS Zaubererweiterungen: Name korrigiert und Voraussetzungen angepasst.
- KARNIFILO hieß vorher Kanifilo.
- KLARUM PURUM, Kosten: 8 AsP.
- KRABBELNDER SCHRECKEN *Starker Ekel*: Typo korrigiert.
- MANUS MIRACULA Zaubererweiterungen: Name korrigiert und Voraussetzungen angepasst.
- PHYSIOSTABILIS: Effekttext ist wieder korrekt.
- SCHWARZER SCHRECKEN, Kosten: 8 AsP → 4 AsP.
- UNBERÜHRT VON SATINAV: Merkmal Objekt → Merkmal Temporal.
- WIRBELFORM verhält sich jetzt vollständig wie der Eintrag aus **Aventurische Magie II**.
- XENOGRAPHUS *Besseres Sprachverständnis* hieß vorher *Längere Wirkungsdauer*.
- ZAUBERKLINGE GEISTERSPEER Zaubererweiterungen: Formatierung korrigiert.
- *Melodie des Magieschadens* war nicht durch Ceoladir wählbar.
- *Melodie der Zähigkeit*: Formatierung korrigiert.
- *Melodie des Zögerns* war nicht durch Derwisch wählbar, konnte aber durch Sangara gewählt werden.
- Herrschaftsrituale sind nun enthalten.
- Falsche Probeneigenschaften von Liturgien:
- *Kleiner Bannstrahl*: MU/KL/CH → MU/IN/CH
- *Ehrenhaftigkeit*: MU/KL/CH → MU/IN/CH
- *Ermutigung*: MU/KL/CH → MU/IN/CH
- *Friedvolle Aura*: MU/KL/CH → MU/IN/CH
- *Wasserlauf*: MU/KL/IN → MU/IN/GE
- Text, dass ein bestimmter Aspekt einer Liturgie nicht modifiziert werden kann, fehlt:
- *Bann der göttlichen Gaben*: Liturgiedauer
- *Dämonenwall*: Kosten
- *Liturgieschild*: Kosten
- *Mächtiger Angriff*: Kosten
- *Magiebann*: Liturgiedauer
- *Magiespiegel*: Kosten
- *Motivation*: Kosten
- *Namenlose Kälte*: Kosten
- *Ächtung (Exkommunikation)* Liturgieerweiterungen: Buchname bei der Seitenangabe ergänzt.
- *Blitzschlag*: Verbreitung *Boron (Tod)* statt *Rondra (Sturm)*.
- *Delphingestalt*: Effekttext korrigiert.
- *Häutung* und *Häutung* Liturgieerweiterungen: Leerzeichen fehlte.
- *Guter Fang*: Liturgie → Zeremonie.
- *Guter Fang* Liturgieerweiterungen: Formatierung korrigiert.
- *Klarer Geist*: Aspekt *Bildung* entfernt.
- *Namenlose Zweifel*: Effekttext korrigiert.
- *Namenloses Vergessen*: Effekttext korrigiert.
- *Nebelschwaden*: Effekttext korrigiert.
- *Obsession* fehlte.
- *Opfergang*: Typo korrigiert.
- *Pech und Schwefel*: Effekttext vervollständigt.
- *Ruf der Heimat*: Effekttext vervollständigt.
- *Seevogelsprache* Mehr Vögel: Leerzeichen eingefügt.
- *Sicherer Weg*: Leerzeichen eingefügt.
- *Traumbild*, Effekt: Leerzeichen fehlte.
- *Traumbild* Liturgieerweiterungen: Formatierung korrigiert.
- *Verblassende Erinnerung*: Falsche Verbreitung.
- *Verblassende Erinnerung* Liturgieerweiterungen: Formatierung korrigiert.
- *Wasserlauf*: Verbreitung *Allgemein* hinzugefügt, Effekttext korrigiert.
- *Windruf*, Zielkategorie: Objekt (profane Objekte, Segel).
- *Zähe Haut*: Aspekt *Gutes Gold* hinzugefügt.
- *Albernische Bauernwehr*: Wort fehlte.
- *Albernisches Entermesser*: Typo behoben.
- *Amazonensäbel* fehlte.
- *Andergaster*: Formatierung des Waffenvorteils korrigiert.
- *Dietrichset* hat jetzt auch Preis und Gewicht.
- *Faustschild*: Formatierung korrigiert.
- *Gänsebeutel*: Preis korrigiert.
- *Gaoraith*: Länge fehlte.
- *Hakendolch*: Vorteil und Nachteil ergänzt.
- *Handspiegel* zeigt jetzt die dazugehörige Regeltechnik.
- *Harbener Säbel*, Länge: 100 HF → 75 HF.
- *Havener Messer*: Formatierung korrigiert.
- *Hunde-, Pony, Pferdefutter*: Gewicht entfernt.
- *Kettenhemd*: Formatierung angepasst.
- *Kletterseil* hat jetzt korrekte Kosten.
- *Korspieß*: Formatierung korrigiert.
- Der Waffennachteil des *Langbogens* war unvollständig.
- *Neckerdreizack*: Typo behoben.
- *Pergament, gutes, 1 Blatt*: Preis korrigiert.
- *Richtschwert* war nicht als Waffe gruppiert.
- *Seesäbel*: Formatierung korrigiert und fehlendes Wort ergänzt.
- *Sense* war keine improvisierte Waffe mit einem Gewicht von 3,5 Stn.
- Kosten und Gewicht für *Seidenseil* ergänzt.
- *Spealleagh* war nicht als Waffe eingetragen.
- *Streitkolben der Streitenden Königreiche* fehlte.
- *Stockdegen*: Formatierung angepasst.
- *Sturmsense*: Formatierung angepasst.
- *Turnierrüstung*: Formatierung angepasst.
- *Turnierzweihänder*: Leiteigenschaften angepasst.
- *Wurfnetz*: Formatierung korrigiert.
- *Zugvogelfedern*: Preis korrigiert.
+59
View File
@@ -0,0 +1,59 @@
## Gibt es einen Charakterbogen und wenn ja, wo finde ich den?
Ja, es gibt einen Charakterbogen, den du als PDF exportieren kannst! Dazu musst du erst im Profil die Heldenerschaffung beenden. Damit das geht, darfst du maximal 10 AP übrig haben &ndash; und natürlich auch nicht zu viele ausgegeben haben. Wenn du sie dann beendest, findest du oben den Tab *Heldenbogen*. In diesem Tab findest du eine Vorschau deines Bogens und kannst diesen über den Button oben links als PDF speichern.
Für englischsprachige Nutzer eventuell relevant: Es gibt aktuell nur eine A4-Variante des Charakterbogens!
## Ich kann keine Zauber oder Liturgien kaufen!
Es wird daran liegen, dass du die Voraussetzungen dafür nicht erfüllst!
Folgende Voraussetzungen gelten:
### Zauber:
- Wähle den Vorteil *Zauberer*.
- Wähle eine magische *Traditions*-SF.
### Liturgien:
* Wähle den Vorteil *Geweihter*.
* Wähle eine karmale *Traditions*-SF.
## Ich kann stärkere Beschwörungs-/Herbeirufungszauber nicht kaufen!
Diese Zauber haben Voraussetzungen, die im **Regelwerk** auf Seite **263** genannt sind.
Demnach haben diese Zauber folgende Voraussetzungen und können erst nach Erfüllung dieser gewählt werden:
* Invocatio Minor: Invocatio Minima 10
* Invocatio Maior: Invocatio Minor 12
* Elementarer Diener: Manifesto 10
* Dschinnenruf: Elementarer Diener 12
## Warum gibt es den Kampfbogen zweimal?!
Der erste listet unter *Rüstungen* die Einträge der normalen Rüstungen (Komplettrüstungen) aus dem RGW. Der zweite listet dort stattdessen die Trefferzonenrüstungen mit ihren unterschiedlichen Rüstungswerten pro Zone. Du hast in diesem Fall also wohl mindestens eine Komplettrüstung und eine Trefferzonenrüstung deinem Charakter hinzugefügt.
## Wie kann ich mir mehr LE/AE/KE kaufen?
Das hängt davon ab, ob du dich noch in der Heldenerstellung befindest oder diese abgeschlossen hast.
* *Während der Heldenerstellung* kannst du zusätzliche LE/AE/KE über die Vorteile *Hohe Lebenskraft/Astralenergie/Karmaenergie I-VII* kaufen. Das solltest du auch nutzen, wenn es dir auf hohe Werte in diesen Bereichen ankommt, da du Vorteile in der Regel nicht nachträglich kaufen kannst!
* *Nach der Heldenerstellung* kannst du zusätzliche LE/AE/KE im *Eigenschaften*-Tab über den &raquo;+&laquo;-Button bei der jeweiligen Energie kaufen. Die Maxima dafür entsprechen den dafür definierten laut **Regelwerk** S. **350&ndash;352**.
## Wo finde ich meine gespeicherten Charaktere?
Die Charaktere und auch andere Dateien wie die Konfiguration findest du je nach Betriebssystem unter folgenden Orten:
- *Windows:* `C:/Users/<Benutzer>/AppData/Roaming/Optolith`, wobei `<Benutzer>` der Name deines Benutzerordners ist
- *Linux:* `$XDG_CONFIG_HOME/Optolith` oder `~/.config/Optolith`
- *macOS:* `~/Library/Application Support/Optolith`
Hier finden sich verschiedene relevante Dateien:
- `heroes.json` enthält alle Helden, die aktuell in Optolith sind
- `config.json` enthält die Konfiguration deiner Optolith-Anwendung. Enthält keine wichtigen Daten, nur Dinge wie Farbschema, Sprache (falls man eine spezielle eingestellt hat), und ein paar andere Sachen.
*Ein Hinweis zu Windows:* `AppData` ist ein versteckter Ordner. Um ihn zu sehen, müsst ihr im Windows Explorer unter *Ansicht* die Einstellung *Ausgeblendete Elemente* aktivieren.
## Wie skaliere ich die Benutzeroberfläche von Optolith auf meinem Linux-System?
Wenn du die `tar.gz` heruntergeladen hast, kannst du in den entpackten Ordner navigieren und dort `GDK_DPI_SCALE=<Scale> ./Optolith` in der Kommandozeile ausführen. Dabei muss `<Scale>` mit dem gewünschten Skalierungsfaktor ersetzt werden, also z. B. `1.5`.
+109
View File
@@ -0,0 +1,109 @@
[size=200]1.1.0/1.1.1[/size]
[i]The exact version number of the app is 1.1.1.[/i]
After more than one year a big update is finally coming—even though you probably wont notice it: Optolith got a completely new code. This is accompanied by an internal restructuring, so that features like groups will be possible in the future. This is the biggest change, but not the only one: All reported bugs are fixed and over the last two weeks my testers found several bugs, which are also fixed here.
You will probably notice that Optolith takes a few seconds longer to load than before. This is because I rebuilt Optolith with the basic idea that it runs more stable. So I do checks during loading to make sure that all data that is loaded really looks as expected and so that nothing unexpected and unintentional, caused by wrong tables or other wrong data in the program, happens. The start performance is definitely going to be improved, but for now I prefer a more stable program to a fast one; after all this is only about starting the program, the performance during use is not affected.
Last but not least a big thank you to you, for your patience and all your feedback and further help, without which I would not have been able to fix all those bugs. Although new rules have not yet made it into this version, and the next version wont contain all new ones, Optolith will be able to get up to date more quickly than before.
But now its time for the changelog of this version:
[size=150]New Features[/size]
[list]
[*]Heroes can now be saved from the hero list.
[*]Avatars of heroes and pets can now be deleted.
[/list]
[size=150]Enhancements[/size]
[list]
[*]Select option lists are now filtered by activated books. Previously, that only worked for main lists like special abilities, but now it works for all list, for example the list of trade secrets.
[list]
[*]Wiki entry lists cannot be filtered by specific books, neither can the wiki entry text in opened heroes. This will be implemented later!
[/list]
[*]Unfamiliar spells are now going to be highlighted in red (just like uncommon advantages).
[*]Searching for professions now includes profession variants.
[*]The space for languages on the character sheet is now twice as large.
[*]When adding advantages or disadvantages, AP spent on advantages as well as on disadvantages will always be shown.
[*]Shields on character sheet are now listed as a weapon as well as a shield.
[*]Wiki texts are now selectable.
[*]For [i]Tradition (Guild Mage)[/i], you need to set a specific unfamiliar spell. [b]For an already activated SA, you can to the via the [i]Rules[/i] tab. Please set the spell, because it is needed for upcoming books![/b]
[*]To be able to better handle differences between languages in terms of rules, heroes are now saving the languages they were created in. [b]For already created heroes, the creation language will be set to the current UI language. To change that, you need to switch to the [i]Rules[/i] tab! Please check it, because it is going to be relevant in future versions![/b]
[*]The term for generating random weight and size of the hero is now shown above the respective input field.
[*]The dialog shown on application quit if there are unsaved actions is now clearer and shows three buttons for all three possible options.
[*]Text on character sheet is now selectable. This option is not useful for copying the complete character sheet as the layout is not preserved properly.
[*]Added FAQ entry on how to add LP/AE/KP.
[*]If you open a wiki entry when a character is open, the respective list item is highlighted just like they are in the wiki.
[*]The maximum available AP that can be left when finishing hero creation phase is now always 10 AP, no matter whether you are in editing mode or not.
[*]Added [i]Uses[/i] for skills.
[*]For skills where it is not 100% clear whether encumbrance is relevant or not, the full description when it is relevant and when it is not is now shown instead of „maybe“.
[*]The separate entries for advantage [i]Exceptional Sense[/i] and disadvantage [i]Restricted Sense[/i] are now joined.
[*][i]Additional sources[/i] lists sources from which the entry gets its select options. For example, SA [i]Trade Secrets[/i] not only shows the source for the base SA, but also the different trade secret sources from all the different books.
[*]Analogous to the Ravens Beaks blessed variant, theres now a mundane variant available, too. It costs 90 S. Theres no difference between the two versions except for [i]blessed/mundane[/i].
[*]For Staff Enchantments, [i]Binding of the Staff[/i] as a prerequisite is now hidden (because it is hidden in Core Rules, too).
[*]Finishing RCP selection can now be undone.
[/list]
[size=150]Bug Fixes[/size]
[list]
[*]After switching from German to English, heroes could not be edited anymore.
[*]Special Abilities can now be sorted by group again.
[*]Liturgical chant traditions and aspects are now sorted alphabetically.
[*]Maxima of skills and combat techniques are now also influenced by skill check attributes or primary attributes during character creation phase.
[*]Yellow-highlighted advantages/disadvantages are now explained in the legend on the left.
[*]A spell or chant from a base profession removed by a profession variant now removes the entry entirely instead of activating it on SR 0.
[*]Images are now shown on Linux again.
[*]Automatic advantages cost 0 AP so that race AP cost are correct now.
[*]Sorting equipment by group does not result in an error anymore.
[*]Avatars of pets are now exported as well when exporting the character.
[*]Details of spells and chants are shown on character sheet again.
[*]The prerequisite Race, culture, or profession must have \[...] as an automatic or suggested \[advantage/disadvantage]“ now also includes automatic advantages if they are removed.
[*]Pet layout on character sheet should work again.
[*]The PDF does not include a scroll bar anymore.
[*]Protective/Warding circles are now shown on character sheet.
[*]Lowering attributes in editing mode takes added LP/AE/KP into account and restricts lowering if needed.
[*]Sometimes, instead of a value, for example in [i]Enforce Honor 6[/i], `null` was shown in the wiki entry for professions, so it was actually [i]Ehrenhaftigkeit null[/i].
[*]Sometimes, the value of a entry in a profession, changed by a profession variant, was increased by 6. For example, Knight: [i]Etiquette 2 instead of 12[/i] actually is [i]Etiquette 2 instead of 6[/i].
[*]Combat Style Special Abilities now show their type (passive/base maneuver/special maneuver) in wiki again.
[*]Sorting spells by group now sorts the groups alphabetically.
[*]When EL [i]Inexperienced[/i] is selected and you got SA [i]Tradition (Guild Mage)[/i], you can now also buy and increase the selected unfamiliar spell (which is not unfamiliar anymore).
[*]The select option list for SA [i]Tradition (Guild Mage)[/i] does not list familiar spells anymore.
[*]Disadvantage [i]Negative Trait (Stinginess)[/i] and [i](Wastefulness)[/i] were not mutually exclusive.
[*]Spells and chants are not included in disadvantage [i]Incompetent[/i]. Heroes with those entries will get the disadvantage removed automatically.
[*]SA [i]Aspect Knowledge[/i] can now be added as expected.
[*]SA [i]Property Knowledge[/i] can now be added as expected.
[*]SA [i]Precise Shot/Throw[/i] had wrong attribute prerequisites.
[*]Disadvantages [i]No Flying Balm[/i] and [i]No Familiar[/i] now correctly decrease the cost of SA [i]Tradition (Witch)[/i] by 10 AP each.
[*]SA [i]Tradition (Guild Mage)[/i] is now taken into account for restrictions concerning unfamiliar spells (see the change to the SA listed above also).
[*][i]Disguise[/i], Encumbrance: Maybe → Yes.
[*][i]Etiquette[/i], Encumbrance: Maybe → No.
[*][i]Persuasion[/i]: Skill check COU/INT/CHA → COU/SGC/CHA.
[*]Wrong skill checks of spells:
[list]
[*][i]Magical Melody[/i]: COU/SGC/CHA → COU/INT/CHA
[*][i]Song of Piece[/i]: COU/SGC/INT → COU/INT/CHA
[*][i]Song of Sorrow[/i]: COU/CHA/CHA → COU/INT/INT
[/list]
[*]Text missing which states that a special aspect of a spell cannot be modified:
[list]
[*]MOTORICUS: Cost
[*]WALL OF FOG: Cost
[/list]
[*]Missing skill check modifiers (SPI/TOU) added to spells.
[*]ANALYZE ARCANE STRUCTURE: Casting time 2 actions → 32 actions.
[*]KLARUM PURUM, Cost: 8 AE.
[*]Wrong skill checks of liturgical chants:
[list]
[*][i]Minor Banishing Ray[/i]: COU/SGC/CHA → COU/INT/CHA
[*][i]Enforce Honor[/i]: COU/SGC/CHA → COU/INT/CHA
[*][i]Encourage[/i]: COU/SGC/CHA → COU/INT/CHA
[*][i]Peaceful Aura[/i]: COU/SGC/CHA → COU/INT/CHA
[/list]
[*][i]Hand mirror[/i] now lists the corresponding rule.
[*][i]Dog food, Horse feed, Pony feed[/i]: Removed weight.
[*][i]Rope, climbing[/i] now has a correct price.
[/list]
+840
View File
@@ -0,0 +1,840 @@
## 1.5.1
### 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.0
### Features
* MapTool export ([87cec15](https://github.com/elyukai/optolith-client/commit/87cec15ba9751c329ee39719dc654895b9f4f193))
* Portuguese translations ([d8c9f52](https://github.com/elyukai/optolith-client/commit/d8c9f52542120f9e5fa569728b3f11cb79102365), [#676](https://github.com/elyukai/optolith-client/issues/676))
* Native Apple M1 support ([94e751f](https://github.com/elyukai/optolith-client/commit/94e751fda169c4de90cdb82346d3d864cf697300))
### Enhancements
* Kilogram input hint for weight in item dialog ([bd9fc1b](https://github.com/elyukai/optolith-client/commit/bd9fc1badc8a408495bd7c1594338b1a5fe6df11))
* Security ([723e910](https://github.com/elyukai/optolith-client/commit/723e9106ebb178db6a7cccec2a022b3edaed5b98) and others)
### Bug Fixes
* Hit Zone Armor character sheet had left margin ([e637136](https://github.com/elyukai/optolith-client/commit/e63713687eff9b825a79d159fb8b44dc26f64ffe), [#788](https://github.com/elyukai/optolith-client/issues/788))
* Additional LE set a minimum required value of STR instead of CON ([390dcb6](https://github.com/elyukai/optolith-client/commit/390dcb616aaa68e5b103bb49dd75d1529c4e7e3a), [#787](https://github.com/elyukai/optolith-client/issues/787))
* Two-handed (2H) and improvised (i) weapon indicators were missing on character sheet ([3f9fae3](https://github.com/elyukai/optolith-client/commit/3f9fae30a2291b8e53486a74dae8cc1533741b94), [#797](https://github.com/elyukai/optolith-client/issues/797))
* Brawling weapons had no parry on character sheet ([a02700e](https://github.com/elyukai/optolith-client/commit/a02700eeccbd95a75f778d4d9e78ad7a2447dad8), [#1229](https://github.com/elyukai/optolith-client/issues/1229))
* An entry that depends on a single activation of another entry disables removing of all activations of that entry if multiple activations are present ([092343f](https://github.com/elyukai/optolith-client/commit/092343f45da566a45b13b275899a458fed720a76), [#1097](https://github.com/elyukai/optolith-client/issues/1097))
* Entries affecting spells to not be unfamiliar could be removed if Spell Enhancements were bought ([28f260a](https://github.com/elyukai/optolith-client/commit/28f260a2c4a96adb0d36585a478676f95c304414), [#827](https://github.com/elyukai/optolith-client/issues/827))
* The equipment info area may have crashed ([ae2fbad](https://github.com/elyukai/optolith-client/commit/ae2fbad1c738354dd468c1b36b06eda729a879e5))
* Professions that granted higher Combat Technique Ratings than what the selected Experience Level allowed were not filtered ([c8094f5](https://github.com/elyukai/optolith-client/commit/c8094f5ef15f62f69088386b9fc6c64f7d8bfd02), [#1244](https://github.com/elyukai/optolith-client/issues/1244))
* INI/MOV modifiers on armor were handled as penalties ([eb5a068](https://github.com/elyukai/optolith-client/commit/eb5a06884db1894e1a9f2b4b040b114cb4dc85cb), [#1091](https://github.com/elyukai/optolith-client/issues/1091))
* Language specializations did not always cost 1 AP and could not be activated multiple times for a single language ([0a59d9e](https://github.com/elyukai/optolith-client/commit/0a59d9e5e571e87525b18d0b25035e73f7cd87bf), [#1082](https://github.com/elyukai/optolith-client/issues/1082))
* Portraits with transparency had a black background ([cc5ecd6](https://github.com/elyukai/optolith-client/commit/cc5ecd6f098ae6c080eeb3b306887727a99c1220), [#800](https://github.com/elyukai/optolith-client/issues/800))
* Bornlander cultural package had Leatherworking instead of Prepare Food ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#824](https://github.com/elyukai/optolith-client/issues/824))
* Spell Wind Shaping had the wrong traditions and wrong spell enhancements order ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#1139](https://github.com/elyukai/optolith-client/issues/1139))
* Primary attribute changes for items were not applied in edit window, only on character sheet ([6c63ab1](https://github.com/elyukai/optolith-client/commit/6c63ab1b5051882ace71f15740c3a69fff4a267f), [#798](https://github.com/elyukai/optolith-client/issues/798))
* Professions with due to EL impossible attribute values could be selected ([fdde329](https://github.com/elyukai/optolith-client/commit/fdde329de591319df3f6da11404dd7523d800c3e), [#1109](https://github.com/elyukai/optolith-client/issues/1109))
* Summoning spellworks from professions did not register dependencies from prerequisites ([c1b2e26](https://github.com/elyukai/optolith-client/commit/c1b2e267cb3f02d2d18812415c39c58739ad99ec), [#1240](https://github.com/elyukai/optolith-client/issues/1240))
* Weight of Elves was not generated correctly ([3b05e69](https://github.com/elyukai/optolith-client/commit/3b05e69e27f7faa1634b50eb134000fe1a2c3a21), [#813](https://github.com/elyukai/optolith-client/issues/813))
* Gaze into the Essence spell was misspelled as Gase into the Essence ([42891f0](https://github.com/elyukai/optolith-client/commit/42891f070c35b74c49bb2c9e16152789cc8cc7df), [#1180](https://github.com/elyukai/optolith-client/issues/1180))
* Tradition (Druid) referenced a non-existent disadvantage instead of advantage Iron-Attuned Aura ([f8114c2](https://github.com/elyukai/optolith-client/commit/f8114c2f4318967631b71ea3614bf647e7826fa2), [#1237](https://github.com/elyukai/optolith-client/issues/1237))
* Hook Dagger was not marked as a parrying weapon ([ed74170](https://github.com/elyukai/optolith-client/commit/ed74170865b2caad8008a345db5c1705e0376bc5), [#1232](https://github.com/elyukai/optolith-client/issues/1232))
* Special ability Deadly Thrust had special ability Crossblock's rules text ([ec9bd71](https://github.com/elyukai/optolith-client/commit/ec9bd71e101abcaf61e84e3da340890e161896ea), [#841](https://github.com/elyukai/optolith-client/issues/841))
* Missing translations for spell enhancements of Heptagramma ([a5df7c8](https://github.com/elyukai/optolith-client/commit/a5df7c863cded391609950fa5b8bf8474ffe2dfd), [#848](https://github.com/elyukai/optolith-client/issues/848))
* Attributes on minimum value (8) did not allow a combat technique rating over 6 if the attribute was the combat technique's primary attribute ([47e66d6](https://github.com/elyukai/optolith-client/commit/47e66d65467999e2661eaac30a97b5a1ebfece94), [#835](https://github.com/elyukai/optolith-client/issues/835))
* Profession Sharisad got Earthencraft bonus instead of Clothworking bonus ([cd16e53](https://github.com/elyukai/optolith-client/commit/cd16e5314a7f579a5f5f916bb204a15df3220bda), [#1341](https://github.com/elyukai/optolith-client/issues/1341))
* The Hit Zone Armor tab in Belongings was not available, even with Aventuria Armory activated ([383a9c1](https://github.com/elyukai/optolith-client/commit/383a9c166c6d8c5d713f4852f40999c5d8c00efc), [#1328](https://github.com/elyukai/optolith-client/issues/1328))
* Too large PDF output when using a sheet background ([9cb2658](https://github.com/elyukai/optolith-client/commit/9cb26586f3a5026d06f41801d4bbf714631d06a4), [#1094](https://github.com/elyukai/optolith-client/issues/1094))
* Weight column in inventory showed wrong weight ([6ba99f2](https://github.com/elyukai/optolith-client/commit/6ba99f2f4610e8a26d1703d978738a907f26bd92), [#1329](https://github.com/elyukai/optolith-client/issues/1329))
* Auto-updater did not work in AppImage ([a24ff80](https://github.com/elyukai/optolith-client/commit/a24ff8082a5556fc07af05f113bacfd9c84428a4), [#753](https://github.com/elyukai/optolith-client/issues/753))
* Some primary attribute prerequisites were not enforced ([ac0cdc3](https://github.com/elyukai/optolith-client/commit/ac0cdc377800a1eb380993dbb7914fa88b8f254e), [#1260](https://github.com/elyukai/optolith-client/issues/1260))
* Range brackets input fields influenced other bracket fields ([0ab65e8](https://github.com/elyukai/optolith-client/commit/0ab65e869c26536127b386753db110f2e26b33af), [#1251](https://github.com/elyukai/optolith-client/issues/1251))
* Requiring only one matching languages and script required all of them instead ([4dabbdb](https://github.com/elyukai/optolith-client/commit/4dabbdbcd23c1ffeff18a8b1f9497a4a8315aa6a), [#1343](https://github.com/elyukai/optolith-client/issues/1343))
* Scripts did not require an active matching language ([1ed0c64](https://github.com/elyukai/optolith-client/commit/1ed0c64b0dd9873593169bd9994082d49299fa3e), [#1344](https://github.com/elyukai/optolith-client/issues/1344))
* Some item properties were not saved ([f2e6138](https://github.com/elyukai/optolith-client/commit/f2e61386abe444aa76f0211469d50c30fde99a0c), [#1252](https://github.com/elyukai/optolith-client/issues/1252))
* Unfamiliar spell selection in profession was optional ([3574d1b](https://github.com/elyukai/optolith-client/commit/3574d1ba46725d04a83286cd1055c080fe1de95f), [#1315](https://github.com/elyukai/optolith-client/issues/1315))
* special ability Knuckle Storm's description used Damage Points instead of Brawling Points ([06b57c9](https://github.com/elyukai/optolith-client/commit/06b57c9d15e1ef6f35da69ea46512bb790119b0a), [#1340](https://github.com/elyukai/optolith-client/issues/1340))
* Combat techniques did not influence the minimum of their primary attributes ([1ce2db9](https://github.com/elyukai/optolith-client/commit/1ce2db9cfbb06b1ca8a549957b8225af71de9185), [#836](https://github.com/elyukai/optolith-client/issues/836))
* Saving a hero cleared the undo history of multiple characters ([923b760](https://github.com/elyukai/optolith-client/commit/923b7605fee4c4288dc743e962728308f7254ca9), [#811](https://github.com/elyukai/optolith-client/issues/811))
* Widened rows in second column of skills table on character sheet ([41ee35b](https://github.com/elyukai/optolith-client/commit/41ee35ba76af42ad837daa6c45a940406b0c5daa), [#1342](https://github.com/elyukai/optolith-client/issues/1342))
### Thank you
Last but definitely not least a big **Thank You** to all of you who give feedback and help out on various channels as well as to the following people on GitHub who contributed to this release!
- [Elidia (@FloraMayr)](https://github.com/FloraMayr)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lector (@Lector)](https://github.com/Lector)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [Marc Schwering (@m4rcsch)](https://github.com/m4rcsch)
- [Pepelios (@Pepelios)](https://github.com/Pepelios)
## 1.4.2
### Enhancements
- Start-up was way slower than in 1.3.2. [#751](https://github.com/elyukai/optolith-client/issues/751)
### Bug Fixes
- Added some missing UI translations. [#723](https://github.com/elyukai/optolith-client/issues/723)
- Added missing aspects for **Gods of Aventuria I**. [#724](https://github.com/elyukai/optolith-client/issues/724)
- Added missing special ability groups for **Gods of Aventuria I**. [#725](https://github.com/elyukai/optolith-client/issues/725)
- SA *Two Blessings at Once* had the wrong rules text. [#750](https://github.com/elyukai/optolith-client/issues/750)
- Combat Techniques maximum CtR could be higher that allowed by rules. [#749](https://github.com/elyukai/optolith-client/issues/749)
- The top margin of overlay windows like when adding advantages was too small. [#727](https://github.com/elyukai/optolith-client/issues/727)
- If a profession allowed to select a second combat technique from a set of combat techniques where the bonus was lower than the bonus for the first combat technique, the selected lower bonus was not applied to the character. [#647](https://github.com/elyukai/optolith-client/issues/647)
- The *Torch* had P+T STR 15 instead of STR 14. [#752](https://github.com/elyukai/optolith-client/issues/752) [#737](https://github.com/elyukai/optolith-client/issues/737)
- The P+T damage bonus was not added to weapons without flat damage. [#737](https://github.com/elyukai/optolith-client/issues/737)
- Profession *White Mage (Gareth Academy of Sword and Staff)* from the **Core Rules** had a wrong AP value and *Astronomy 4* instead of *Alchemy 4*. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Creature skills text field on PDF export was too short to fit all relevant skills of a creature. [#733](https://github.com/elyukai/optolith-client/issues/733)
- SA *Followers of the Golden One* allowed liturgical chants up to improvement cost C instead of up to B. [#754](https://github.com/elyukai/optolith-client/issues/754)
- Profession *Guildless Mage (Vadif sal Karims Student)* had a bonus on the wrong *Hailstorm and Roar of Thunder* spellwork. [#772](https://github.com/elyukai/optolith-client/issues/772)
- SA *Bladestorm* had wrong applicable combat techniques. [#768](https://github.com/elyukai/optolith-client/issues/768)
- Some books were missing the weight. [#760](https://github.com/elyukai/optolith-client/issues/760)
- Images with uppercase file endings have not been accepted as portrait images. [#762](https://github.com/elyukai/optolith-client/issues/762)
- The upload icon was shown in place of the portrait image on the character sheet if no portrait was defined. [#759](https://github.com/elyukai/optolith-client/issues/759)
- On the Mac, if paper background was activated, additional blank pages were generated for the PDF output. [#748](https://github.com/elyukai/optolith-client/issues/748)
### Thank you
Last but definitely not least a big **Thank You** to all of you who give feedback and help out on various channels as well as to the following people on GitHub who contributed to this release!
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.4.1
### Bug Fixes
- Italian was not available.
## 1.4.0
### Features
- **Gods of Aventuria I** [#656](https://github.com/elyukai/optolith-client/issues/656)
- Italian translation [#667](https://github.com/elyukai/optolith-client/issues/667) [#610](https://github.com/elyukai/optolith-client/issues/610)
- Optional paper-style background for character sheet. [#36](https://github.com/elyukai/optolith-client/issues/36)
- Character Sheet view zoom option. [#665](https://github.com/elyukai/optolith-client/issues/665)
- Add/Subtract money from purse. [#666](https://github.com/elyukai/optolith-client/issues/666)
- Create custom advantages, disadvantages and special abilities with custom name and AP value (temporary solution). [#632](https://github.com/elyukai/optolith-client/issues/632)
### Enhancements
- Weight is now shown in an own column in equipment tab. [#305](https://github.com/elyukai/optolith-client/issues/305)
- Unnecessary combat sheets are not used anymore, it now depends on which armor the character has. It defaults to the normal armor if no armor is present. [#407](https://github.com/elyukai/optolith-client/issues/407)
- You can now click on entry names as well to show it's rules text. [#556](https://github.com/elyukai/optolith-client/issues/556)
### Bug Fixes
- Variants of profession *Blessed One of Boron* had wrong skill modifications. [#548](https://github.com/elyukai/optolith-client/issues/548)
- Profession *White Mage (Sword & Staff)* had a wrong AP value and an additional skill modification. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Fixed common professions of a culture will now be shown even if they are not from the **Core Rules**. [#563](https://github.com/elyukai/optolith-client/issues/563)
- The interface could be scaled down. [#487](https://github.com/elyukai/optolith-client/issues/487)
- Weapons of the combat technique *Lances* were not shown on character sheet. [#662](https://github.com/elyukai/optolith-client/issues/662)
- Attributes ignored the minimum caused by high skill ratings. The maximum of skill rating is the highest linked attribute&thinsp;+&thinsp;2, so the highest attribute is required to have a minimum value of SR&thinsp;&minus;&thinsp;2. [#630](https://github.com/elyukai/optolith-client/issues/630)
- The new application *Professional Publications* for skill *Law* had a wrong special ability prerequisite. [#680](https://github.com/elyukai/optolith-client/issues/680)
- Some list items were wider than the actual list. [#683](https://github.com/elyukai/optolith-client/pull/683)
- List headers were not centered by default. [#637](https://github.com/elyukai/optolith-client/issues/637)
- Permanently spent LP did not allow additional LP to be bought. [#606](https://github.com/elyukai/optolith-client/issues/606)
- Additional LP could not be added if CON is 8 and nothing depends on it. [#694](https://github.com/elyukai/optolith-client/issues/694)
- SA *Aspect Knowledge* did not show up even with three chants on SR 10 or higher. [#591](https://github.com/elyukai/optolith-client/issues/591)
- Cantrip Witch's Gaze was selectable by all spell casters. [#377](https://github.com/elyukai/optolith-client/issues/377)
- Arcane Dancers could not add magical dances. [#594](https://github.com/elyukai/optolith-client/issues/594)
- Select options of traditions Arcane Bard and Arcane Dancer did not require their respective culture and possible sex. [#565](https://github.com/elyukai/optolith-client/issues/565)
- If, in addition to the selection of one or more fighting techniques for a certain CtR, one or more other fighting techniques should be selected for a lower CtR (e.g. in the profession *Soldier*), it was not possible. [#647](https://github.com/elyukai/optolith-client/issues/647)
- Certain values on character sheet were not floored. [#655](https://github.com/elyukai/optolith-client/issues/655)
- Chain Mail was available twice. [#570](https://github.com/elyukai/optolith-client/issues/570)
- Scale Mail was available twice and had a typo. [#569](https://github.com/elyukai/optolith-client/issues/569)
- Updater checks and the check for updates button are now disabled on macOS since updates are not possible on macOS currently. [#589](https://github.com/elyukai/optolith-client/issues/589)
- Wrong applicable combat techniques for SA *Enemy Sense*. [#658](https://github.com/elyukai/optolith-client/issues/658)
- Auto-update alerts were enabled on Linux even when there were no direct auto-updates available. [#573](https://github.com/elyukai/optolith-client/issues/573)
- The save dialog for exporting a character as JSON did not add the file extension to the suggested file name. [#718](https://github.com/elyukai/optolith-client/issues/718)
### API
There are important and breaking changes coming with the next release, so if you use the Optolith source or save data, I'd recommend to come over to [Discord](https://discord.gg/wfdgB9g) so that I can tell you what is going to be changed in detail. Since more and more people depend on Optolith's data I will now follow semantic versioning strictly so that you can rely on the compatibility of source files just by checking out the version number. There will be a new format for heroes as well as for the source data. You can also give feedback on the changes, since they are not *completely* done yet &ndash; but I still think it would make sense to check out the changes as early as possible. The next major version is still a bit away, so you'll have plenty of time to adjust your software.
### Thank you
Last but definitely not least a big **Thank You** to the following people on GitHub who contributed to this release!
- [Jonas (@Rahjenaos)](https://github.com/Rahjenaos)
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [manuelstengelberger (@manuelstengelberger)](https://github.com/manuelstengelberger)
- [Philipp A. (@flying-sheep)](https://github.com/flying-sheep)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.3.2
### Bug Fixes
- Combat Techniques from books other than Core Rules were missing in combat techniques tab. #543
- Description of combat technique selection for profession variants does not render properly. #539
- Profession *Lanisto*: Skill Specialization selection referenced the wrong skill. #537
- Professions did not react to dependencies. #507
- *Old Adersin Style* missing from **Aventuria Armory**. #499
- Professions' section header "Combat Techniques" is German ("Kampftechniken"). #500
- Textfield „Title“ in personal data had wrong label. #492
- Profession *Hazaqi*: *Earthencraft* 4 is now *Clothworking* 4. #496
- Trade Secrets from *Armory of the Warring Kingdoms* were missing. #474
- SA *Binding of the Spell-Sword* had no costs. #490
- *Religion* was on SR 6 for most of the Blessed One professions. #475
- States were overflowing on character sheet PDF but not in Optolith. #473
- The `config.json` has still thrown errors for many users. The problem should be fixed, finally. #476
- In very rare situations parts of the heroes file or the whole heroes file have been deleted. Because of this, saving heroes has been completely rewritten and condensed to prevent further issues. #477
- Added missing Garethi dialect *Nostrian*. #480
- Fixed prerequisites for SA Energy Control. #471
- Fixed third-party licenses. #471
### Known Issues
- Some of the entries with more complex prerequisites might *display* them wrong but *handle* them correct.
## 1.3.1
### Bug Fixes
- In the French version, you were not able to create characters, because you could not choose any publication, race, ... #449
- There was an error thrown by "unknown keys" in the config. #450
- On character sheet, states were only displayed in one column if the amount of states was even. #448
## 1.3.0
### New Features
- French version (incl. Core Rules) #34
### Enhancements
- The search bar in wiki will not be cleared anymore if you switch the category. #286
- If importing a hero fails you'll now get more detailed information about the cause of the problem. (Incompatible version, invalid file, ...) #343 #394
- Completely new database layer and thus start-up time reduction up to 50%
### Bug Fixes
- The cache for AP is now working properly after not saving all of the heroes. #416
- Languages overflow on character sheet if Hjaldingsh is active. #419
- Personal data font is truncated vertically on character sheet. #413
- Profession *Black Mage (Demirion Ophenos's Student)* had wrong AP cost. #344
- Fixed weight total alignment on belongings sheet. #291
- An item could not be set as an improvised weapon. #290
- Routine Checks table: wrong alignment. #214
- Afraid of: Selection/Custom text did not appear on character sheet. #213
- Could not upload profile image from windows network share. #229
- Adding AP did not work if you didn't leave the input field. #341
- Weapons that do not apply damage only showed "D" as Damage. #353
- There was no Skill Rating decrease possible for *Tracking* with SA Hunter. #357
- SA *Onslaught* lists CT *Swords* twice. #355
- Could not read exported hero with BOM. #370
- Item changes could be saved in certain situations. #389
- Fixed field "Carried where" on items not persisted. #369
- The maximum of CTs caused by their primary attributes has been fixed. #379
- Cast-Net has had the CT *Slings* instead of *Thrown Weapons*. #345
- The app config does not cause errors anymore. #358
### API
As of now, there is a simple scheme for validating a hero available on [GitHub](https://github.com/elyukai/optolith-client/tree/master/app/Schema/Hero). A complete schema is in the works; the unfinished version thereof can also be found in the linked folder.
## 1.2.0
This release marks a big milestone for the English version as it includes all rule books released so far. This includes the **Compendium I**, **Magic of Aventuria** and more. Also, there are quite a few fixes.
### New Features
- Dutch localization (including Core Rules)
- **Aventuria Compendium I** English localization
- **Magic of Aventuria I** English localization
- **The Warring Kingdoms** English localization
- **Armory of The Warring Kingdoms** English localization
- **Aventuria Armory I** English localization
- **Aventuria Bestiary I** English localization
- **Inns & Taverns** English localization
### Enhancements
- Shields are usually not used as the primary weapon, so the doubled PA bonus is now used on character sheet.
- Improved Dodge IIII should not modify DO value as this should only happen when the hero does not wear armor.
### Bug Fixes
- Does not increase DO by 2 or 4 but 1 or 2 when optional rule *Higher Parade Values* is active.
- Disadvantage *Bad Luck I-III* did not decrease FtP on character sheet.
- Window for permanent loss of LP/AE/KP is now closable.
- Disadvantage *Stigma (Green Hair)* now makes the hair color green.
- Preview of images only displayed .jpg, no .png.
- Native Tongue (NT) cannot be selected as a level for languages.
- App close button did not work.
- Removed error message on import/export cancellation.
- *Personality Flaw*: It is now possible to buy as many Prejudices/Unworldly's as you like.
- Required attribute values for professions were not ensured.
- SA *Property Knowledge* did not work and had wrong AP cost.
- Demigods were not available as applications for *Religions* skill.
- Rerolling weight without a set size did not reroll both but instead used 0 as size.
- Wrong carrying capacity when STR was 8.
- CT adjustments in profession variants are not displayed correctly.
- The default file name in the save dialog for the PDF now is the hero's name.
- Unfamiliar Spells maximum was still active after finishing hero creation.
- Hide characters where the version of them is not supported.
- When selecting a spell for Tradition Guild Mage, General spells are now hidden.
- The selected locale (of a hero) was not saved.
- Pacts were not saved.
- Wrong column names on chants sheet.
- Protective/Wardings Circles are not correctly displayed.
- Disadvantage *Incompetent* disallows Advantage *Aptitude* completely instead of only disallowing the corresponding skill option.
- Primary Attribute maximum for Combat Techniques not working.
- Weight Ratio of Head and Torso in Hit Zone Armor flipped.
## 1.1.0/1.1.2
*The exact version number of the app is 1.1.2.*
After more than one year a big update is finally coming—even though you probably wont notice it: Optolith got a completely new code. This is accompanied by an internal restructuring, so that features like groups will be possible in the future. This is the biggest change, but not the only one: All reported bugs are fixed and over the last two weeks my testers found several bugs, which are also fixed here.
You will probably notice that Optolith takes a few seconds longer to load than before. This is because I rebuilt Optolith with the basic idea that it runs more stable. So I do checks during loading to make sure that all data that is loaded really looks as expected and so that nothing unexpected and unintentional, caused by wrong tables or other wrong data in the program, happens. The start performance is definitely going to be improved, but for now I prefer a more stable program to a fast one; after all this is only about starting the program, the performance during use is not affected.
Last but not least a big thank you to you, for your patience and all your feedback and further help, without which I would not have been able to fix all those bugs. Although new rules have not yet made it into this version, and the next version wont contain all new ones, Optolith will be able to get up to date more quickly than before.
But now its time for the changelog of this version:
### New Features
- Heroes can now be saved from the hero list.
- Avatars of heroes and pets can now be deleted.
### Enhancements
- Select option lists are now filtered by activated books. Previously, that only worked for main lists like special abilities, but now it works for all list, for example the list of trade secrets.
- Wiki entry lists cannot be filtered by specific books, neither can the wiki entry text in opened heroes. This will be implemented later!
- Unfamiliar spells are now going to be highlighted in red (just like uncommon advantages).
- Searching for professions now includes profession variants.
- The space for languages on the character sheet is now twice as large.
- When adding advantages or disadvantages, AP spent on advantages as well as on disadvantages will always be shown.
- Shields on character sheet are now listed as a weapon as well as a shield.
- Wiki texts are now selectable.
- For *Tradition (Guild Mage)*, you need to set a specific unfamiliar spell. **For an already activated SA, you can to the via the *Rules* tab. Please set the spell, because it is needed for upcoming books!**
- To be able to better handle differences between languages in terms of rules, heroes are now saving the languages they were created in. **For already created heroes, the creation language will be set to the current UI language. To change that, you need to switch to the *Rules* tab! Please check it, because it is going to be relevant in future versions!**
- The term for generating random weight and size of the hero is now shown above the respective input field.
- The dialog shown on application quit if there are unsaved actions is now clearer and shows three buttons for all three possible options.
- Text on character sheet is now selectable. This option is not useful for copying the complete character sheet as the layout is not preserved properly.
- Added FAQ entry on how to add LP/AE/KP.
- If you open a wiki entry when a character is open, the respective list item is highlighted just like they are in the wiki.
- The maximum available AP that can be left when finishing hero creation phase is now always 10 AP, no matter whether you are in editing mode or not.
- Added *Uses* for skills.
- For skills where it is not 100% clear whether encumbrance is relevant or not, the full description when it is relevant and when it is not is now shown instead of „maybe“.
- The separate entries for advantage *Exceptional Sense* and disadvantage *Restricted Sense* are now joined.
- *Additional sources* lists sources from which the entry gets its select options. For example, SA *Trade Secrets* not only shows the source for the base SA, but also the different trade secret sources from all the different books.
- Analogous to the Ravens Beaks blessed variant, theres now a mundane variant available, too. It costs 90 S. Theres no difference between the two versions except for *blessed/mundane*.
- For Staff Enchantments, *Binding of the Staff* as a prerequisite is now hidden (because it is hidden in Core Rules, too).
- Finishing RCP selection can now be undone.
### Bug Fixes
- After switching from German to English, heroes could not be edited anymore.
- Special Abilities can now be sorted by group again.
- Liturgical chant traditions and aspects are now sorted alphabetically.
- Maxima of skills and combat techniques are now also influenced by skill check attributes or primary attributes during character creation phase.
- Yellow-highlighted advantages/disadvantages are now explained in the legend on the left.
- A spell or chant from a base profession removed by a profession variant now removes the entry entirely instead of activating it on SR 0.
- Images are now shown on Linux again.
- Automatic advantages cost 0 AP so that race AP cost are correct now.
- Sorting equipment by group does not result in an error anymore.
- Avatars of pets are now exported as well when exporting the character.
- Details of spells and chants are shown on character sheet again.
- The prerequisite Race, culture, or profession must have \[...] as an automatic or suggested \[advantage/disadvantage]“ now also includes automatic advantages if they are removed.
- Pet layout on character sheet should work again.
- The PDF does not include a scroll bar anymore.
- Protective/Warding circles are now shown on character sheet.
- Lowering attributes in editing mode takes added LP/AE/KP into account and restricts lowering if needed.
- Sometimes, instead of a value, for example in *Enforce Honor 6*, `null` was shown in the wiki entry for professions, so it was actually *Ehrenhaftigkeit null*.
- Sometimes, the value of a entry in a profession, changed by a profession variant, was increased by 6. For example, Knight: *Etiquette 2 instead of 12* actually is *Etiquette 2 instead of 6*.
- Combat Style Special Abilities now show their type (passive/base maneuver/special maneuver) in wiki again.
- Sorting spells by group now sorts the groups alphabetically.
- When EL *Inexperienced* is selected and you got SA *Tradition (Guild Mage)*, you can now also buy and increase the selected unfamiliar spell (which is not unfamiliar anymore).
- The select option list for SA *Tradition (Guild Mage)* does not list familiar spells anymore.
- Disadvantage *Negative Trait (Stinginess)* and *(Wastefulness)* were not mutually exclusive.
- Spells and chants are not included in disadvantage *Incompetent*. Heroes with those entries will get the disadvantage removed automatically.
- SA *Aspect Knowledge* can now be added as expected.
- SA *Property Knowledge* can now be added as expected.
- SA *Precise Shot/Throw* had wrong attribute prerequisites.
- Disadvantages *No Flying Balm* and *No Familiar* now correctly decrease the cost of SA *Tradition (Witch)* by 10 AP each.
- SA *Tradition (Guild Mage)* is now taken into account for restrictions concerning unfamiliar spells (see the change to the SA listed above also).
- *Disguise*, Encumbrance: Maybe → Yes.
- *Etiquette*, Encumbrance: Maybe → No.
- *Persuasion*: Skill check COU/INT/CHA → COU/SGC/CHA.
- Wrong skill checks of spells:
- *Magical Melody*: COU/SGC/CHA → COU/INT/CHA
- *Song of Piece*: COU/SGC/INT → COU/INT/CHA
- *Song of Sorrow*: COU/CHA/CHA → COU/INT/INT
- Text missing which states that a special aspect of a spell cannot be modified:
- MOTORICUS: Cost
- WALL OF FOG: Cost
- Missing skill check modifiers (SPI/TOU) added to spells.
- ANALYZE ARCANE STRUCTURE: Casting time 2 actions → 32 actions.
- KLARUM PURUM, Cost: 8 AE.
- Wrong skill checks of liturgical chants:
- *Minor Banishing Ray*: COU/SGC/CHA → COU/INT/CHA
- *Enforce Honor*: COU/SGC/CHA → COU/INT/CHA
- *Encourage*: COU/SGC/CHA → COU/INT/CHA
- *Peaceful Aura*: COU/SGC/CHA → COU/INT/CHA
- *Hand mirror* now lists the corresponding rule.
- *Dog food, Horse feed, Pony feed*: Removed weight.
- *Rope, climbing* now has a correct price.
## 1.0.3
- Renamed Optolyth to Optolith to be in line with all other locations where the name occurs.
### Linux
- Fixed glibc-related issue.
- Moved from tar.gz to AppImage to provide auto-update support.
## 1.0.2
- Fixed issue with rendering list items of advantages/disadvantages/special abilities.
- Fixed shortcuts being global.
- Reloading a hero with `Stigma (Albino)` wont change selected eye color anymore.
### macOS
- App now quits automatically on close.
### English Specific
- Fixed list of professions.
### German Specific
- Fixed typo in failed check description of skill "Driving".
- Fixed attribute adjustment in attributes tab.
- Fixed levels of required instances of `Principles` and `Obligations` of `Blessed One of Kor`.
## 1.0.1
- Fixed special abilities tab.
## 1.0.0
### New Features / Breaking Changes
- New app name: Optolyth (long version: Optolyth Character Generator)
- Linux 32-bit build available.
- Applications that can be purchased using advantages or special abilities can be used for a skill specialization. They are listed in the wiki below *New Applications*, too.
### Rules/Crunch
- Language Specializations can be activated as an Optional Rule in the Rules tab.
- Added missing entries for *Immunity to [poison/disease]* from **Core Rules** and **Aventuria Almanach**.
### Bug Fixes / Other
- Multiline texts are now multiline on character sheet.
- If advantage *Stigma (Albino)* is purchased the (lists of available) hair and eye colors change.
- AP cost for race are now shown in AP tooltip. AP cost for profession are shown only when RCP selection has not been approved.
- Fixed converting older heroes to new version.
- The text fields for size and weight are both updated on generating size or weight.
- In profile overview now always shows the start EL. Before, the EL was calculated based on AP total.
- Now you can select the source books to use in the very beginning of character creation.
- Fixed prerequisites of *Cartography*.
- Fixed list of liturgical chants.
- Ignoring changes on close now closes the app. Before nothing happened ...
- Fixed calculation of minimum/maximum liturgical chant SR.
- Shortcuts!
- `Ctrl+Z` => Undo
- `Ctrl+Y` or `Ctrl+Shift+Z` => Redo
- `Ctrl+O` => Show settings (only when dedicated button is available, too)
- `Ctrl+S` => Save hero
- `Ctrl+W` => Switches to list of heroes if a hero is currently opened (similar to the back button in the top left corner)
- `Cmd+Q` => Close app (macOS)
- Abbreviations for related source books are shown in the list of professions again.
- Fixed importing heroes with images encoded in `jpg`.
- Fixed editing automatic Area Knowledge in profile overview.
- Fixed calculation total AP for disadvantage *Bad Habit*.
- The *About ...* menu element is disabled if there is an open dialog window (macOS).
- The AP cost for profession variants are now considered when calculating AP spent.
- Activating spells is now disabled the limits of EL are reached.
- Fixed showing separators when sorting spells or liturgical chants by group.
- Fixed text fields in animal section of the character sheet breaking layout or showing up twice.
- Fixed AP used for dis/advantages shown in window used for adding them. Remaining parts of the old AP system have been removed.
- Fixed saving heroes (previously saved heroes are not currupted).
- Fixed filters for list of races and list of professions.
- Fixed calculating AP total for *Obligations/Priciples*.
- Fixed showing damage info for weapons in wiki (if a weapon has no flat damage 1W6 instead of 1W60 is shown now).
### German Specific (in German)
#### New Features / Breaking Changes
- Unter Profil > Pakt kann nun ein Feenpakt eingetragen werden. Die Eingabe richtet sich genau nach den Regeln aus **Die Siebenwindküste** zu Feenpakten. Die Eingabe dort schaltet auch unter erfüllten Voraussetzungen Paktgeschenke frei.
#### Rules/Crunch
- Professionen aus **Aventurisches Götterwirken** und **Die Siebenwindküste** hinzugefügt.
- Fehlende Berufsgeheimnisse aus **Rüstkammer der Streitenden Königreiche** und **Rüstkammer der Siebendwindküste** sowie **Aventurisches Bestiarium** hinzugefügt.
- Fehlende Einträge für *Immunität gegen [Gift/Krankheit]* aus **Aventurisches Bestiarium**, **Aventurische Magie I** und **Kneipen & Tavernen** hinzugefügt.
#### Bug Fixes / Other
- Die Profession *Sangara* funktioniert wieder ordnungsgemäß.
- Die AP-Kosten für *Tradition (Zauberbarde)* und *Tradition (Zaubertänzer)* werden beim Hinzufügen wieder korrekt angezeigt.
- Liturgiestilsonderfertigkeiten, die es ermöglichen, Liturgien anderer Gottheiten zu erlernen, ermöglichen dieses Feature nun auch.
- Die Tradition des Namenlosen Kultes wird im Wiki nun korrekt angezeigt.
- Die Abhängigkeiten der Beschwörungs/Herbeirufungszauber werden nun in den FAQ behandelt.
- Die Berechnung der Wundschwelle funktioniert wieder ordnungsgemäß.
- Stilsonderfertigkeiten und dazugehörige Erweiterte SF können nun wieder ordnungsgemäß hinzugefügt und gelöscht werden.
- Die Wundschwelle wird nun nur angezeit, wenn **Aventurisches Kompendium** verfügbar und aktiviert ist.
- Die Reichweite für Waffen der Streitenden Königreiche wurde ergänzt.
- Vor- und Nachteile für *Intuitive Zauberer* können wieder ordnungsgemäß erworben und verkauft werden.
- Bei einigen Zaubern wurde die druidische oder scharlatanische Tradition ergänzt.
## 0.51.9
- The AP tooltip (if you hover over the available AP of the currently opened character) now show how many AP you spent on which category of entries - how much you spent on spells, on special abilities, on disadvantages, on cantrips, on energies (LP, AE, KP) and so on.
- I build a new AP system which dynamically calculates the AP. This means if there were or will be issues with calculated AP they will be fixed automatically by installing the patch that fixes this issue. (You still have to open the character and save it, though).
- Fixed AP value calculation of *Skill Specialization (Skill)*.
- Lists belonging to a hero (active special abilities, inactive special abilities, skills, professions and so on) now show a placeholder element when the respective list is empty.
- Slightly improved performance.
- Improved displaying numbers in some areas.
- You can now activate or deactivate if you want to see animations or not throught the settings window.
- Wiki lists now display levels if available (example: `Rich I-X` instead of `Rich`).
### German Specific
- Fixed prerequisites of *Abrollen*.
- Blessings are now tradition-aware: If you select a tradition of a demigod you will not be able to select the unavailable blessings (as specified by tradition special ability) anymore.
### English Specific
- There are full wiki entries available for *all* currently implemented entries.
## 0.51.8
- Fixed AP cost for languages.
- Fixed generating random values for size and weight of a character.
- Added error binding to content, so that if an error occurs you can still access the navigation bar.
- Fixed crashes of wiki box in English version.
## 0.51.7
- Tweaked some colors to improve UI readability.
- Error messages (the ones that contain "error" and "component stack") can be selected and thus copied.
- After creating a hero (temporary name, sex, experience level) you will be in the "rules" tab, which is a main tab in this phase of character creation. You can select race, culture and profession by switching to the respective tab.
- You can now check for updates manually via the Settings window.
- The wiki, which is shown if you switch to the "wiki" tab, is now complete - regarding functionality. Contents still vary depending on the selected language.
- If race Elf is selected the app will no longer warn you to not use the selected profession because the calculated AP would be incorrect.
- *Cendrash Style* is fixed and can be added to your character(s) again.
### German Specific
- Zone armor tab will only be shown if *Aventuria Armory* or *All rule books* are activated in "rules" tab.
- ENC is now correctly calculated for zone armor.
- Fixed *Brevier der zwölfgöttlichen Unterweisung*.
- Fixed magical styles.
### English Specific
- App will no longer crash all the time.
## 0.51.6
- Added sort option to inventory to sort by weight (in descending order).
- *Slow* is now considered when calculating MOV value.
- Fixed magical and blessed professions.
## 0.51.5
- Fixed hidden liturgical chants tab.
## 0.51.4
- Fixed MOV modificators.
- Splitted tradition special abilties to be able to provide wiki texts for them.
- Fixed some profession and profession variant values.
- Moved item infos to the wiki box on the right; removed the tooltip shown on hover before.
- Fixed resetting AP on changing race variant.
- Selection lists for disadvantages *Principles* and *Obligations* are not filtered by selected level anymore. This means, you can select *Code of the Church of Peraine* for all three levels of *Principles* instead of typing in the optional input field.
### German Specific
- Added **ALL** missing texts to complete the offline wiki.
- Joined the different `Bindung des Bannschwerts` special abilties.
- Additional item texts are only shown for templates and locked entries.
- Added missing armory from regional armory books.
### English/Dutch Specific
- Wiki boxes will show the entries that can be generated safely. Their full functionality will be enabled once the needed texts are added.
## 0.51.3
- Fixed issues with prerequisites for races.
- Fixed profession list filter.
- Fixed showing levels multiple times on character sheet and in profile overview.
- Ignores auto updater on Linux.
- Small tweaks to the light theme.
- Some fixes for items regarding price and weight.
- There are now additional infos about an update available in the download progress dialog.
- The Enter key should work as usual after closing the app.
### German Specific
- Added filtering by activated rule books and wiki entries for combat techniques, advantages, disadvantages and special abilities. Prerequisite texts for advantages, disadvantages and special abilities are missing, though.
- Removed special ability *Magischer Gedankenschutz* as this the exact same special ability as *Gedankenschutz*, the only difference is the name and this seems to be a issue with consistent naming.
## 0.51.2
- Fixed calculating AP for *activated* special ability entries where you have to buy each tier separately (e.g. *Feint I-III*). Previously, only the cost for the highest bought tier were shown.
- Removing bought energy points now correctly lowers AP spent. Previously, it did not change the current AP spent.
### German Specific
- Fixed *Lederüstung* typo.
## 0.51.1
- Fixed Auto Updater.
- Added FAQ page.
- It is now possible to change attribute adjustment selection from selected race during character creation.
- Fixed shown special ability groups on character sheet.
- Fixed displayed aspects of liturgical chants.
- Fixed calculating PA on character sheet.
- You can now select the rule books you want to include in the Profile > Rules tab. Inactive book entries will not be displayed (only Races, Cultures, Professions, Skills, Spells and Liturgical Chants).
- Displaying races now corresponds with the Core Rules.
- Fixed inactive Advantages/Disadvantages/Special Abilities lists layout (temporarily).
### macOS
- Added custom titlebar.
- Added *About ...* app menu option.
### German Specific
- Fixed *Visions* and *Sermons* for Blessed Ones.
- Fixed profession *Graumagier (Schule der Verformungen zu Lowangen)*.
## 0.51.0
- Auto-Updater for Windows and macOS.
- Installer for Windows.
- New icon set.
- You can now edit heroes after character creation phase if you check the respective box in the settings.
- Enabled filtering of item templates by combat technique.
- Exported characters will now include the avatar image.
- Added support for permanent LP loss.
- Source book abbreviations will now appear in profession list.
- All lists of skills (skills, spells, liturgical chants) will now show the attribute values if you hover over an list item.
- Fixed calculations of AP spent on **active** advantages/disadvantages/special abiltiies (AP for buying them were still calculated correctly).
- Fixed calculations based on size value (meter-based size entry allowed).
- Fixed surplus page in character sheet PDF.
- Added placeholder wiki boxes for advantages, disadvantages, special abilities and items.
- Fixed available hair colors for some races.
### German Specific
- Added spell and liturgical chant extensions to wiki boxes.
- Fixed text of *magical professions* for culture *Ore Dwarf*.
### Dutch Specific
- Started localization work.
## 0.50.0
- Custom AP cost possible for advantages and disadvantages.
- Fixed ItemEditors and ArmorZonesEditors theming and layout.
- Slightly brightened the color for disabled elements.
## 0.49.6
- Fixed dis/advantages from **Aventurian Magic I**.
- Fixed alerts after selecting RCP.
- Alerts might be a bit more responsive (internal rework).
- Fixed *Last Changes* page.
### German Specific
- Added wiki info for cultures.
## 0.49.5
- Special abilities with tiers do not have separate entries anymore.
- RCP costs are now entirely calculated by the app.
- Changed ItemEditor layout from one-column to two-column layout.
- Extended P+T functionality and fixed items based on that.
- Now allows negative AP left during character creation phase.
- Fixed search fields (it unintentionally converted text into a regular expression - thus some strange results).
- Fixed filtering magical traditions selection objects (previously, having more than 25 AP spent/received for magical advantages/disadvantages adding a tradition was completely disabled).
- Fixed professions requiring specific cultures.
- Fixed *Exceptional Skill/Combat Technique*
- Fixed calculating TOU.
- Fixed showing Own Profession without having extension books in profession list.
- Added prerquisites and special abilities entries for professions wiki info.
- Fixed disabling to add AE instead of to add permanently lost AE when more than one permanent AE point is lost.
- Wiki test page added.
- Added *Last Changes* tab in *About* section.
- Some further redesign work.
- A short message is now shown in Settings dialog informing about you need to restart the app when changing the language.
### German Specific
- Added (missing) wiki info for skills, cantrips, blessings, spells and liturgical chants (excluding extensions).
- Added special abilities, liturgical chant extensions and dis-/advantages from **Aventurian Work of the Gods**.
## 0.49.4
- Fixed character portrait selection.
- Heaps of stuff for the new design.
- Added theme selection to Settings modal (although the light theme is not finished yet; modals and tooltips are still dark ...).
- Deleting a character must be confirmed now (and cannot be undone after that).
- Now shrinks text in specific fields on character sheet.
- Fixed routine check modifiers on character sheet.
- Unified RCP views.
- Added RCP info views, although a lot of text is still missing.
### German Specific
- Fixed newer items.
- Fixed combat technique values of newer professions.
## 0.49.3
- Fixed AP limits for advantages/disadvantages.
- Removes existing equipment from item templates search results.
- New icon.
- New background.
- Updated titlebar icons on Windows and Linux.
### German Specific
- Fixed Skills selection for *Meistertalentierte*.
### English Specific
- Fixed RCP view issue(s).
- Fixed Equipment view.
## 0.49.2
- Fixed the addition of adventure points.
- Fixed second combat technique selection for professions.
- Fixed Settings modal.
- Fixed small issue concerning `alert`s.
- Item templates are no longer cleared after a new hero has been created.
### German Specific
- Fixed problems with displaying AE for *Intuitiver Zauberer*.
### English Specific
- Fixed race/professions list.
## 0.49.1
- Fixed issue with lists for advantages, disadvantages and special abilities containing skills/spells/liturgical chants.
- Fixed issue with RCP skill specialization selection.
- Fixed exporting heroes as JSON.
- Fixed equipment view.
- Professions are now sorted by name and them by subname (e.g. the academy name). Previously, professions with subnames were sorted randomly (changing from render to render).
### English Specific
- Added translation for skill name separation in RCP skill specialization selection.
## 0.49.0
- *Smash* does not require *Rundumschlag I* anymore.
- Protective/Warding Circles now require *Magical Signs*.
- Added missing *Ancestor Glyphs* from The Warring Kingdoms. They require *Magical Signs* as well.
- *Nimble* now increases MOV by 1.
- *Immunity to (Disease/Poison)* now correctly adds the selected entry.
- Derived characteristics are now correctly calculated on character sheet.
- Item templates have floating number values (again). This **wont** affect non-locked item templates in items.
- Requiring Spells now correctly disables the decrease button if the SR hits the required value.
- Invalid avatar paths will no longer result in a colored border with black background and an invalid file error in the console.
- Now filters Aspect Knowledge selection by active tradition.
- Now sorts lists properly depending on the selected locale (e.g. ä, ö and ü in German are basically treated as a, o and u respectively).
- Items now correcly reset if you load a character after you opened/created a character with items.
- Item weights are now correctly displayed.
- Item PA mods do not use the AT mod value anymore.
- *Improved Dodge I-III* now increases DO value.
- Profession *Spy* now correctly increases *Commerce* by 3.
- The used attributes for the skill check of ODEM ARCANUM are SGC/INT/INT now (following the German Regel-Wiki).
- *Combat Reflexes I-III* now increases INI value.
- Window is maximizable, unmaximizable and resizable.
- Added a title bar on Windows and Linux, providing buttons in Windows 10 UWP style to minimize, (un)maximize and close the app. This bar is also the draggable area of the window.
- Removed the Start tab.
- Improved general performance.
- In *Profile Overview* and *Character Sheet* tabs, entries such as `Skill Specialization (Climbing: Trees), Skill Specialization (Survival: Find Campsite)` are now written as `Skill Specialization (Climbing: Trees, Survival: Find Campsite)`, providing a better overview and readability in addition to more space.
- A new Redo button is added to the Navigation Bar. History resets after saving, finishing RCP selection and finishing character creation as well as switching to another character.
- Fixed *Property Knowledge*s and *Aspect Knowledge*s AP cost and effects.
- Fixed Languages and Scripts selection texts in RCP selections window.
- Fixed loading characters with active Blessings.
### German Specific
- Includes new traditions, aspects and liturgcal chants from **Aventurisches Götterwirken I**.
- Added info for selected race in Races tab.
- CON instead of COU now increases WS value.
- Fixed *Intuitive Caster*s spell limit and AE value.
### English Specific
- Added info box for selected race in Races tab, but (most of the) texts are still missing.
## 0.48.1
- Undo function is working again for advantages, disadvantages and special abilities.
- Spells can now be de/activated as intended.
- Cantrips/Blessing are now sorted on the character sheet.
- The total attribute maximum is shown on the attribute page during character creation.
## 0.48.0
- Heaps of bugs fixed. I lost sight of all bugs, so I wont provide a detailed list this time.
- Added a funtion to duplicate heroes.
- New interface for managing permanent AE/KP loss.
- Windows x86 support. (I am sorry for all the macOS users out there; I am still searching for a good way to build for Mac as I do not have a Mac at home.)
- Removed support for heroes created with app version lower than 0.45.0.
- If advantage/disadvantage list is empty, a placeholder will be shown. This is to ensure that having an empty list is intentional - and not a bug.
### German Specific
- Aventurian Names, Inns & Taverns, Aventurian Bestiary and The Warring Kingdoms are fully implemented (they should be). All entries from Aventurian Magic I are available. Optional Rules from AMI are not (yet) available.
- AMI is now basically complete. During reworking the entries some issues occured that might cause your characters to not work properly.
- Selecting *Meistertalentierte*, *Zauberbarden* or *Zaubertänzer* as your magical tradition requires a second selection. *Meistertalentierte* choose their *Meistertalent*, *Zauberbarden* or *Zaubertänzer* choose their music/dance tradition (Ceoladir etc). If the affected characters are in character creation phase, you will be able to remove the existing tradition special ability and reactivate it with the correct selection. If character creation is finished, you have to create the respective character(s) again.
- *Exorzist I* and *Meistertrick I* were missing selection options. Now they are included. The selection options do not affect the AP cost, so you can try to fix it the same way as you did for the magical tradition above.
## 0.47.3
- The requirement *Manifesto 10* for Elemental Servant referred to Wall of Fog instead of Manifesto.
## 0.47.2
- The calculations of total weight and total price in equipment tab should work again. Armor is excluded from the total weight calculation, because armor is excluded from carrying capacity if its in use.
- Character Sheet is working again.
- The skills tab contains a pane on the right side. If you click on the "i" buttons, it will show you additional information about the respective skill. Well, it will show you in the future: Currently, there is not much data available to show.
- The item list now properly resets for every new character.
## 0.47.1
- Fixed an issue with a race or a culture as a requirement. This issue caused some professions to never appear in the list.
## 0.47.0
Initial English release.
+57
View File
@@ -0,0 +1,57 @@
## Is there a character sheet and where can I find it?
Yes, there is a character sheet you can export as a PDF! To do that, you have to end hero creation in the character's profile first. To do *that*, you need to have a maximum of 10 AP left &ndash; and you can't have too much AP spent, obviously. If you end it, you'll see the new tab *Character Sheet* above. In that tab you'll get a preview of your sheet and then you can export it via the button in the top left corner!
Might be relevant: There's only an DIN A4 version available!
## I can't add spells or liturgical chants!
It's likely you do not meet the prerequisites for adding spells or liturgical chants:
### Spells:
- Buy advantage *Spellcaster*.
- Buy the magical special ability *Tradition*.
### Liturgical Chants:
* Buy advantage *Blessed One*.
* Buy the blessed special ability *Tradition*.
## I can't buy stronger invocations!
Stronger invocation rituals have prerequisites that you can find in the **Core Rules** on page **263**:
* Invocatio Minor: Invocatio Minima 10
* Invocatio Maior: Invocatio Minor 12
* Elemental Servant: Manifesto 10
* Call Djinn: Elemental Servant 12
## Why do I have the combat sheet twice?!
The first lists the default armor from the CR below *Armor* on the sheet. The second lists the hit zone armor with their different PRO values per hit zone there instead. If you have both sheets it's likely you have both default armor and hit zone armor for your character.
## How can I buy additional LP/AE/KP?
That depends on whether you are still in hero creation phase or have completed that.
* *During hero creation* you can add additional LP/AE/KP via the advantages *Increased Life Points/Arcane Power/Karma Points I-VII*. You should use them if you are interested in higher values because you can usually not buy advantages afterwards!
* *After hero creation*, to add additional LP/AE/KP, use the &raquo;+&laquo; button below the respective energy in the *Attributes* tab. The maximum values for these are calculated by using the rules from the **Core Rules** p. **350&ndash;352**.
## Where do I find my saved characters?
Characters and other files such as the application configuration can be found at the following locations, depending on the OS you use:
- *Windows:* `C:/Users/<User>/AppData/Roaming/Optolith`, where `<User>` is the name of your user folder
- *Linux:* `$XDG_CONFIG_HOME/Optolith` or `~/.config/Optolith`
- *macOS:* `~/Library/Application Support/Optolith`
A list of relevant files:
- `heroes.json ` contains all heroes saved in Optolith
- `config.json` contains the configuration of your Optolith. It does not contain critical data but things like color theme, language (only if you selected a specific one) and alike.
*A note on Windows:* `AppData` is a *hidden* folder. To be able to see it, check out the Windows Explorer, go to the *View* tab and activate the setting *Hidden elements*.
## How do I scale the UI for Optolith on Linux?
If you have the `tar.gz`, you can go into the extracted folder and then run `GDK_DPI_SCALE=<Scale> ./Optolith`, where `<Scale>` needs to be replaced with the desired scale, e.g. `1.5`.
+183
View File
@@ -0,0 +1,183 @@
## 1.5.1
### Améliorations
* **MapTool:** ajout de liens vers l'extension près du bouton d'export ([07d336d](https://github.com/elyukai/optolith-client/commit/07d336dbb3ceba9818185a9b8c0cdffa6283afb3))
### Bugs corrigés
* **MapTool:** sans avatar aucun export n'était possible ([80fdffb](https://github.com/elyukai/optolith-client/commit/80fdffb373fccc467383cf6d98c1f07a92168ee4)), fermeture [#1348](https://github.com/elyukai/optolith-client/issues/1348)
* **MapTool:** modification du format d'export pour MapTool en version 1.11.4 ([9e9a113](https://github.com/elyukai/optolith-client/commit/9e9a1139d3821bb5a36fbaa973236319026d996a))
* L'avantage *Rassurant* pouvait être acheté malgré un désavantage *Incompétent* dans un des talents sociaux ([8102bb1](https://github.com/elyukai/optolith-client/commit/8102bb1a9adac4849499380bf3bc2270aa7dd2c6)), fermeture [#1351](https://github.com/elyukai/optolith-client/issues/1351)
* Les prérequis à ne pas remplir étaient affichés avec des tirets autour au lieu d'être rayés ([2c9332c](https://github.com/elyukai/optolith-client/commit/2c9332c37f9b2d8d9e0359a9e4dadf0a40beeba1)), fermeture [#1349](https://github.com/elyukai/optolith-client/issues/1349)
## 1.5.0
### Fonctionnalités
* Export MapTool ([87cec15](https://github.com/elyukai/optolith-client/commit/87cec15ba9751c329ee39719dc654895b9f4f193))
* Traductions en portugais ([d8c9f52](https://github.com/elyukai/optolith-client/commit/d8c9f52542120f9e5fa569728b3f11cb79102365), [#676](https://github.com/elyukai/optolith-client/issues/676))
* Support natif Apple M1 ([94e751f](https://github.com/elyukai/optolith-client/commit/94e751fda169c4de90cdb82346d3d864cf697300))
### Améliorations
* Sécurité ([723e910](https://github.com/elyukai/optolith-client/commit/723e9106ebb178db6a7cccec2a022b3edaed5b98) and others)
### Bugs corrigés
* Des PV supplémentaires fixaient une valeur minimale requise de FO au lieu de CN. ([390dcb6](https://github.com/elyukai/optolith-client/commit/390dcb616aaa68e5b103bb49dd75d1529c4e7e3a), [#787](https://github.com/elyukai/optolith-client/issues/787))
* Les indicateurs d'armes à deux mains (2M) et d'armes improvisées (i) manquaient sur la feuille de personnage. ([3f9fae3](https://github.com/elyukai/optolith-client/commit/3f9fae30a2291b8e53486a74dae8cc1533741b94), [#797](https://github.com/elyukai/optolith-client/issues/797))
* Les armes de bagarre n'avaient pas de parade sur la feuille de personnage. ([a02700e](https://github.com/elyukai/optolith-client/commit/a02700eeccbd95a75f778d4d9e78ad7a2447dad8), [#1229](https://github.com/elyukai/optolith-client/issues/1229))
* Une entrée qui dépend d'une seule activation d'une autre entrée désactive la suppression de toutes les activations de cette entrée si des activations multiples sont présentes. ([092343f](https://github.com/elyukai/optolith-client/commit/092343f45da566a45b13b275899a458fed720a76), [#1097](https://github.com/elyukai/optolith-client/issues/1097))
* Les entrées affectant les sorts de façon à ce qu'ils ne soient pas "non familiers" pouvaient être supprimées si des améliorations de sorts étaient achetées. ([28f260a](https://github.com/elyukai/optolith-client/commit/28f260a2c4a96adb0d36585a478676f95c304414), [#827](https://github.com/elyukai/optolith-client/issues/827))
* La zone d'information sur l'équipement pouvait planter ([ae2fbad](https://github.com/elyukai/optolith-client/commit/ae2fbad1c738354dd468c1b36b06eda729a879e5))
* Les professions qui accordaient une valeur de technique de combat supérieure à celle autorisée par le niveau d'expérience sélectionné n'étaient pas filtrées. ([c8094f5](https://github.com/elyukai/optolith-client/commit/c8094f5ef15f62f69088386b9fc6c64f7d8bfd02), [#1244](https://github.com/elyukai/optolith-client/issues/1244))
* Les modificateurs INI/VIT sur les armures étaient traités comme des pénalités. ([eb5a068](https://github.com/elyukai/optolith-client/commit/eb5a06884db1894e1a9f2b4b040b114cb4dc85cb), [#1091](https://github.com/elyukai/optolith-client/issues/1091))
* Les spécialisations linguistiques ne coûtaient pas toujours 1 PA et ne pouvaient pas être activées plusieurs fois pour une même langue. ([0a59d9e](https://github.com/elyukai/optolith-client/commit/0a59d9e5e571e87525b18d0b25035e73f7cd87bf), [#1082](https://github.com/elyukai/optolith-client/issues/1082))
* Les portraits en transparence avaient un fond noir ([cc5ecd6](https://github.com/elyukai/optolith-client/commit/cc5ecd6f098ae6c080eeb3b306887727a99c1220), [#800](https://github.com/elyukai/optolith-client/issues/800))
* Le bagage culturel Sourcelandais avait Cuisine au lieu de Travail du cuir. ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#824](https://github.com/elyukai/optolith-client/issues/824))
* Les changements d'attributs primaires des objets n'étaient pas appliqués dans la fenêtre d'édition, mais uniquement sur la feuille de personnage. ([6c63ab1](https://github.com/elyukai/optolith-client/commit/6c63ab1b5051882ace71f15740c3a69fff4a267f), [#798](https://github.com/elyukai/optolith-client/issues/798))
* Les professions avec des valeurs d'attributs impossibles à sélectionner en raison du niveau d'expérience peuvent être sélectionnées. ([fdde329](https://github.com/elyukai/optolith-client/commit/fdde329de591319df3f6da11404dd7523d800c3e), [#1109](https://github.com/elyukai/optolith-client/issues/1109))
* Les sorts d'invocation des professions n'enregistraient pas les dépendances des prérequis. ([c1b2e26](https://github.com/elyukai/optolith-client/commit/c1b2e267cb3f02d2d18812415c39c58739ad99ec), [#1240](https://github.com/elyukai/optolith-client/issues/1240))
* Le poids des Elfes n'était pas généré correctement ([3b05e69](https://github.com/elyukai/optolith-client/commit/3b05e69e27f7faa1634b50eb134000fe1a2c3a21), [#813](https://github.com/elyukai/optolith-client/issues/813))
* Les attributs ayant une valeur minimale (8) ne permettaient pas d'obtenir une valeur de technique de combat supérieure à 6 si l'attribut était l'attribut principal de la technique de combat. ([47e66d6](https://github.com/elyukai/optolith-client/commit/47e66d65467999e2661eaac30a97b5a1ebfece94), [#835](https://github.com/elyukai/optolith-client/issues/835))
* Sortie PDF trop grande lors de l'utilisation d'un fond de feuille. ([9cb2658](https://github.com/elyukai/optolith-client/commit/9cb26586f3a5026d06f41801d4bbf714631d06a4), [#1094](https://github.com/elyukai/optolith-client/issues/1094))
* Auto-updater ne fonctionne pas dans AppImage ([a24ff80](https://github.com/elyukai/optolith-client/commit/a24ff8082a5556fc07af05f113bacfd9c84428a4), [#753](https://github.com/elyukai/optolith-client/issues/753))
* Certains prérequis d'attributs primaires n'étaient pas appliqués. ([ac0cdc3](https://github.com/elyukai/optolith-client/commit/ac0cdc377800a1eb380993dbb7914fa88b8f254e), [#1260](https://github.com/elyukai/optolith-client/issues/1260))
* Les champs de saisie entre parenthèses influençaient les autres champs entre parenthèses. ([0ab65e8](https://github.com/elyukai/optolith-client/commit/0ab65e869c26536127b386753db110f2e26b33af), [#1251](https://github.com/elyukai/optolith-client/issues/1251))
* L'exigence d'une seule langue et d'une seule écriture correspondante exigeait toutes les langues à la place ([4dabbdb](https://github.com/elyukai/optolith-client/commit/4dabbdbcd23c1ffeff18a8b1f9497a4a8315aa6a), [#1343](https://github.com/elyukai/optolith-client/issues/1343))
* Les écritures ne requièrent pas qu'une langue correspondante soit active. ([1ed0c64](https://github.com/elyukai/optolith-client/commit/1ed0c64b0dd9873593169bd9994082d49299fa3e), [#1344](https://github.com/elyukai/optolith-client/issues/1344))
* Certaines propriétés d'objets n'étaient pas sauvegardées ([f2e6138](https://github.com/elyukai/optolith-client/commit/f2e61386abe444aa76f0211469d50c30fde99a0c), [#1252](https://github.com/elyukai/optolith-client/issues/1252))
* La sélection des sorts non familiers dans la profession était facultative. ([3574d1b](https://github.com/elyukai/optolith-client/commit/3574d1ba46725d04a83286cd1055c080fe1de95f), [#1315](https://github.com/elyukai/optolith-client/issues/1315))
* Les techniques de combat n'influencent pas le minimum de leurs attributs primaires. ([1ce2db9](https://github.com/elyukai/optolith-client/commit/1ce2db9cfbb06b1ca8a549957b8225af71de9185), [#836](https://github.com/elyukai/optolith-client/issues/836))
* La sauvegarde d'un héros efface l'historique d'annulation de plusieurs personnages. ([923b760](https://github.com/elyukai/optolith-client/commit/923b7605fee4c4288dc743e962728308f7254ca9), [#811](https://github.com/elyukai/optolith-client/issues/811))
* Les lignes de la deuxième colonne du tableau des compétences de la fiche de personnage ont été élargies. ([41ee35b](https://github.com/elyukai/optolith-client/commit/41ee35ba76af42ad837daa6c45a940406b0c5daa), [#1342](https://github.com/elyukai/optolith-client/issues/1342))
### Remerciements
Enfin et surtout, un grand **merci** à tous ceux qui font des retours et donnent leur aide sur les différents canaux ainsi qu'aux personnes ci-dessous sur GitHub qui ont contribué à cette version !
- [Elidia (@FloraMayr)](https://github.com/FloraMayr)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lector (@Lector)](https://github.com/Lector)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [Marc Schwering (@m4rcsch)](https://github.com/m4rcsch)
- [Pepelios (@Pepelios)](https://github.com/Pepelios)
## 1.4.2
### Améliorations
- Suppression des *N/D* dans les tableaux des sorts et des liturgies sur la feuille de personnage afin que les valeurs puissent être ajoutées à la main. [#747](https://github.com/elyukai/optolith-client/issues/747)
- Le démarrage était beaucoup plus lent qu'en 1.3.2. [#751](https://github.com/elyukai/optolith-client/issues/751)
### Bugs rectifiés
- La VTC maximale des techniques de combat pourrait être supérieure à celle autorisée par les règles. [#749](https://github.com/elyukai/optolith-client/issues/749)
- La marge supérieure des fenêtres superposées comme lors de l'ajout d'avantages était trop petite. [#727](https://github.com/elyukai/optolith-client/issues/727)
- Le bonus de dommages Q+SD n'était pas ajouté aux armes sans dommages fixes. [#737](https://github.com/elyukai/optolith-client/issues/737)
- La profession *Magicien blanc (Académie de Gareth de l'épée et du bâton)* des **règles de base** avait une mauvaise valeur de PAV et *Astronomie 4* au lieu de *l'Alchimie 4*. [#568](https://github.com/elyukai/optolith-client/issues/568)
- La zone de texte "compétences de la créature" sur l'export PDF était trop courte pour correspondre à toutes les compétences pertinentes d'une créature. [#733](https://github.com/elyukai/optolith-client/issues/733)
- Les images dont la fin de fichier était en majuscules n'étaient pas acceptées comme images de portrait. [#762](https://github.com/elyukai/optolith-client/issues/762)
- L'icône de téléchargement était affichée à la place de l'image du portrait sur la fiche de personnage si aucun portrait n'était défini. [#759](https://github.com/elyukai/optolith-client/issues/759)
- Sur Mac, si le fond papier était activé, des pages vierges supplémentaires étaient générées pour la sortie PDF. [#748](https://github.com/elyukai/optolith-client/issues/748)
### Remerciements
Enfin et surtout, un grand **merci** à tous ceux qui font des retours et donnent leur aide sur les différents canaux ainsi qu'aux personnes ci-dessous sur GitHub qui ont contribué à cette version !
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.4.1
### Bugs rectifiés
- L'italien n'était pas disponible.
## 1.4.0
Veuillez vérifier les personnages pour lesquels vous avez ajouté la CS *intuition tactique* ou la CS *détection des embuscades*. Vous remarquerez qu'elle n'a pas son ancien nom. Ceci est dû à une erreur (mentionnée ci-dessous) où les noms de ces deux capacités spéciales ont été échangés. La représentation interne ne peut pas être modifiée et les entrées doivent donc être "renommées". Cela devrait également corriger les prérequis "incorrects" des deux entrées.
### Fonctionnalités
- Traduction italienne [#667](https://github.com/elyukai/optolith-client/issues/667) [#610](https://github.com/elyukai/optolith-client/issues/610)
- Fond de papier facultatif pour la feuille de personnages. [#36](https://github.com/elyukai/optolith-client/issues/36)
- Option de zoom de la vue sur la feuille de personnages. [#665](https://github.com/elyukai/optolith-client/issues/665)
- Ajouter/Soustraire de l'argent du porte-monnaie. [#666](https://github.com/elyukai/optolith-client/issues/666)
- Créez des avantages, des inconvénients et des capacités spéciales sur mesure avec un nom et une valeur en PAV (solution temporaire). [#632](https://github.com/elyukai/optolith-client/issues/632)
### Améliorations
- Le poids est maintenant indiqué dans une colonne spécifique dans l'onglet équipement. [#305](https://github.com/elyukai/optolith-client/issues/305)
- Les feuilles de combat inutiles ne sont plus utilisées, cela dépend maintenant de l'armure dont dispose le personnage. Par défaut, l'armure normale est utilisée si aucune armure n'est présente. [#407](https://github.com/elyukai/optolith-client/issues/407)
- Vous pouvez maintenant cliquer sur les noms des entrées pour afficher le texte de leurs règles. [#556](https://github.com/elyukai/optolith-client/issues/556)
### Bugs rectifiés
- Les variantes de la profession de *Prêtre de Boron* ont eu de mauvaises modifications de compétences. [#548](https://github.com/elyukai/optolith-client/issues/548)
- La profession *Magicien blanc (Epée & Bâton)* avait une valeur en PAV erronée et une modification de compétence supplémentaire. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Les professions communes fixes d'une culture seront désormais affichées même si elles ne sont pas issues des **règles de base**. [#563](https://github.com/elyukai/optolith-client/issues/563)
- L'interface peut être réduite. [#487](https://github.com/elyukai/optolith-client/issues/487)
- Les armes de la technique de combat *Lances* n'étaient pas indiquées sur la fiche de personnage. [#662](https://github.com/elyukai/optolith-client/issues/662)
- Les valeurs d'attributs minimum étaient ignorées pour les valeurs de compétence élevées. Le maximum de la valeur de compétence est l'attribut lié le plus élevé&thinsp;+&thinsp;2, donc l'attribut le plus élevé doit avoir une valeur minimale de VC&thinsp;&minus;&thinsp;2. [#630](https://github.com/elyukai/optolith-client/issues/630)
- Les noms des CS *Intuition tactique* et *Détection des embuscades* ont été échangés. [#636](https://github.com/elyukai/optolith-client/issues/636)
- Le nouveau domaine d'application *Publications professionnelles* pour le talent *Droit* avait un prérequis de capacité spéciale erronée. [#680](https://github.com/elyukai/optolith-client/issues/680)
- Certains éléments de la liste étaient plus larges que la liste actuelle. [#683](https://github.com/elyukai/optolith-client/pull/683)
- Les en-têtes de liste n'étaient pas centrés par défaut. [#637](https://github.com/elyukai/optolith-client/issues/637)
- Les PV dépensés de façon permanente ne permettaient pas d'acheter des PV supplémentaires. [#606](https://github.com/elyukai/optolith-client/issues/606)
- On ne pouvait pas ajouter de PV supplémentaire si la CON est de 8 et que rien n'en dépend. [#694](https://github.com/elyukai/optolith-client/issues/694)
- La CS *Maîtrise de l'aspect* n'apparait pas même avec trois liturgies de VC 10 ou plus. [#591](https://github.com/elyukai/optolith-client/issues/591)
- La vérification des mises à jour et le bouton de vérification des mises à jour sont maintenant désactivés sur macOS, car les mises à jour ne sont pas possibles sur macOS actuellement. [#589](https://github.com/elyukai/optolith-client/issues/589)
- Techniques de combat mal applicables pour la CS *détection des embuscades*. [#658](https://github.com/elyukai/optolith-client/issues/658)
- Les alertes de mise à jour automatique étaient activées sur Linux même lorsqu'il n'y avait pas de mises à jour automatiques directes disponibles. [#573](https://github.com/elyukai/optolith-client/issues/573)
- Le dialogue de sauvegarde pour l'exportation d'un caractère en JSON n'a pas ajouté l'extension de fichier au nom de fichier suggéré. [#718](https://github.com/elyukai/optolith-client/issues/718)
### API
Il y a des changements importants et radicaux à venir avec la prochaine version, donc si vous utilisez la source Optolith ou enregistrez des données, je vous recommande de venir sur [Discord](https://discord.gg/wfdgB9g) afin que je puisse vous dire ce qui va être changé en détail. Puisque de plus en plus de personnes dépendent des données d'Optolith, je vais maintenant suivre strictement le versionnement sémantique afin que vous puissiez vous fier à la compatibilité des fichiers sources en vérifiant simplement le numéro de version. Il y aura un nouveau format pour les héros ainsi que pour les données sources. Vous pouvez également donner votre avis sur les changements, puisqu'ils ne sont pas encore complètement terminés &ndash; mais je pense qu'il serait quand même judicieux de vérifier les changements le plus tôt possible. La prochaine version majeure est encore un peu loin, vous aurez donc tout le temps d'ajuster votre logiciel.
### Remerciements
Enfin, un grand **merci** aux personnes suivantes sur GitHub qui ont contribué à cette publication !
- [Jonas (@Rahjenaos)](https://github.com/Rahjenaos)
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [manuelstengelberger (@manuelstengelberger)](https://github.com/manuelstengelberger)
- [Philipp A. (@flying-sheep)](https://github.com/flying-sheep)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.3.2
### Bugs rectifiés
- La description de la sélection des techniques de combat pour les variantes de professions n'est pas rendue correctement. #539
- Les professions ne tenaient pas compte des conditions prérequises. #507
- Le champ de texte "Titre" des données personnelles était mal renseigné. #492
- *Religion* avait une VC 6 pour la plupart des professions cléricales. #475
- Les États débordaient de la feuille de personnage en PDF mais pas dans Optolith. #473
- Le `config.json` a encore provoqué des erreurs pour de nombreux utilisateurs. Le problème devrait être réglé, finalement. #476
- Dans de très rares cas, des parties d'un fichier de héros ou la totalité d'un fichier de héros ont été effacées. C'est pour cette raison que la sauvegarde des héros a été complètement réécrite et condensée pour éviter d'autres problèmes. #477
- Rajout du dialecte Garethi manquant *Nostrien*. #480
- Rectification des licences tierces. #471
- Rectification des désavantages avec des options à choisir qui ne pouvaient pas être achetés. #470
### Known Issues
- Some of the entries with more complex prerequisites might *display* them wrong but *handle* them correct.
## 1.3.1
### Bugs rectifiés
- Dans la version française, vous ne pouviez pas créer de personnages, car vous ne pouviez choisir aucune publication, aucune race, ... #449
- Il y a eu une erreur due à des "clés inconnues" dans la configuration. #450
- Sur la feuille de personnage, les états n'étaient affichés dans une seule colonne que si le nombre d'états était pair. #448
## 1.3.0
Version initiale.
+51
View File
@@ -0,0 +1,51 @@
## Y a-t-il une feuille de personnage et si oui, où puis-je la trouver ?
Oui, il existe une feuille de personnage que vous pouvez exporter au format PDF ! Pour ce faire, vous devez d'abord terminer la création de votre héros dans votre profil. Pour que cela fonctionne, vous devez avoir un maximum de 10 points daventure (PAV) non dépensés — et bien sûr ne pas en avoir dépensé trop. Lorsque vous lavez terminé, un nouvel onglet *FEUILLE DE PERSONNAGE* apparaîtra en haut. Dans cet onglet, vous trouverez un aperçu de votre feuille et vous pourrez l'enregistrer au format PDF à l'aide du bouton en haut à gauche. Pour les utilisateurs anglophones: il n'existe actuellement qu'une seule version A4 de la feuille de personnage !
## Je ne peux pas acheter de sorts ou de liturgies !
Cest sans doute parce que votre personnage ne remplit pas les conditions nécessaires ! Celles-ci sont les suivantes :
### Sorts :
- choisissez l'avantage *pouvoir magique*
- choisissez une *tradition magique* comme capacité spéciale
### Liturgies :
- choisissez l'avantage *pouvoir divin*
- choisissez une *tradition cléricale* comme capacité spéciale
## Je ne peux pas acheter de sorts d'invocation / de conjuration plus puissants !
Ces sorts ont des conditions présentées à la page 262 et 263 du *Livre des règles*. En conséquence, les sorts de la liste ci-dessous ne peuvent être sélectionnés que si le personnage remplit les conditions indiquées :
- Invocatio minor : invocatio minima 10
- Invocatio maior : invocatio minor 12
- Serviteur élémentaire : manifesto 10
- Appel de djinn : serviteur élémentaire 12
## Pourquoi la page de combat apparaît-elle deux fois dans la feuille de personnage ?!
La première liste les entrées pour les protections normales (armure complète) du *Livre des règles*. La seconde liste à la place les différentes pièces darmure et leur valeur en fonction de la zone touchée. Dans ce cas, cela signifie que vous avez au moins ajouté une armure complète et une pièce darmure spécifique à une zone de frappe sur votre feuille de personnage.
## Comment puis-je acheter plus de points de vie (PV)/astraux (PA)/de karma (PK) et améliorer ainsi mon énergie vitale (EV)/astrale (EA)/karmique (EK) ?
Cela dépend si vous êtes toujours dans le processus de *création du héros* ou si vous l'avez terminé.
- Lors de la *création du héros*, vous pouvez acheter des PV/PA/PK supplémentaires via les avantages Grande énergie vitale / astrale / karmique IVII. Si vous souhaitez des valeurs élevées dans ces domaines pour votre personnage, faites-le pendant la création car vous ne pouvez généralement pas acheter d'avantages par la suite !
- Après la *création du héros*, vous pouvez acheter des PV/PA/PK supplémentaires dans l'onglet *QUALITÉS* en utilisant le bouton « + » pour chaque énergie. Les valeurs maximales correspondantes correspondent à celles définies dans le *Livre des règles* pages 350352.
## Où puis-je trouver mes personnages enregistrés ?
Les personnages et autres fichiers tels que la configuration se trouvent — selon le système d'exploitation — aux emplacements suivants:
- *Windows* : `C:/Utilisateurs/<utilisateur>/AppData/Roaming/Optolith`, où <utilisateur> est le nom de votre dossier utilisateur
- *Linux* : `$XDG_CONFIG_HOME/Optolith` ou `~/.config/Optolith`
- *macOS* : `~/Library/Application Support/Optolith`
On peut y retrouver divers fichiers pertinents :
- `heroes.json` contient tous les héros actuellement dans Optolith
- `config.json` contient la configuration de votre application Optolith. Ne contient aucune donnée importante, juste des éléments comme le jeu de couleurs, la langue (si vous en avez une particulière) et quelques autres choses.
Une note sur *Windows* : `AppData` est un dossier caché. Pour le voir, vous devez activer le paramètre *Éléments masqués* dans l'Explorateur Windows sous *Affichage*.
+129
View File
@@ -0,0 +1,129 @@
## 1.5.1
### Miglioramenti
* **MapTool:** aggiunto collegamento allestensione accanto al pulsante di esportazione ([07d336d](https://github.com/elyukai/optolith-client/commit/07d336dbb3ceba9818185a9b8c0cdffa6283afb3))
### Correzioni
* **MapTool:** non era possibile esportare senza avatar ([80fdffb](https://github.com/elyukai/optolith-client/commit/80fdffb373fccc467383cf6d98c1f07a92168ee4)), corregge [#1348](https://github.com/elyukai/optolith-client/issues/1348)
* **MapTool:** modificato il formato di esportazione alla versione 1.11.4 di MapTool ([9e9a113](https://github.com/elyukai/optolith-client/commit/9e9a1139d3821bb5a36fbaa973236319026d996a))
* **MapTool:** aggiunte traduzioni italiane per lesportazione ([3f87dca](https://github.com/elyukai/optolith-client/commit/3f87dca910ce5229c7fd5378ba5f4177cbf431ac)), corregge [#1350](https://github.com/elyukai/optolith-client/issues/1350)
* Il vantaggio *Affabilità* poteva essere acquistato con lo svantaggio *Incompetenza* su una competenza sociale ([8102bb1](https://github.com/elyukai/optolith-client/commit/8102bb1a9adac4849499380bf3bc2270aa7dd2c6)), corregge [#1351](https://github.com/elyukai/optolith-client/issues/1351)
* Prerequisiti barrati venivano renderizzati con delle tilde prima e dopo ([2c9332c](https://github.com/elyukai/optolith-client/commit/2c9332c37f9b2d8d9e0359a9e4dadf0a40beeba1)), corregge [#1349](https://github.com/elyukai/optolith-client/issues/1349)
## 1.5.0
### Features
* Esportazione per MapTool ([87cec15](https://github.com/elyukai/optolith-client/commit/87cec15ba9751c329ee39719dc654895b9f4f193))
* Traduzione portoghese ([d8c9f52](https://github.com/elyukai/optolith-client/commit/d8c9f52542120f9e5fa569728b3f11cb79102365), [#676](https://github.com/elyukai/optolith-client/issues/676))
* Supporto nativo per Apple M1 ([94e751f](https://github.com/elyukai/optolith-client/commit/94e751fda169c4de90cdb82346d3d864cf697300))
### Migliorie
* Sicurezza ([723e910](https://github.com/elyukai/optolith-client/commit/723e9106ebb178db6a7cccec2a022b3edaed5b98) e altre)
### Correzioni
* PV aggiuntivi influenzano il valore minimo di COS e non FOR ([390dcb6](https://github.com/elyukai/optolith-client/commit/390dcb616aaa68e5b103bb49dd75d1529c4e7e3a), [#787](https://github.com/elyukai/optolith-client/issues/787))
* Aggiunti gli indicatori per armi a due mani (2M) e improvvisate (i) sul Foglio didentità ([3f9fae3](https://github.com/elyukai/optolith-client/commit/3f9fae30a2291b8e53486a74dae8cc1533741b94), [#797](https://github.com/elyukai/optolith-client/issues/797))
* Armi usate con Armi nude non avevano il valore di Parata indicato sul Foglio didentità ([a02700e](https://github.com/elyukai/optolith-client/commit/a02700eeccbd95a75f778d4d9e78ad7a2447dad8), [#1229](https://github.com/elyukai/optolith-client/issues/1229))
* Un valore che dipende da una singola attivazione di un altro valore impedisce di rimuovere tutte le attivazioni di quel valore, se ce ne sono più attive ([092343f](https://github.com/elyukai/optolith-client/commit/092343f45da566a45b13b275899a458fed720a76), [#1097](https://github.com/elyukai/optolith-client/issues/1097))
* Valori che hanno effetto sulle magie estranee potevano essere rimossi se venivano acquistati miglioramenti di incantesimo ([28f260a](https://github.com/elyukai/optolith-client/commit/28f260a2c4a96adb0d36585a478676f95c304414), [#827](https://github.com/elyukai/optolith-client/issues/827))
* Terminazione anomala dovuto alle informazioni sullequipaggiamento ([ae2fbad](https://github.com/elyukai/optolith-client/commit/ae2fbad1c738354dd468c1b36b06eda729a879e5))
* Le professioni che garantiscono un Valore di Tecnica di Combattimento più elevato del massimo concesso dal Livello dEsperienza non venivano filtrate ([c8094f5](https://github.com/elyukai/optolith-client/commit/c8094f5ef15f62f69088386b9fc6c64f7d8bfd02), [#1244](https://github.com/elyukai/optolith-client/issues/1244))
* I modificatori di Ini e Mov delle armature venivano gestiti come penalità ([eb5a068](https://github.com/elyukai/optolith-client/commit/eb5a06884db1894e1a9f2b4b040b114cb4dc85cb), [#1091](https://github.com/elyukai/optolith-client/issues/1091))
* Specializzazioni di linguaggio non costavano sempre 1 PAvv e non potevano essere scelte più volte per una singola lingua ([0a59d9e](https://github.com/elyukai/optolith-client/commit/0a59d9e5e571e87525b18d0b25035e73f7cd87bf), [#1082](https://github.com/elyukai/optolith-client/issues/1082))
* Immagini con trasparenza venivano mostrate con sfondo nero ([cc5ecd6](https://github.com/elyukai/optolith-client/commit/cc5ecd6f098ae6c080eeb3b306887727a99c1220), [#800](https://github.com/elyukai/optolith-client/issues/800))
* Il pacchetto culturale bornese modificava Cucinare invece di Lavorazione del cuoio ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#824](https://github.com/elyukai/optolith-client/issues/824))
* Alcuni errori di battitura in oggetti, lingue e scritture ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#832](https://github.com/elyukai/optolith-client/issues/832))
* Corretto il titolo di Volontà del ferro ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#850](https://github.com/elyukai/optolith-client/issues/850))
* Incantesimi e liturgie venivano indicate con punteggiatura e maiuscole diverse ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#851](https://github.com/elyukai/optolith-client/issues/851))
* Le modifiche di attributo primario per gli oggetti venivano mostrate soltanto nella finestra di modifica, non sul Foglio didentità ([6c63ab1](https://github.com/elyukai/optolith-client/commit/6c63ab1b5051882ace71f15740c3a69fff4a267f), [#798](https://github.com/elyukai/optolith-client/issues/798))
* Le professioni con valori di attributi impossibili (a causa del Livello dEsperienza) non possono più essere selezionate ([fdde329](https://github.com/elyukai/optolith-client/commit/fdde329de591319df3f6da11404dd7523d800c3e), [#1109](https://github.com/elyukai/optolith-client/issues/1109))
* Magie di evocazione fornite dalla professione non registravano i prerequisiti corretti ([c1b2e26](https://github.com/elyukai/optolith-client/commit/c1b2e267cb3f02d2d18812415c39c58739ad99ec), [#1240](https://github.com/elyukai/optolith-client/issues/1240))
* Il peso degli elfi non veniva calcolato in maniera corretta ([3b05e69](https://github.com/elyukai/optolith-client/commit/3b05e69e27f7faa1634b50eb134000fe1a2c3a21), [#813](https://github.com/elyukai/optolith-client/issues/813))
* Gli attributi al valore minimo (8) non permettevano di raggiungere un Valore di Tecnica di Combattimento superiore al 6 se facevano da Attributo primario per la Tecnica
([47e66d6](https://github.com/elyukai/optolith-client/commit/47e66d65467999e2661eaac30a97b5a1ebfece94), [#835](https://github.com/elyukai/optolith-client/issues/835))
* PDF troppo grande quando si utilizza lo sfondo ([9cb2658](https://github.com/elyukai/optolith-client/commit/9cb26586f3a5026d06f41801d4bbf714631d06a4), [#1094](https://github.com/elyukai/optolith-client/issues/1094))
* Sistema di aggiornamento non funziona con AppImage ([a24ff80](https://github.com/elyukai/optolith-client/commit/a24ff8082a5556fc07af05f113bacfd9c84428a4), [#753](https://github.com/elyukai/optolith-client/issues/753))
* Alcuni requisiti sugli Attributi primari non venivano rispettati ([ac0cdc3](https://github.com/elyukai/optolith-client/commit/ac0cdc377800a1eb380993dbb7914fa88b8f254e), [#1260](https://github.com/elyukai/optolith-client/issues/1260))
* Gli indicatori di Raggio influenzavano altri campi ([0ab65e8](https://github.com/elyukai/optolith-client/commit/0ab65e869c26536127b386753db110f2e26b33af), [#1251](https://github.com/elyukai/optolith-client/issues/1251))
* Si richiedeva soltanto una lingua compatibile invece di tutte ([4dabbdb](https://github.com/elyukai/optolith-client/commit/4dabbdbcd23c1ffeff18a8b1f9497a4a8315aa6a), [#1343](https://github.com/elyukai/optolith-client/issues/1343))
* Le scritture non richiedevano la conoscenza di una lingua compatibile ([1ed0c64](https://github.com/elyukai/optolith-client/commit/1ed0c64b0dd9873593169bd9994082d49299fa3e), [#1344](https://github.com/elyukai/optolith-client/issues/1344))
* Alcune proprietà degli oggetti non venivano salvati ([f2e6138](https://github.com/elyukai/optolith-client/commit/f2e61386abe444aa76f0211469d50c30fde99a0c), [#1252](https://github.com/elyukai/optolith-client/issues/1252))
* La selezione dei propri incantesimi estranei era opzionale ([3574d1b](https://github.com/elyukai/optolith-client/commit/3574d1ba46725d04a83286cd1055c080fe1de95f), [#1315](https://github.com/elyukai/optolith-client/issues/1315))
* Le Tecniche di Combattimento non influenzavano il minimo richiesto sugli Attributi primari ([1ce2db9](https://github.com/elyukai/optolith-client/commit/1ce2db9cfbb06b1ca8a549957b8225af71de9185), [#836](https://github.com/elyukai/optolith-client/issues/836))
* Salvando un eroe veniva cancellata la cronologia per più eroi ([923b760](https://github.com/elyukai/optolith-client/commit/923b7605fee4c4288dc743e962728308f7254ca9), [#811](https://github.com/elyukai/optolith-client/issues/811))
* Allargate le righe della seconda colonna di abilità nel Foglio didentità ([41ee35b](https://github.com/elyukai/optolith-client/commit/41ee35ba76af42ad837daa6c45a940406b0c5daa), [#1342](https://github.com/elyukai/optolith-client/issues/1342))
### Ringraziamenti
Come ultimo punto, ma non per importanza, un grandissimo **grazie** a tutti coloro che forniscono commenti, suggerimenti e aiuto sui vari canali sociali e un grazie alle seguenti persone su GitHub che hanno contribuito a questa versione!
- [Elidia (@FloraMayr)](https://github.com/FloraMayr)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lector (@Lector)](https://github.com/Lector)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [Marc Schwering (@m4rcsch)](https://github.com/m4rcsch)
- [Pepelios (@Pepelios)](https://github.com/Pepelios)
## 1.4.2
### Migliorie
- Ridotto il tempo di avvio. [#751](https://github.com/elyukai/optolith-client/issues/751)
### Correzioni
- Le formule della caratteristiche derivate occupano troppo spazio sul foglio didentità. [#729](https://github.com/elyukai/optolith-client/issues/729)
- Rimozione dei requisiti doppi in alcune abilità speciali. [#730](https://github.com/elyukai/optolith-client/issues/730)
- Correzioni minori della localizzazione italiana. [#731](https://github.com/elyukai/optolith-client/issues/731)
- Alcune tecniche di combattimento possono essere impostate a valori più elevati di quanto ammesso dal regolamento. [#749](https://github.com/elyukai/optolith-client/issues/749)
- Il margine superiore delle finestre in sovrimpressione, come nellinserimento dei vantaggi, è troppo stretto. [#727](https://github.com/elyukai/optolith-client/issues/727)
- Il bonus di impatto non viene calcolato per alcune armi. [#737](https://github.com/elyukai/optolith-client/issues/737)
- La professione *Mago bianco (Accademia Garetiana di Spada e Bastone)* dal **Regolamento** ha un valore di PAvv sbagliato e *Astronomia&nbsp;4* invece di *Alchimia&nbsp;4*. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Campo di testo delle abilità degli animali nel foglio didentità è troppo piccolo per contenere tutte le abilità. [#733](https://github.com/elyukai/optolith-client/issues/733)
- Labilità speciale *Bladestorm* si applica alle tecniche di combattimento sbagliate. [#768](https://github.com/elyukai/optolith-client/issues/768)
- Immagini con estensione in maiuscoletto non vengono accettate come ritratto. [#762](https://github.com/elyukai/optolith-client/issues/762)
- Viene mostrata licona di caricamento invece del ritratto su fogli didentità di personaggi senza ritratto. [#759](https://github.com/elyukai/optolith-client/issues/759)
- Su Mac, con lo sfondo pergamenato attivato, vengono generate pagine bianche di troppo nel PDF finale. [#748](https://github.com/elyukai/optolith-client/issues/748)
### Ringraziamenti
Come ultimo punto, ma non per importanza, un grandissimo **grazie** a tutti coloro che forniscono commenti, suggerimenti e aiuto sui vari canali sociali e un grazie alle seguenti persone su GitHub che hanno contribuito a questa versione!
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.4.1
### Correzioni
- La localizzazione italiana non era disponibile.
## 1.4.0
Primo rilascio della versione italiana.
### API
Ci sono importanti modifiche in questa nuova versione, che cambiano anche il modo in cui sono memorizzati i dati. Se fai uso dei file memorizzati da Optolith, è possibile fare un salto su [Discord](https://discord.gg/wfdgB9g) in modo da avere più informazioni sulle modifiche nel dettaglio.
Siccome sempre più persone fanno uso dei dati di Optolith, da questa versione in poi seguiremo le regole del *versionamento semantico*, in modo da permettere agli utenti di fare affidamento alla compatibilità dei file sorgente e dei file dei dati, verificandone soltanto il numero di versione.
Ci sarà un nuovo formato di dati sia per gli eroi memorizzati che per i dati sorgente.
Le modifiche non sono ancora finalizzate e la nuova versione maggiore è ancora lontana, ma è consigliato aggiornarsi al nuovo formato di dati il prima possibile.
### Ringraziamenti
Come ultimo punto, ma non per importanza, un grandissimo **grazie** alle seguenti persone su GitHub che hanno contribuito a questa versione!
- [Jonas (@Rahjenaos)](https://github.com/Rahjenaos)
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [manuelstengelberger (@manuelstengelberger)](https://github.com/manuelstengelberger)
- [Philipp A. (@flying-sheep)](https://github.com/flying-sheep)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
+51
View File
@@ -0,0 +1,51 @@
## C’è una scheda del personaggio e dove posso trovarla?
Sì, c’è un Foglio dIdentità pronto da esportare come PDF!
Per farlo dovrai prima terminare la fase di creazione del personaggio del tuo eroe. Per poterlo fare, dovrai innanzitutto accertarti di avere *al più* 10 Punti Avventura rimasti e di non averne spesi troppi per il tuo livello di esperienza. Una volta terminata la creazione del personaggio, comparirà la scheda *Foglio didentità* in alto, che ti permetterà di accedere allanteprima del foglio e di esportarlo come PDF usando il pulsante in alto a sinistra.
Al momento il PDF è disponibile soltanto in formato DIN A4.
## Non riesco ad aggiungere incantesimi e liturgie!
Niente paura, è probabile che semplicemente il tuo eroe non soddisfi i prerequisiti per avere accesso a magia e opere divine.
### Magia:
- Acquista il vantaggio *Dono della magia*.
- Acquista una qualsiasi *Tradizione* di magia come abilità speciale.
### Opere divine:
* Acquista il vantaggio *Grazia divina*.
* Acquista una qualsiasi *Tradizione* divina come abilità speciale.
## Non riesco ad acquistare incantesimi di invocazione/evocazione più forti!
Incantesimi e rituali di invocazione/evocazione più forti hanno dei prerequisiti speciali, come indicati nel **Regolamento** a pagina **263**:
* Invocatio Minor: Invocatio Minima 10
* Invocatio Maior: Invocatio Minor 12
* Servitore elementale: Manifesto 10
* Richiamo del genio: Servitore elementale 12
## Come posso acquistare altri PV/PA/PK?
Dipende. Il meccanismo cambia se sei ancora nella fase di creazione del personaggio oppure se il personaggio è già stato creato.
* *Durante la fase di creazione* è possibile acquistare altri PV/PA/PK tramite i vantaggi *Elevata energia vitale/astrale/karmica* (con livello da I a VII). È bene sceglierli in questa fase se si punta ad avere un numero elevato di PV/PA/PK, perché non è possibile acquistare vantaggi dopo aver creato leroe!
* *Dopo la fase di creazione*, è possibile acquistare PV/PA/PK aggiuntivi usando il pulsante **&raquo;+&laquo;** sotto al rispettivo indicatore dei punti nella scheda degli *Attributi*. Il valore massimo impostabile in questo modo è calcolato usando le regole del **Regolamento** a pag. **350352**.
## Dove trovo i miei personaggi memorizzati?
Personaggi ed altri file, come la configurazione dellapplicazione, si trovano ai seguenti percorsi in base al sistema operativo utilizzato:
- *Windows:* `C:/Users/<User>/AppData/Roaming/Optolith`, dove `<User>` è il tuo nome utente.
- *Linux:* `$XDG_CONFIG_HOME/Optolith` oppure `~/.config/Optolith`.
- *macOS:* `~/Library/Application Support/Optolith`.
Una lista dei file che possono essere rilevanti:
- `heroes.json` contiene tutti gli eroi memorizzati da Optolith.
- `config.json` contiene la configurazione utilizzata dallapplicazione. Non contiene dati di natura critica, ma informazioni come il colore del tema, la lingua attiva e così via.
*Nota bene per utenti Windows:* `AppData` è una cartella *nascosta*. Per visualizzarla in Esplora Risorse, è necessario accedere alla scheda *Visualizza* e attivare la visualizzazione degli *Elementi nascosti*.
+213
View File
@@ -0,0 +1,213 @@
## 1.5.1
### Enhancements
* **MapTool:** voeg links toe naar extensie naast export knop ([07d336d](https://github.com/elyukai/optolith-client/commit/07d336dbb3ceba9818185a9b8c0cdffa6283afb3))
### Bug Fixes
* **MapTool:** zonder avatar kon je niet exporteren ([80fdffb](https://github.com/elyukai/optolith-client/commit/80fdffb373fccc467383cf6d98c1f07a92168ee4)), sluit [#1348](https://github.com/elyukai/optolith-client/issues/1348)
* **MapTool:** export formaat voor MapTool versie 1.11.4 is aangepast ([9e9a113](https://github.com/elyukai/optolith-client/commit/9e9a1139d3821bb5a36fbaa973236319026d996a))
* Voordeel *Inspireer Vertrouwen* kon gekocht worden met een actieve *incompetent* in een sociale vaardigheid ([8102bb1](https://github.com/elyukai/optolith-client/commit/8102bb1a9adac4849499380bf3bc2270aa7dd2c6)), sluit [#1351](https://github.com/elyukai/optolith-client/issues/1351)
* Doorstreepte vereisten werden gerenderd met omsluitende tildes ([2c9332c](https://github.com/elyukai/optolith-client/commit/2c9332c37f9b2d8d9e0359a9e4dadf0a40beeba1)), sluit [#1349](https://github.com/elyukai/optolith-client/issues/1349)
## 1.5.0
### Features
* MapTool export ([87cec15](https://github.com/elyukai/optolith-client/commit/87cec15ba9751c329ee39719dc654895b9f4f193))
* Portuguese translations ([d8c9f52](https://github.com/elyukai/optolith-client/commit/d8c9f52542120f9e5fa569728b3f11cb79102365), [#676](https://github.com/elyukai/optolith-client/issues/676))
* Native Apple M1 support ([94e751f](https://github.com/elyukai/optolith-client/commit/94e751fda169c4de90cdb82346d3d864cf697300))
### Verbeteringen
* Security ([723e910](https://github.com/elyukai/optolith-client/commit/723e9106ebb178db6a7cccec2a022b3edaed5b98) and others)
### Probleemoplossingen
* Additional LE set a minimum required value of STR instead of CON ([390dcb6](https://github.com/elyukai/optolith-client/commit/390dcb616aaa68e5b103bb49dd75d1529c4e7e3a), [#787](https://github.com/elyukai/optolith-client/issues/787))
* Two-handed (2H) and improvised (i) weapon indicators were missing on character sheet ([3f9fae3](https://github.com/elyukai/optolith-client/commit/3f9fae30a2291b8e53486a74dae8cc1533741b94), [#797](https://github.com/elyukai/optolith-client/issues/797))
* Brawling weapons had no parry on character sheet ([a02700e](https://github.com/elyukai/optolith-client/commit/a02700eeccbd95a75f778d4d9e78ad7a2447dad8), [#1229](https://github.com/elyukai/optolith-client/issues/1229))
* An entry that depends on a single activation of another entry disables removing of all activations of that entry if multiple activations are present ([092343f](https://github.com/elyukai/optolith-client/commit/092343f45da566a45b13b275899a458fed720a76), [#1097](https://github.com/elyukai/optolith-client/issues/1097))
* Entries affecting spells to not be unfamiliar could be removed if Spell Enhancements were bought ([28f260a](https://github.com/elyukai/optolith-client/commit/28f260a2c4a96adb0d36585a478676f95c304414), [#827](https://github.com/elyukai/optolith-client/issues/827))
* The equipment info area may have crashed ([ae2fbad](https://github.com/elyukai/optolith-client/commit/ae2fbad1c738354dd468c1b36b06eda729a879e5))
* Professions that granted higher Combat Technique Ratings than what the selected Experience Level allowed were not filtered ([c8094f5](https://github.com/elyukai/optolith-client/commit/c8094f5ef15f62f69088386b9fc6c64f7d8bfd02), [#1244](https://github.com/elyukai/optolith-client/issues/1244))
* INI/MOV modifiers on armor were handled as penalties ([eb5a068](https://github.com/elyukai/optolith-client/commit/eb5a06884db1894e1a9f2b4b040b114cb4dc85cb), [#1091](https://github.com/elyukai/optolith-client/issues/1091))
* Language specializations did not always cost 1 AP and could not be activated multiple times for a single language ([0a59d9e](https://github.com/elyukai/optolith-client/commit/0a59d9e5e571e87525b18d0b25035e73f7cd87bf), [#1082](https://github.com/elyukai/optolith-client/issues/1082))
* Portraits with transparency had a black background ([cc5ecd6](https://github.com/elyukai/optolith-client/commit/cc5ecd6f098ae6c080eeb3b306887727a99c1220), [#800](https://github.com/elyukai/optolith-client/issues/800))
* Bornlander cultural package had Leatherworking instead of Prepare Food ([397abe2](https://github.com/elyukai/optolith-client/commit/397abe2b4a69582dc49422add1700807272c32d6), [#824](https://github.com/elyukai/optolith-client/issues/824))
* Primary attribute changes for items were not applied in edit window, only on character sheet ([6c63ab1](https://github.com/elyukai/optolith-client/commit/6c63ab1b5051882ace71f15740c3a69fff4a267f), [#798](https://github.com/elyukai/optolith-client/issues/798))
* Professions with due to EL impossible attribute values could be selected ([fdde329](https://github.com/elyukai/optolith-client/commit/fdde329de591319df3f6da11404dd7523d800c3e), [#1109](https://github.com/elyukai/optolith-client/issues/1109))
* Summoning spellworks from professions did not register dependencies from prerequisites ([c1b2e26](https://github.com/elyukai/optolith-client/commit/c1b2e267cb3f02d2d18812415c39c58739ad99ec), [#1240](https://github.com/elyukai/optolith-client/issues/1240))
* Typo in effect of Bliksemblind spell ([c58279c](https://github.com/elyukai/optolith-client/commit/c58279cc95aba5506824510d83aa6ffbc410107a), [#805](https://github.com/elyukai/optolith-client/issues/805))
* Weight of Elves was not generated correctly ([3b05e69](https://github.com/elyukai/optolith-client/commit/3b05e69e27f7faa1634b50eb134000fe1a2c3a21), [#813](https://github.com/elyukai/optolith-client/issues/813))
* Attributes on minimum value (8) did not allow a combat technique rating over 6 if the attribute was the combat technique's primary attribute ([47e66d6](https://github.com/elyukai/optolith-client/commit/47e66d65467999e2661eaac30a97b5a1ebfece94), [#835](https://github.com/elyukai/optolith-client/issues/835))
* Too large PDF output when using a sheet background ([9cb2658](https://github.com/elyukai/optolith-client/commit/9cb26586f3a5026d06f41801d4bbf714631d06a4), [#1094](https://github.com/elyukai/optolith-client/issues/1094))
* Auto-updater did not work in AppImage ([a24ff80](https://github.com/elyukai/optolith-client/commit/a24ff8082a5556fc07af05f113bacfd9c84428a4), [#753](https://github.com/elyukai/optolith-client/issues/753))
* Some primary attribute prerequisites were not enforced ([ac0cdc3](https://github.com/elyukai/optolith-client/commit/ac0cdc377800a1eb380993dbb7914fa88b8f254e), [#1260](https://github.com/elyukai/optolith-client/issues/1260))
* Range brackets input fields influenced other bracket fields ([0ab65e8](https://github.com/elyukai/optolith-client/commit/0ab65e869c26536127b386753db110f2e26b33af), [#1251](https://github.com/elyukai/optolith-client/issues/1251))
* Requiring only one matching languages and script required all of them instead ([4dabbdb](https://github.com/elyukai/optolith-client/commit/4dabbdbcd23c1ffeff18a8b1f9497a4a8315aa6a), [#1343](https://github.com/elyukai/optolith-client/issues/1343))
* Scripts did not require an active matching language ([1ed0c64](https://github.com/elyukai/optolith-client/commit/1ed0c64b0dd9873593169bd9994082d49299fa3e), [#1344](https://github.com/elyukai/optolith-client/issues/1344))
* Some item properties were not saved ([f2e6138](https://github.com/elyukai/optolith-client/commit/f2e61386abe444aa76f0211469d50c30fde99a0c), [#1252](https://github.com/elyukai/optolith-client/issues/1252))
* Unfamiliar spell selection in profession was optional ([3574d1b](https://github.com/elyukai/optolith-client/commit/3574d1ba46725d04a83286cd1055c080fe1de95f), [#1315](https://github.com/elyukai/optolith-client/issues/1315))
* Combat techniques did not influence the minimum of their primary attributes ([1ce2db9](https://github.com/elyukai/optolith-client/commit/1ce2db9cfbb06b1ca8a549957b8225af71de9185), [#836](https://github.com/elyukai/optolith-client/issues/836))
* Saving a hero cleared the undo history of multiple characters ([923b760](https://github.com/elyukai/optolith-client/commit/923b7605fee4c4288dc743e962728308f7254ca9), [#811](https://github.com/elyukai/optolith-client/issues/811))
* Widened rows in second column of skills table on character sheet ([41ee35b](https://github.com/elyukai/optolith-client/commit/41ee35ba76af42ad837daa6c45a940406b0c5daa), [#1342](https://github.com/elyukai/optolith-client/issues/1342))
### Dank u
Ten laatste maar zeker niet ten minste een dikke **Dank u** voor iedereen die feedback en help geeft in de verschillende kanalen alsook de volgende mensen op GitHub die bijgedragen hebben tot deze release!
- [Elidia (@FloraMayr)](https://github.com/FloraMayr)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lector (@Lector)](https://github.com/Lector)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [Marc Schwering (@m4rcsch)](https://github.com/m4rcsch)
- [Pepelios (@Pepelios)](https://github.com/Pepelios)
## 1.4.2
### Verbeteringen
- Start-up was trager dan in 1.3.2. [#751](https://github.com/elyukai/optolith-client/issues/751)
### Probleemoplossingen
- Gevechtstechnieken maximum GtR kon hoger zijn dan toegelaten. [#749](https://github.com/elyukai/optolith-client/issues/749)
- The top margin van overlay venters zoals bij het toevoegen van Voordelen was te klein. [#727](https://github.com/elyukai/optolith-client/issues/727)
- De P+T schade bonus werd niet toegevoegd aan wapens zonder extra schade. [#737](https://github.com/elyukai/optolith-client/issues/737)
- Beroep *Witte Magier (Gareth Academy van Zwaard en Staf)* van de **Basis regels** had een verkeerde AP waarde en *Astronomie 4* in plaats van *Alchemie 4*. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Dier vaardigheids tekst veld op de PDF export was te kort om alle relevante vaardigheden van een dier te bevatten. [#733](https://github.com/elyukai/optolith-client/issues/733)
- Afbeeldingen met uppercase file extensies werden niet aanvaard asl portret afbeeldingen. [#762](https://github.com/elyukai/optolith-client/issues/762)
- Het upload icon werd getoont in plaats van de portret afbeelding op het helden document als er geen portret opgeven was. [#759](https://github.com/elyukai/optolith-client/issues/759)
- Op de Mac, als de papier achtergrond aan stond, werden er additionele lege paginas toegevoegd aan de PDF output. [#748](https://github.com/elyukai/optolith-client/issues/748)
### Thank you
Ten laatste maar zeker niet ten minste een dikke **Dank u** voor iedereen die feedback en help geeft in de verschillende kanalen alsook de volgende mensen op GitHub die bijgedragen hebben tot deze release!
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.4.1
### Probleemoplossingen
- Italiaans was niet beschikbaar.
## 1.4.0
### Nieuwe features
- Italiaanse vertaling [#667](https://github.com/elyukai/optolith-client/issues/667) [#610](https://github.com/elyukai/optolith-client/issues/610)
- Optionele papier-stijl achtergrond voor helden document. [#36](https://github.com/elyukai/optolith-client/issues/36)
- helden document zoom optie. [#665](https://github.com/elyukai/optolith-client/issues/665)
- Geld toevoegen/aftrekken. [#666](https://github.com/elyukai/optolith-client/issues/666)
- Voeg Voordelen, Nadelen en Competenties op maat toe met gekozen naam en AP waarde (tijdelijke oplossing) [#632](https://github.com/elyukai/optolith-client/issues/632)
### Verbeteringen
- Gewicht wordt nu in zijn eigen kolom getoond in de uitrusting tab. [#305](https://github.com/elyukai/optolith-client/issues/305)
- Onnodige gevechtsdocumenten worden niet meer gebruikt, het hangt nu af van welke wapenrusting de held heeft. Het gaat standaard naar de normale wapenrusting als er geen wapenrusting aanwezig is. [#407](https://github.com/elyukai/optolith-client/issues/407)
- Je kan nu ook klikken op namen om de regeltekst te zien. [#556](https://github.com/elyukai/optolith-client/issues/556)
### Probleemoplossingen
- Varianten van het beroep *Gewijde van Boron* had verkeerde talent aanpassingen. [#548](https://github.com/elyukai/optolith-client/issues/548)
- Beroep *Witte Tovenaar (Zwaard & Staf)* had een verkeerde AP waarde and een extra talent aanpassing. [#568](https://github.com/elyukai/optolith-client/issues/568)
- Vaste veelvoorkomende beroepen van een kultuur zullen nu getoond worden zelfs al zijn de ze niet van de **Basis Regels**. [#563](https://github.com/elyukai/optolith-client/issues/563)
- The interface kon kleiner gemaakt worden. [#487](https://github.com/elyukai/optolith-client/issues/487)
- Wapens van de gevechtscompetentie *Lans* werden niet getoond op het helden document. [#662](https://github.com/elyukai/optolith-client/issues/662)
- Goede Eigenschappen negeerden het minimum veroorzaakt door hoge talent waarden. De maximum van een talent waarde is het hoogste gerelateerde goede eigenschap&thinsp;+&thinsp;2, dus een goede eigenschap moet een minimum waarde hebben van de hoogste talent waarde &thinsp;&minus;&thinsp;2. [#630](https://github.com/elyukai/optolith-client/issues/630)
- Het nieuwe toepassingsgebeird *Professionele Publicaties* voor het talent *Wet* had een verkeerde Competentie vereiste. [#680](https://github.com/elyukai/optolith-client/issues/680)
- Sommige lijst elementen werden breder dan de eigenlijke lijst. [#683](https://github.com/elyukai/optolith-client/pull/683)
- Lijst hoofdingen werden niet automatisch gecentreerd. [#637](https://github.com/elyukai/optolith-client/issues/637)
- Permantent gespendeerde LP lieten niet toe om extra LP te kopen. [#606](https://github.com/elyukai/optolith-client/issues/606)
- Extra LP konden niet worden gekocht als CO 8 was en er niets van afhing. [#694](https://github.com/elyukai/optolith-client/issues/694)
- Competentie *Aspect Kennis* verscheen niet, zelfs met drie liturgieen op talent waarde 10 of hoger. [#591](https://github.com/elyukai/optolith-client/issues/591)
- Tovertruuk Heksenblik kon worden geselecteerd door alle Tovenaars. [#377](https://github.com/elyukai/optolith-client/issues/377)
- Updater tests en de test voor de update knop zijn nu uitgeschakeld op MacOS want updates zijn momenteel niet mogelijk op MacOS. [#589](https://github.com/elyukai/optolith-client/issues/589)
- Verkeerde toegepaste gevechtscompetentie voor Competentie Vijand Waarnemen. [#658](https://github.com/elyukai/optolith-client/issues/658)
- Auto-update waarschuwingen werden aangezet op Linux, zelfs al was er geen direct auto-update beschikbaar. [#573](https://github.com/elyukai/optolith-client/issues/573)
- Het dialoogvenster voor het exporteren van een teken, omdat JSON de bestandsextensie niet heeft toegevoegd aan de voorgestelde bestandsnaam. [#718](https://github.com/elyukai/optolith-client/issues/718)
### API
Er komen belangijke en brekende veranderingen aan met de volgende release, dus als je Optolith source of data gebruikt, raad ik je aan om naar de [Discord](https://discord.gg/wfdgB9g) te komen zodat ik je in detail kan uitleggen wat er gaat veranderen. Vermits meer en meer mensen afhankelijk zijn van Optolith's data zal ik nu strict versiebeheer volgen zodat je op de compatibiliteit van de sources kan rekenen door het versie nummer te controleren. Er zal een nieuw formaat komen voor de helden en de bron data. Je kan ook feedback geven op de veranderingen, vermits ze nog niet *helemaal* volledig zijn &ndash; maar ik denk dat het zinnig zou zijn om de verandering zo snel mogelijk na te kijken. De volgende versie duurt nog wel even, zodat je voldoende tijd hebt om je software aan te passen.
### Thank you
Tenslotte, maar zeker niet tenminste, een dikke **Dankuwel** voor de volgende mensen op GitHub die bijgedragen hebben tot deze release!
- [Jonas (@Rahjenaos)](https://github.com/Rahjenaos)
- [Jordok (@Jordok)](https://github.com/Jordok)
- [JoveToo (@JoveToo)](https://github.com/JoveToo)
- [Lorenz Cuno Klopfenstein (@LorenzCK)](https://github.com/LorenzCK)
- [manuelstengelberger (@manuelstengelberger)](https://github.com/manuelstengelberger)
- [Philipp A. (@flying-sheep)](https://github.com/flying-sheep)
- [ZeSandman (@ZeSandman)](https://github.com/ZeSandman)
## 1.3.2
### Probleemoplossingen
- Beschrijving van gevechtstechnieken selectie voor beroepsvarianten wordt niet correct getoond. #539
- Beroepen reageerden niet correct op vereisten. #507
- Het tekstveld "Titel" in de persoonlijk data had een verkeerd label. #492
- *Goden & Kulten* was 6 voor de meeste Gewijde beroepen. #475
- Statussen waren te lang op je helden dokument PDF maar niet in Optolith. #473
- De `config.json` had nog altijd fouten voor veel gebruikers. Het probleem zou eindelijk opgelost moeten zijn. #476
- In hele zeldzame situaties werd de helden file geheel of gedeeltelijk verwijderd. Het saven van helden is geheel herschreven en compacter gemaakt om verdere problemen te voorkomen. #477
- Voeg het ontbrekende Garethi dialect *Nostrian* toe. #480
- Vereisten van de Competentie Energie Controle zijn aangepast. #471
- Derde parij licenties zijn aangepast. #471
### Bekende problemen
- Sommige elementen met complexe vereisten worden verkeerd getoont maar wel correct behandeld.
## 1.3.1
### Probleemoplossingen
- In de franse versie kon je geen helden maken, want je kon geen publicaties, ras, ... kiezen #449
- Er werd een error gemeld voor "unknown keys" in de config. #450
- Op je helden document werden staten enkel getoond in een enkele kolom als het aantal staten even was. #448
## 1.3.0
### Nieuwe features
- Franse versie (incl. Regelwerk) #34
### Verbeteringen
- Het zoekveld in de Wiki wordt niet langer gewist als men van categorie wisselt. #286
- Als het importeren van een held mislukt wordt nu gespecifieerd wat het probleem was (incompatibele versie, onbekend bestand, enz.) #343 #394
- Volledig nieuwe databankstructuur. Daardoor 50% snellere laadtijd.
### Probleemoplossingen
- De taaltabel vervormde de lay-out als Hjaldings/Saga-Thorwals actief was. #419
- De teksten bij de persoonlijke data op het heldendocument werden gedeeltelijk beknot. #413
- Het totale gewicht is nu gealigneerd op de het uitrustingsdocument. #291
- Een voorwerp kon niet worden opgenomen als geïmproviseerd wapen. #290
- De infotabel voor routineproeven was niet correct gealigneerd. #214
- Angst voor: keuze/eigen tekst werd niet getoond op het heldendocument. #213
- Men kon geen prenten importeren van een server als karaktertekening. #229
- Het toevoegen van AP werkte niet als men het invoerveld niet verliet. #341
- Wapens die geen schade veroorzaken, tonen niet langer enkel D als schade. #353
- Geen talentvermindering op *Spoorzoeken* meer mogelijk bij jager (Premiejager). #357
- Com *Uithaal* toonde GtW Zwaarden dubbel. #355
- Een geëxporteerde held met een BOM kon niet worden gelezen. #37
- Veranderingen aan voorwerpen konden onder bepaalde omstandigheden niet worden bewaard. #389
- Fout opgelost waarbij het veld "waar gedragen" niet bewaard werd bij voorwerpen. #369
- De maximale waarde voor gevechtstechnieken door de hoofdeigenschap werkt weer. #379
- Typo in ATTRIBUTO (Lichaamskracht), tweede uitbreiding verbeterd. #366
- De toepassingsconfiguratie veroorzaakt geen fouten meer. #358
## 1.2.0
Eerste Nederlandstalige versie.
+53
View File
@@ -0,0 +1,53 @@
## Is er een heldendocument en waar vind ik het?
Ja, er is een heldendocument en je kan het exporteren als PDF! Om dat te doen, moet je eerst je held creatie afmaken. Daarvoor mag je maximum 10 AP overhouden &ndash; en je kan natuurlijk ook niet te veel AP hebben uitgegeven. Als je de helden creatie succesvol beëindigd hebt, zie je een nieuwe tab "Heldendocument" bovenaan. In die tab vind je een preview van je heldendocument en je kan dat exporteren met de knop in de linker boven hoek, "Als PDF bewaren".
Er is enkel een DIN A4 formaat beschikbaar!
## Ik kan geen spreuken of liturgieën toevoegen!
Je mist waarschijnlijk de vereisten om spreuken of liturgieën toe te voegen:
### Spreuken:
- Koop het voordeel *Tovenaar*.
- Koop de magische Competentie *Traditie*
### Liturgieën:
* Koop het voordeel *Gewijde*.
* Koop de gewijde Competentie *Tradition*.
## Ik kan geen hogere invocaties kopen!
Hogere invocatie rituelen hebben vereisten die je in de **Basis regels** kan vinden op pagina **263**:
* Invocatio Minor: Invocatio Minima 10
* Invocatio Maior: Invocatio Minor 12
* Elementale Dienaar: Manifesto 10
* Djinnenroep: Elementale Dienaar 12
## Hoe kan ik extra LP/AE/KP kopen?
Dat hangt er vanaf of je nog in de creatie fase bent of die al beeindigd hebt:
* *Tijdens helden creatie* kan je extra LP/AE/KP kopen via de voordelen *Hoge Levenskracht/Astrale Kracht/Karmale Kracht I-VII*. Als je daarin geïnteresseerd bent, kan je die best nu nemen want je kan normaal geen Voordelen bijkopen als deze fase beëindigd is.
* *Na de helden creatie*, om extra LP/AE/KP toe te voegen, gebruik je de &raquo;+&laquo; knop onder de respectivelijk energie in the *Eigenschappen* tab. De maximale waarden hiervoor worden berekend volgens de regels van de **Basis Regels** p. **350&ndash;352**.
## Waar vind ik mijn opgeslagen helden?
Helden en andere files zoals de configuratie kan je vinden in de volgende locatie, afhankelijk van je OS:
- *Windows:* `C:/Users/<User>/AppData/Roaming/Optolith`, met `<User>` de naam van je gebruiker
- *Linux:* `$XDG_CONFIG_HOME/Optolith` of `~/.config/Optolith`
- *macOS:* `~/Library/Application Support/Optolith`
Een lijst met relevante files:
- `heroes.json ` bevat alle helden opgeslagen in Optolith
- `config.json` bevat de configuratie van Optolith. Het bevat geen kritieke data maar dingen zoals theme, taal (alleen als je een specifieke taal gekozen hebt) en zoverder.
*Een noot voor Windows:* `AppData` is een *verborgen* folder. Om die te kunnen zien, open Windows Explorere, ga naar de "View" tab en activeer de setting "Hidden elements".
## Hoe schaal ik de UI voor Optolith in Linux?
Als je de `.tar.gz` hebt gedownload, ga je naar de uitgepakte folder en start je `GDK_DPI_SCALE=<Scale> ./Optolith` in je terminal, waarbij je `<scale>` moet vervangen met de gewenste schaal, e.g. `1.5`.
+16
View File
@@ -0,0 +1,16 @@
## 1.5.1
### 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))
* 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.0
Lançamento inicial.
+49
View File
@@ -0,0 +1,49 @@
## Is there a character sheet and where can I find it?
Yes, there is a character sheet you can export as a PDF! To do that, you have to end hero creation in the character's profile first. To do *that*, you need to have a maximum of 10 AP left &ndash; and you can't have too much AP spent, obviously. If you end it, you'll see the new tab *Character Sheet* above. In that tab you'll get a preview of your sheet and then you can export it via the button in the top left corner!
Might be relevant: There's only an DIN A4 version available!
## I can't add spells or liturgical chants!
It's likely you do not meet the prerequisites for adding spells or liturgical chants:
### Spells:
- Buy advantage *Spellcaster*.
- Buy the magical special ability *Tradition*.
### Liturgical Chants:
* Buy advantage *Blessed One*.
* Buy the blessed special ability *Tradition*.
## I can't buy stronger invocations!
Stronger invocation rituals have prerequisites that you can find in the **Core Rules** on page **263**:
* Invocatio Minor: Invocatio Minima 10
* Invocatio Maior: Invocatio Minor 12
* Elemental Servant: Manifesto 10
* Call Djinn: Elemental Servant 12
## How can I buy additional LP/AE/KP?
That depends on whether you are still in hero creation phase or have completed that.
* *During hero creation* you can add additional LP/AE/KP via the advantages *Increased Life Points/Arcane Power/Karma Points I-VII*. You should use them if you are interested in higher values because you can usually not buy advantages afterwards!
* *After hero creation*, to add additional LP/AE/KP, use the &raquo;+&laquo; button below the respective energy in the *Attributes* tab. The maximum values for these are calculated by using the rules from the **Core Rules** p. **350&ndash;352**.
## Where do I find my saved characters?
Characters and other files such as the application configuration can be found at the following locations, depending on the OS you use:
- *Windows:* `C:/Users/<User>/AppData/Roaming/Optolith`, where `<User>` is the name of your user folder
- *Linux:* `$XDG_CONFIG_HOME/Optolith` or `~/.config/Optolith`
- *macOS:* `~/Library/Application Support/Optolith`
A list of relevant files:
- `heroes.json ` contains all heroes saved in Optolith
- `config.json` contains the configuration of your Optolith. It does not contain critical data but things like color theme, language (only if you selected a specific one) and alike.
*A note on Windows:* `AppData` is a *hidden* folder. To be able to see it, check out the Windows Explorer, go to the *View* tab and activate the setting *Hidden elements*.
+34
View File
@@ -0,0 +1,34 @@
export interface RawConfig {
herolistSortOrder: "name" | "datemodified" | "dateModified"
herolistVisibilityFilter: "all" | "own" | "shared"
racesSortOrder: "name" | "cost"
racesValueVisibility?: boolean
culturesSortOrder: "name" | "cost"
culturesVisibilityFilter: "all" | "common"
culturesValueVisibility?: boolean
professionsSortOrder: "name" | "cost"
professionsVisibilityFilter: "all" | "common"
professionsGroupVisibilityFilter: 0 | 1 | 2 | 3
professionsFromExpansionsVisibility?: boolean
advantagesDisadvantagesCultureRatingVisibility: boolean
talentsSortOrder: "name" | "group" | "ic"
talentsCultureRatingVisibility: boolean
combatTechniquesSortOrder: "name" | "group" | "ic"
specialAbilitiesSortOrder: "name" | "group" | "groupname"
spellsSortOrder: "name" | "group" | "property" | "ic"
spellsUnfamiliarVisibility: boolean
liturgiesSortOrder: "name" | "group" | "ic"
equipmentSortOrder: "name" | "groupname" | "where" | "weight"
equipmentGroupVisibilityFilter: number
sheetCheckAttributeValueVisibility?: boolean
sheetUseParchment?: boolean
sheetZoomFactor?: number
enableActiveItemHints: boolean
locale?: string
fallbackLocale?: string
theme?: "light" | "dark"
enableEditingHeroAfterCreationPhase?: boolean
meleeItemTemplatesCombatTechniqueFilter?: string
rangedItemTemplatesCombatTechniqueFilter?: string
enableAnimations?: boolean
}
+131
View File
@@ -0,0 +1,131 @@
{
"$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
}
}
}
+28
View File
@@ -0,0 +1,28 @@
export type RawHero = RawHeroBase & { [key: string]: any }
export interface RawHeroBase {
/**
* A date in milliseconds with the \"H_\" prefix.
*/
readonly id: string
/**
* The name of the hero.
*/
readonly name: string
/**
* The client version the hero was created with.
*/
readonly dateCreated: string
/**
* The date of creation.
*/
readonly dateModified: string
/**
* The date of last modification.
*/
readonly clientVersion: string
}
+387
View File
@@ -0,0 +1,387 @@
export interface RawHero {
/**
* A date in milliseconds with the `H_` prefix.
*/
id: string
/**
* The name of the hero.
*/
name: string
/**
* The date of creation.
*/
dateCreated: string
/**
* The date of last modification.
*/
dateModified: string
/**
* The client version the hero was created with.
*/
clientVersion: string
/**
* The locale the hero was created with.
*/
locale?: string
/**
* A path to an image or a base64-encoded image.
*/
avatar?: string
/**
* The adventure points.
*/
ap: {
/**
* The amount of total AP.
*/
total: number
}
/**
* The selected race's ID.
*/
r?: string
/**
* The selected race variant's ID.
*/
rv?: string
/**
* The selected culture's ID.
*/
c?: string
/**
* Has the cultural package been activated?
*/
isCulturalPackageActive?: boolean
/**
* The selected profession's ID.
*/
p?: string
/**
* The changed profession name for a Custom Profession.
*/
professionName?: string
/**
* The selected profession variant's ID.
*/
pv?: string
/**
* The selected sex.
*/
sex: "m" | "f"
/**
* The rules defined for this hero.
*/
rules: {
/**
* Optional Rule Higher Parade Values. `0` means inactive.
*/
higherParadeValues: number
/**
* Optional Rule Attribute Value Limit.
*/
attributeValueLimit: boolean
/**
* If all rule books except those with adult content are enabled.
*/
enableAllRuleBooks?: boolean
/**
* Explicitly enabled rule books.
*/
enabledRuleBooks?: string[]
/**
* Optional Rule Language Specializations
*/
enableLanguageSpecializations: boolean
}
/**
* The creation phase. `1` is RCP selection, `2` standard hero creation and
* `3` after hero creation.
*/
phase: number
/**
* Personal Data
*/
pers: {
family?: string
placeofbirth?: string
dateofbirth?: string
age?: string
haircolor?: number
eyecolor?: number
size?: string
weight?: string
title?: string
socialstatus?: number
characteristics?: string
otherinfo?: string
cultureAreaKnowledge?: string
}
/**
* A dictionary of active advantages, disadvantages and special abilities,
* where the key is the ID of the entry and the value are the options.
*/
activatable: {
[id: string]: {
sid?: string | number
sid2?: string | number
sid3?: string | number
tier?: number
cost?: number
}[]
}
/**
* Attributes and energy settings. Either the older version with attribute
* values as tuples or the newer version with objects as attribute values and
* a separate value for the selected attribute with adjustment.
*/
attr: {
/**
* An array of attribute tuples. The first elememt is the ID, the second the
* value and the third the attribute adjustment.
*/
values: [string, number, number][]
lp: number
ae: number
kp: number
permanentLP?: {
lost: number
}
permanentAE: {
lost: number
redeemed: number
}
permanentKP: {
lost: number
redeemed: number
}
} | {
/**
* The list of attributes and their values.
*/
values: { id: string; value: number }[]
attributeAdjustmentSelected: string
lp: number
ae: number
kp: number
permanentLP?: {
lost: number
}
permanentAE: {
lost: number
redeemed: number
}
permanentKP: {
lost: number
redeemed: number
}
}
/**
* A dictionary of active skills, where the key is the ID of the skill and the
* value is the SR.
*/
talents: { [id: string]: number }
/**
* A dictionary of active combat techniques, where the key is the ID of the
* combat technique and the value is the CtR.
*/
ct: { [id: string]: number }
/**
* A dictionary of active spells, where the key is the ID of the spell and the
* value is the SR. A spell listed here is always activated, all others are
* inactive.
*/
spells: { [id: string]: number }
/**
* Activated cantrips by ID.
*/
cantrips: string[]
/**
* A dictionary of active liturgical chants, where the key is the ID of the
* liturgical chant and the value is the SR. A liturgical chant listed here is
* always activated, all others are inactive.
*/
liturgies: { [id: string]: number }
/**
* Activated blessings by ID.
*/
blessings: string[]
/**
* The belongings of the hero.
*/
belongings: {
/**
* A dictionary of items, where the key is the ID of the item and the value
* are the item's values.
*/
items: {
[id: string]: {
id: string
price?: number
weight?: number
template?: string
imp?: number
gr: number
combatTechnique?: string
damageDiceNumber?: number
damageDiceSides?: number
damageFlat?: number
primaryThreshold?: {
/**
* May be either `string` (before `1.3.0-alpha.2`) or
* `string | [string, string]`.
*/
primary?: string | [string, string]
threshold: number | number[]
}
at?: number
pa?: number
reach?: number
length?: number
/**
* May be either `string | number` (before `1.1.0-alpha.9`), `string`
* (before `1.3.0-alpha.2`) or `number | number[]`.
*/
stp?: string | number | number[]
range?: number[]
/**
* May be either `string | number` (before `1.1.0-alpha.9`), `string`
* (before `1.3.0-alpha.2`) or `number | number[]`.
*/
reloadTime?: string | number | number[]
ammunition?: string
pro?: number
enc?: number
addPenalties?: boolean
isParryingWeapon?: boolean
isTwoHandedWeapon?: boolean
armorType?: number
iniMod?: number
movMod?: number
stabilityMod?: number
name: string
amount: number
isTemplateLocked: boolean
loss?: number
forArmorZoneOnly?: boolean
where?: string
}
}
/**
* A dictionary of hit zone armors, where the key is the ID of the hit zone
* armor and the value are the hit zone armor's values.
*/
armorZones?: {
[id: string]: {
id: string
name: string
head?: string
headLoss?: number
leftArm?: string
leftArmLoss?: number
rightArm?: string
rightArmLoss?: number
torso?: string
torsoLoss?: number
leftLeg?: string
leftLegLoss?: number
rightLeg?: string
rightLegLoss?: number
}
}
/**
* The money of the hero.
*/
purse: {
d: string
s: string
h: string
k: string
}
}
/**
* A dictionary of pets, where the key is the ID of the pet and the value are
* the pet's values.
*/
pets?: {
[id: string]: {
id: string
name: string
avatar?: string
size?: string
type?: string
attack?: string
dp?: string
reach?: string
actions?: string
talents?: string
skills?: string
notes?: string
spentAp?: string
totalAp?: string
cou?: string
sgc?: string
int?: string
cha?: string
dex?: string
agi?: string
con?: string
str?: string
lp?: string
ae?: string
spi?: string
tou?: string
pro?: string
ini?: string
mov?: string
at?: string
pa?: string
}
}
/**
* The pact, if applicable.
*/
pact?: {
category: number
level: number
type: number
domain: number | string
name: string
}
}
@@ -0,0 +1,466 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "Schema/Hero/Hero.l10n.schema.json",
"$ref": "#/definitions/Hero",
"definitions": {
"Hero": {
"title": "RawHeroBase",
"type": "object",
"properties": {
"id": {
"description": "A date in milliseconds with the \"H_\" prefix.",
"type": "string",
"pattern": "^H_[1-9]\\d*$"
},
"name": {
"description": "The name of the hero.",
"type": "string",
"minLength": 1
},
"clientVersion": {
"description": "The client version the hero was created with.",
"type": "string",
"minLength": 1,
"pattern": "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(\\w+)\\.(0|[1-9]\\d*))?"
},
"dateCreated": {
"description": "The date of creation.",
"type": "string",
"minLength": 1,
"format": "date-time"
},
"dateModified": {
"description": "The date of last modification.",
"type": "string",
"minLength": 1,
"format": "date-time"
},
"locale": {
"description": "The locale the hero was created with.",
"type": "string",
"pattern": "^[a-z]\\-[A-Z]$"
},
"avatar": {
"description": "A path to an image or a base64-encoded image.",
"type": "string",
"minLength": 1
},
"ap": {
"description": "A path to an image or a base64-encoded image.",
"type": "object",
"properties": {
"total": {
"description": "The amount of total AP.",
"type": "number",
"minimum": 1
}
},
"required": ["total"]
},
"r": {
"description": "The selected race's ID.",
"type": "string",
"pattern": "^R_[1-9]\\d*$"
},
"rv": {
"description": "The selected race variant's ID.",
"type": "string",
"pattern": "^RV_[1-9]\\d*$"
},
"c": {
"description": "The selected culture's ID.",
"type": "string",
"pattern": "^C_[1-9]\\d*$"
},
"isCulturalPackageActive": {
"description": "Has the cultural package been activated?",
"type": "boolean"
},
"p": {
"description": "The selected profession's ID.",
"type": "string",
"pattern": "^P_[1-9]\\d*$"
},
"professionName": {
"description": "The changed profession name for a Custom Profession.",
"type": "string",
"minLength": 1
},
"pv": {
"description": "The selected profession variant's ID.",
"type": "string",
"pattern": "^PV_[1-9]\\d*$"
},
"sex": {
"description": "The selected sex.",
"type": "string",
"enum": ["m", "f"]
},
"rules": {
"description": "The rules defined for this hero.",
"type": "object",
"properties": {
"higherParadeValues": {
"description": "Optional Rule Higher Parade Values. `0` means inactive.",
"type": "number",
"enum": [0, 2, 4]
},
"attributeValueLimit": {
"description": "Optional Rule Attribute Value Limit.",
"type": "boolean"
},
"enableAllRuleBooks": {
"description": "If all rule books except those with adult content are enabled.",
"type": "boolean"
},
"enabledRuleBooks": {
"description": "Explicitly enabled rule books.",
"type": "array",
"items": {
"description": "A book ID.",
"type": "string",
"minLength": 1
}
},
"enableLanguageSpecializations": {
"description": "Optional Rule Language Specializations",
"type": "boolean"
}
},
"required": [
"higherParadeValues",
"attributeValueLimit",
"enableLanguageSpecializations"
]
},
"phase": {
"description": "The creation phase. `1` is RCP selection, `2` standard hero creation and `3` after hero creation.",
"type": "integer",
"minimum": 1,
"maximum": 3
},
"el": {
"description": "The selected experience level's ID.",
"type": "string",
"pattern": "^EL_[1-9]\\d*$"
},
"pers": {
"description": "Personal Data",
"type": "object",
"properties": {
"family": { "type": "string", "minLength": 1 },
"placeofbirth": { "type": "string", "minLength": 1 },
"dateofbirth": { "type": "string", "minLength": 1 },
"age": { "type": "string", "minLength": 1 },
"haircolor": { "type": "string", "minLength": 1 },
"eyecolor": { "type": "string", "minLength": 1 },
"size": { "type": "string", "minLength": 1 },
"weight": { "type": "string", "minLength": 1 },
"title": { "type": "string", "minLength": 1 },
"socialstatus": { "type": "number", "minimum": 1, "maximum": 5 },
"characteristics": { "type": "string", "minLength": 1 },
"otherinfo": { "type": "string", "minLength": 1 },
"cultureAreaKnowledge": { "type": "string", "minLength": 1 }
}
},
"activatable": {
"description": "A dictionary of active advantages, disadvantages and special abilities, where the key is the ID of the entry and the value are the options.",
"type": "object",
"patternProperties": {
"^(ADV|DISADV|SA)_[1-9]\\d*$": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sid": {
"oneOf": [
{ "type": "string", "minLength": 1, "pattern": "^[A-Z]+_[1-9]\\d*$" },
{ "type": "integer", "minimum": 1 }
]
},
"sid2": {
"oneOf": [
{ "type": "string", "minLength": 1, "pattern": "^[A-Z]+_[1-9]\\d*$" },
{ "type": "integer", "minimum": 1 }
]
},
"sid3": {
"oneOf": [
{ "type": "string", "minLength": 1, "pattern": "^[A-Z]+_[1-9]\\d*$" },
{ "type": "integer", "minimum": 1 }
]
},
"tier": { "type": "integer", "minimum": 1 },
"cost": { "type": "integer", "minimum": 0 }
}
}
}
},
"additionalProperties": false
},
"attr": {
"description": "Attributes and energy settings. Either the older version with attribute values as tuples or the newer version with objects as attribute values and a separate value for the selected attribute with adjustment.",
"oneOf": [
{
"type": "object",
"properties": {
"values": {
"description": "An array of attribute tuples. The first elememt is the ID, the second the value and the third the attribute adjustment.",
"type": "array",
"items": [
{
"description": "The attribute's ID.",
"type": "string",
"pattern": "^ATTR_[1-9]\\d*$"
},
{
"type": "integer",
"minimum": 8
},
{
"type": "integer"
}
]
},
"lp": { "type": "integer", "minimum": 0 },
"ae": { "type": "integer", "minimum": 0 },
"kp": { "type": "integer", "minimum": 0 },
"permanentLP": {
"type": "object",
"properties": {
"lost": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"permanentAE": {
"type": "object",
"properties": {
"lost": {
"type": "integer",
"minimum": 0
},
"redeemed": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"permanentKP": {
"type": "object",
"properties": {
"lost": {
"type": "integer",
"minimum": 0
},
"redeemed": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
},
"required": [
"values",
"lp",
"ae",
"kp",
"permanentAE",
"permanentKP"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"values": {
"description": "The list of attributes and their values.",
"type": "object",
"properties": {
"id": {
"description": "The attribute's ID.",
"type": "string",
"pattern": "^ATTR_[1-9]\\d*$"
},
"value": {
"type": "integer",
"minimum": 8
}
},
"additionalProperties": false
},
"attributeAdjustmentSelected": {
"type": "string",
"pattern": "^ATTR_[1-9]\\d*$"
},
"lp": { "type": "integer", "minimum": 0 },
"ae": { "type": "integer", "minimum": 0 },
"kp": { "type": "integer", "minimum": 0 },
"permanentLP": {
"type": "object",
"properties": {
"lost": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"permanentAE": {
"type": "object",
"properties": {
"lost": {
"type": "integer",
"minimum": 0
},
"redeemed": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"permanentKP": {
"type": "object",
"properties": {
"lost": {
"type": "integer",
"minimum": 0
},
"redeemed": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
},
"required": [
"values",
"attributeAdjustmentSelected",
"lp",
"ae",
"kp",
"permanentAE",
"permanentKP"
],
"additionalProperties": false
}
]
},
"talents": {
"description": "A dictionary of active skills, where the key is the ID of the skill and the value is the SR.",
"type": "object",
"patternProperties": {
"^TAL_[1-9]\\d*$": { "type": "integer", "minimum": 0 }
},
"additionalProperties": false
},
"ct": {
"description": "A dictionary of active combat techniques, where the key is the ID of the combat technique and the value is the CtR.",
"type": "object",
"patternProperties": {
"^CT_[1-9]\\d*$": { "type": "integer", "minimum": 0 }
},
"additionalProperties": false
},
"spells": {
"description": "A dictionary of active spells, where the key is the ID of the spell and the value is the SR. A spell listed here is always activated, all others are inactive.",
"type": "object",
"patternProperties": {
"^CT_[1-9]\\d*$": { "type": "integer", "minimum": 0 }
},
"additionalProperties": false
},
"cantrips": {
"description": "Activated cantrips by ID.",
"type": "array",
"items": {
"type": "string",
"pattern": "^CANTRIP_[1-9]\\d*$"
}
},
"liturgies": {
"description": "A dictionary of active liturgical chants, where the key is the ID of the liturgical chant and the value is the SR. A liturgical chant listed here is always activated, all others are inactive.",
"type": "object",
"patternProperties": {
"^LITURGY_[1-9]\\d*$": { "type": "integer", "minimum": 0 }
},
"additionalProperties": false
},
"blessings": {
"description": "Activated blessings by ID.",
"type": "array",
"items": {
"type": "string",
"pattern": "^BLESSING_[1-9]\\d*$"
}
},
"belongings": {
"description": "The belongings of the hero.",
"type": "object",
"properties": {
"items": {
"description": "A dictionary of items, where the key is the ID of the item and the value are the item's values.",
"type": "object",
"patternProperties": {
"^ITEM_[1-9]\\d*$": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ITEM_[1-9]\\d*$"
},
"price": {
"type": "number",
"minimum": 0
},
"weight": {
"type": "number",
"minimum": 0
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"items"
],
"additionalProperties": false
}
},
"required": [
"id",
"name",
"clientVersion",
"dateCreated",
"dateModified",
"ap",
"sex",
"rules",
"phase",
"el",
"pers",
"activatable",
"attr",
"talents",
"ct",
"spells",
"cantrips",
"liturgies",
"blessings"
],
"additionalProperties": false
}
}
}
+43
View File
@@ -0,0 +1,43 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "Schema/Hero/Hero.l10n.schema.json",
"$ref": "#/definitions/Hero",
"definitions": {
"Hero": {
"title": "RawHeroBase",
"type": "object",
"properties": {
"id": {
"description": "A date in milliseconds with the \"H_\" prefix.",
"type": "string",
"pattern": "^H_[1-9]\\d*$"
},
"name": {
"description": "The name of the hero.",
"type": "string",
"minLength": 1
},
"clientVersion": {
"description": "The client version the hero was created with.",
"type": "string",
"minLength": 1,
"pattern": "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(\\w+)\\.(0|[1-9]\\d*))?"
},
"dateCreated": {
"description": "The date of creation.",
"type": "string",
"minLength": 1,
"format": "date-time"
},
"dateModified": {
"description": "The date of last modification.",
"type": "string",
"minLength": 1,
"format": "date-time"
}
},
"required": ["id", "name", "clientVersion", "dateCreated", "dateModified"],
"additionalProperties": true
}
}
}
-1
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

-2
View File
@@ -1,2 +0,0 @@
require = require('esm')(module)
require('./main.js')
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
+51
View File
@@ -0,0 +1,51 @@
{
"name": "optolith-client",
"version": "0.1.0",
"sources": [
{ "dir": "deploy" },
{ "dir": "src" },
{ "dir": "src/App/Actions" },
{ "dir": "src/App/Constants" },
{ "dir": "src/App/Containers" },
{ "dir": "src/App/Models" },
{ "dir": "src/App/Reducers" },
{ "dir": "src/App/Selectors" },
{ "dir": "src/App/Utilities" },
{ "dir": "src/App/Utilities/__tests__", "type": "dev" },
{ "dir": "src/App/Utilities/YAML" },
{ "dir": "src/App/Views" },
{ "dir": "src/App/Views/Universal" },
{ "dir": "src/Control" },
{ "dir": "src/Data" },
{ "dir": "src/Data/__tests__", "type": "dev" },
{ "dir": "src/Debug" },
{ "dir": "src/System" },
{ "dir": "src/shims" }
],
"package-specs": {
"module": "commonjs",
"in-source": true
},
"suffix": ".bs.js",
"bs-dependencies": [
"@glennsl/bs-json",
"@glennsl/bs-jest",
"reason-react"
],
"reason": {
"react-jsx": 3
},
"warnings": {
"error" : "+101"
},
"namespace": true,
"refmt": 3,
"gentypeconfig": {
"module": "commonjs",
"language": "typescript",
"shims": {
"Js": "Js",
"ReasonPervasives": "ReasonPervasives"
}
}
}
-89
View File
@@ -1,89 +0,0 @@
// @ts-check
const builder = require ("electron-builder")
module.exports = {
buildWindows:
() => {
console.log ("Building Optolith for Windows...")
builder
.build ({ config, targets: builder.Platform.WINDOWS.createTarget () })
.then (() => console.log ("Optolith Build for Windows successful."))
.catch (err => console.error (err))
},
buildLinux:
() => {
console.log ("Building Optolith for Linux...")
builder
.build ({ config, targets: builder.Platform.LINUX.createTarget () })
.then (() => console.log ("Optolith Build for Linux successful."))
.catch (err => console.error (err))
},
buildMac:
() => {
console.log ("Building Optolith for Linux...")
builder
.build ({ config, targets: builder.Platform.MAC.createTarget () })
.then (() => console.log ("Optolith Build for Linux successful."))
.catch (err => console.error (err))
},
}
/**
* @type {import ("electron-builder") .Configuration}
*/
const config = {
appId: "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.",
files: [
"app/**/*",
"CHANGELOG.md"
],
win: {
target: [
{
target: "nsis",
arch: [
"x64",
"ia32"
]
}
],
icon: "app/icon.ico",
artifactName: "OptolithSetup_${version}.${ext}"
},
nsis: {
perMachine: true,
differentialPackage: true
},
linux: {
category: "RolePlaying",
executableName: "Optolith",
icon: "app",
target: [
{
target: "AppImage",
arch: [
"x64"
]
}
],
artifactName: "Optolith_${version}_${arch}.${ext}"
},
mac: {
category: "public.app-category.role-playing-games",
type: "distribution",
icon: "app/icon.icns",
target: "default",
artifactName: "Optolith_${version}.${ext}"
},
publish: {
provider: "generic",
url: "http://update.optolith.app/${os}",
channel: "latest"
},
}
-109
View File
@@ -1,109 +0,0 @@
// @ts-check
const builder = require ("electron-builder")
const { promises: { copyFile }, existsSync } = require ("fs")
const { join } = require ("path")
const src_dir = join ("..", "..", "OneDrive", "TDE app", "data" , "insider")
const copyL10nTable =
async locale => {
const src = join (src_dir, `TDE5_${locale}.xlsx`)
if (existsSync (src)) {
await copyFile (src, join ("app", "Database", locale, "l10n.xlsx"))
console.log (`"TDE5_${locale}.xlsx" copied to "${join (locale, "l10n.xlsx")}"!`)
}
}
const copyTables =
async () => {
await copyFile (join (src_dir, `TDE5.xlsx`), join ("app", "Database", "univ.xlsx"))
console.log (`"TDE5.xlsx" copied to "univ.xlsx"!`)
await copyL10nTable ("de-DE")
await copyL10nTable ("en-US")
await copyL10nTable ("nl-BE")
await copyL10nTable ("fr-FR")
}
module.exports = {
buildWindows:
async () => {
console.log ("Copy most recent tables...")
await copyTables ()
console.log ("Building Optolith Insider for Windows...")
builder
.build ({ config, targets: builder.Platform.WINDOWS.createTarget () })
.then (() => console.log ("Optolith Insider Build for Windows successful."))
.catch (err => console.error (err))
},
buildLinux:
async () => {
console.log ("Copy most recent tables...")
await copyTables ()
console.log ("Building Optolith Insider for Linux...")
builder
.build ({ config, targets: builder.Platform.LINUX.createTarget () })
.then (() => console.log ("Optolith Insider Build for Linux successful."))
.catch (err => console.error (err))
},
}
/**
* @type {import ("electron-builder") .Configuration}
*/
const config = {
appId: "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.",
directories: {
output: "dist/insider"
},
files: [
"app/**/*",
"CHANGELOG.md"
],
asarUnpack: "app/Database/**/*",
win: {
target: [
{
target: "nsis",
arch: [
"x64",
"ia32"
]
}
],
icon: "app/icon.ico",
artifactName: "OptolithInsiderSetup_${version}.${ext}"
},
nsis: {
perMachine: true,
differentialPackage: true
},
linux: {
category: "RolePlaying",
executableName: "OptolithInsider",
icon: "app",
target: [
{
target: "AppImage",
arch: [
"x64"
]
}
],
artifactName: "OptolithInsider_${version}.${ext}"
},
publish: {
provider: "generic",
url: "http://update.optolith.app/insider/${os}",
channel: "latest"
},
}
-1
View File
@@ -1 +0,0 @@
require ("./buildInsider.js") .buildLinux ()
-1
View File
@@ -1 +0,0 @@
require ("./buildInsider.js") .buildWindows ()
-1
View File
@@ -1 +0,0 @@
require ("./build.js") .buildLinux ()
-1
View File
@@ -1 +0,0 @@
require ("./build.js") .buildMac ()
-18
View File
@@ -1,18 +0,0 @@
import { writeFile } from 'fs';
import sass from 'sass';
sass .render (
{ file: 'src/Main.scss', outputStyle: 'compressed' },
(err, result) => {
if (err) {
throw err;
}
writeFile ('app/main.css', result.css, err => {
if (err) {
throw err;
}
console.log('SCSS successfully bundled!');
})
})
-1
View File
@@ -1 +0,0 @@
require ("./build.js") .buildWindows ()
-7
View File
@@ -1,7 +0,0 @@
tsc node_modules/react-gemini-scrollbar/src/index.jsx --outDir node_modules/react-gemini-scrollbar/dist --allowJs --jsx React
const (_\w+) = (\(.*\)) => AppDispatcher\.dispatch<(\w+)>\(
function $1$2: $3 {\n\treturn
^\}\);
\t};\n}
Binary file not shown.
+52
View File
@@ -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"
}
}
+83
View File
@@ -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: "© 2017present 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
+27
View File
@@ -0,0 +1,27 @@
// @ts-check
import builder from "electron-builder"
import { getSystem } from "./platform.mjs"
const [channel] = process.argv.slice(2)
if (channel !== "stable" && channel !== "prerelease") {
throw new TypeError (`publishToServer requires a specified channel ("stable" or "prerelease"), but it received ${channel}`)
}
const config =
channel === "prerelease"
? (await import("./build.prerelease.config.mjs")).default
: (await import("./build.config.mjs")).default
process.on ('unhandledRejection', error => {
throw new Error(`Unhandled promise rejection: ${/** @type {Error} */ (error).toString ()}`)
})
const os = getSystem()
const plaformKey = os === "linux" ? "LINUX" : os === "mac" ? "MAC" : "WINDOWS"
await builder.build({
config,
targets: builder.Platform[plaformKey].createTarget(),
})
+84
View File
@@ -0,0 +1,84 @@
// @ts-check
import { notarize } from "./notarize.mjs"
/**
* @type {import ("electron-builder") .Configuration}
*/
const config = {
appId: "com.lukasobermann.optolithinsider",
productName: "Optolith Insider",
copyright: "© 2017present 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"
},
files: [
"app/**/*",
"LICENSE"
],
asarUnpack: "app/Database/**/*",
win: {
target: [
{
target: "nsis",
arch: [
"x64",
"ia32"
]
}
],
icon: "app/icon.ico",
artifactName: "OptolithInsiderSetup_${version}.${ext}"
},
nsis: {
perMachine: true,
differentialPackage: true,
deleteAppDataOnUninstall: false,
},
linux: {
category: "RolePlaying",
executableName: "OptolithInsider",
icon: "app",
target: [
{
target: "AppImage",
arch: [
"x64"
]
},
{
target: "tar.gz",
arch: [
"x64"
]
}
],
artifactName: "OptolithInsider_${version}.${ext}"
},
mac: {
category: "public.app-category.role-playing-games",
type: "distribution",
icon: "app/icon.icns",
target: [
{
target: "default",
arch: "universal"
}
],
artifactName: "OptolithInsider_${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}/insider/\${os}`,
"channel": "latest"
},
afterSign: notarize,
}
export default config
+52
View File
@@ -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.`)
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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-jit</key>
<true/>
<key>com.apple.security.cs.debugger</key>
<true/>
</dict>
</plist>
+12
View File
@@ -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")
}
}
+25
View File
@@ -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`)
}
}
+25
View File
@@ -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"
}
}
+41
View File
@@ -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}.`);
}
+31
View File
@@ -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))
+18
View File
@@ -0,0 +1,18 @@
# Deployment
## Necessary environment variables in Travis
- `OPTOLITH_KEY`: Key to decrypt tables
<!-- - `CSC_LINK`: base64-encoded certificate to sign for macOS
- `CSC_KEY_PASSWORD`: Password to decrypt certificate
- `APPLEID`: Apple ID used to notarize macOS app
- `APPLEIDPASS`: Application-specific Apple ID password -->
## Necessary environment variables in Node
- `HOST`: Server
- `USER`: User on server
- `PASSWORD`: Password for user on server
- `PUBLISH_URL`: Download URL for stable versions
- `PUBLISH_URL_INSIDER`: Download URL for insider versions
+11
View File
@@ -0,0 +1,11 @@
// @ts-check
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
preset: "ts-jest",
testEnvironment: "node",
globals: {
"ts-jest": {
tsconfig: "tsconfig.test.json"
}
}
}
+24463 -6443
View File
File diff suppressed because it is too large Load Diff
+83 -68
View File
@@ -1,91 +1,106 @@
{
"name": "optolith",
"productName": "Optolith Insider",
"version": "1.1.0-alpha.17",
"productName": "Optolith",
"version": "1.5.2",
"description": "A generator for heroes for the P&P-RPG 'The Dark Eye'.",
"author": {
"name": "Lukas Obermann",
"email": "support@optolith.app"
},
"homepage": "https://github.com/Elytherion/tdeheroes",
"license": "GPL-3.0",
"main": "app/index.js",
"homepage": "https://optolith.app",
"license": "MPL-2.0",
"main": "app/main.js",
"dependencies": {
"classnames": "2.2.6",
"electron-localshortcut": "3.1.0",
"electron-log": "3.0.5",
"electron-updater": "4.0.6",
"@electron/remote": "^2.0.8",
"adm-zip": "^0.5.1",
"ajv": "6.12.6",
"electron-devtools-installer": "^3.2.1",
"electron-log": "^4.4.8",
"electron-updater": "^5.0.5",
"electron-window-state": "5.0.3",
"esm": "3.2.25",
"react": "16.8.6",
"moment": "^2.29.4",
"mousetrap": "1.6.5",
"react": "16.13.1",
"react-custom-scrollbars": "4.2.1",
"react-dom": "16.8.6",
"react-markdown": "4.0.8",
"react-portal": "4.2.0",
"react-redux": "6.0.1",
"react-dom": "16.13.1",
"react-markdown": "^8.0.0",
"react-portal": "4.2.1",
"react-redux": "7.2.1",
"react-textfit": "1.1.0",
"redux": "4.0.1",
"redux": "4.0.5",
"redux-devtools-extension": "2.13.8",
"redux-thunk": "2.3.0",
"remark-breaks": "1.0.2",
"rehype-raw": "^5.1.0",
"remark-breaks": "^2.0.2",
"remark-gfm": "^3.0.1",
"reselect": "4.0.0",
"semver": "6.0.0",
"styled-components": "4.2.0",
"tslib": "1.9.3",
"xlsx": "0.14.2"
"semver": "7.3.2",
"tslib": "^2.3.1",
"yaml": "1.10.0"
},
"devDependencies": {
"@types/classnames": "2.2.7",
"@types/jest": "24.0.11",
"@types/node": "11.13.7",
"@types/react": "16.8.14",
"@types/react-custom-scrollbars": "4.0.5",
"@types/react-dom": "16.8.4",
"@commitlint/cli": "11.0.0",
"@commitlint/config-conventional": "11.0.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/react-redux": "7.0.8",
"@types/semver": "6.0.0",
"@types/styled-components": "4.1.15",
"electron": "5.0.2",
"electron-builder": "20.40.2",
"eslint": "4.19.1",
"eslint-plugin-tslint": "2.1.0",
"eslint-plugin-typescript": "0.12.0",
"jest": "24.7.1",
"madge": "3.4.4",
"sass": "1.20.1",
"ts-jest": "24.0.2",
"tslint": "5.14.0",
"tslint-eslint-rules": "5.4.0",
"typescript": "3.4.5",
"typescript-eslint-parser": "16.0.0",
"typescript-tslint-plugin": "0.3.1"
"@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": "^19.0.8",
"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": "^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"
},
"scripts": {
"buildInsiderWin": "node ./buildInsiderWin.js",
"buildInsiderLinux": "node ./buildInsiderLinux.js",
"buildWin": "node ./buildWin.js",
"buildLinux": "node ./buildLinux.js",
"buildMac": "node ./buildMac.js",
"buildCss": "node --experimental-modules buildSass.mjs",
"compile": "tsc",
"watch": "tsc --watch",
"prerelease:win": "set NODE_ENV=development && node ./deploy/buildInsiderWin.js",
"prerelease:linux": "NODE_ENV=development node -r dotenv/config ./deploy/buildInsiderLinux.js",
"prerelease:mac": "NODE_ENV=development node ./deploy/buildInsiderMac.js",
"stable:win": "set NODE_ENV=production && node ./deploy/buildWin.js",
"stable:linux": "NODE_ENV=production node ./deploy/buildLinux.js",
"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 ts:build && npm run css:build && npm run js:build",
"js:build": "webpack",
"js:watch": "webpack -w",
"ts:build": "tsc",
"ts:watch": "tsc -w",
"lint": "eslint \"src/\" --ext \".ts\" --ext \".tsx\"",
"start": "electron .",
"test": "jest",
"circ": "madge -c ./src"
"circ": "madge -c ./src",
"release:main": "standard-version --skip.commit --skip.tag",
"release:pre": "standard-version --prerelease=alpha"
},
"repository": {},
"jest": {
"transform": {
"^.+\\.tsx?$": "ts-jest"
},
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json",
"node"
],
"testEnvironment": "node"
"repository": "github:elyukai/optolith-client",
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
}
+18 -16
View File
@@ -1,15 +1,15 @@
import { remote } from "electron";
import { Just, Nothing } from "../../Data/Maybe";
import { L10nRecord } from "../Models/Wiki/L10n";
import { getIsHeroSection } from "../Selectors/uilocationSelectors";
import { TabId } from "../Utilities/LocationUtils";
import { isDialogOpen } from "../Utilities/SubwindowsUtils";
import { ReduxAction } from "./Actions";
import { saveHero } from "./HerolistActions";
import { redo, undo } from "./HistoryActions";
import { requestClose } from "./IOActions";
import { setTab } from "./LocationActions";
import { openSettings } from "./SubwindowsActions";
import * as remote from "@electron/remote"
import { Just } from "../../Data/Maybe"
import { getCurrentHeroId } from "../Selectors/stateSelectors"
import { getIsHeroSection } from "../Selectors/uilocationSelectors"
import { TabId } from "../Utilities/LocationUtils"
import { isDialogOpen } from "../Utilities/SubwindowsUtils"
import { ReduxAction } from "./Actions"
import { saveHero } from "./HerolistActions"
import { redo, undo } from "./HistoryActions"
import { requestClose } from "./IOActions"
import { setTab } from "./LocationActions"
import { openSettings } from "./SubwindowsActions"
export const undoAccelerator = (): ReduxAction => (dispatch, getState) => {
if (!isDialogOpen () && getIsHeroSection (getState ())) {
@@ -23,10 +23,12 @@ export const redoAccelerator = (): ReduxAction => (dispatch, getState) => {
}
}
export const saveHeroAccelerator = (l10n: L10nRecord): ReduxAction =>
(dispatch, getState) => {
if (!isDialogOpen () && getIsHeroSection (getState ())) {
dispatch (saveHero (l10n) (Nothing))
export const saveHeroAccelerator: ReduxAction<Promise<void>> =
async (dispatch, getState) => {
const heroId = getCurrentHeroId (getState ())
if (!isDialogOpen () && getIsHeroSection (getState ()) && heroId.isJust) {
await dispatch (saveHero (heroId.value))
}
}
+5 -6
View File
@@ -1,12 +1,11 @@
import { Action, AnyAction } from "redux";
import { ThunkAction, ThunkDispatch } from "redux-thunk";
import { Record } from "../../Data/Record";
import { AppState } from "../Reducers/appReducer";
import { Action, AnyAction } from "redux"
import { ThunkAction, ThunkDispatch } from "redux-thunk"
import { AppStateRecord } from "../Models/AppState"
export type ReduxAction<R = void, D extends Action = AnyAction> =
ThunkAction<R, Record<AppState>, undefined, D>
ThunkAction<R, AppStateRecord, undefined, D>
export type ReduxActions<R = void, D extends Action = AnyAction> = ReduxAction<R, D> | D
export type ReduxDispatch<A extends Action = AnyAction> =
ThunkDispatch<Record<AppState>, undefined, A>
ThunkDispatch<AppStateRecord, undefined, A>
+275 -30
View File
@@ -1,43 +1,288 @@
import { clipboard } from "electron";
import { ActionTypes } from "../Constants/ActionTypes";
import { Alert } from "../Models/Hero/heroTypeHelpers";
import { L10nRecord } from "../Models/Wiki/L10n";
import { translate } from "../Utilities/I18n";
import { clipboard } from "electron"
import { fmapF } from "../../Data/Functor"
import { List } from "../../Data/List"
import { Just, Maybe, Nothing } from "../../Data/Maybe"
import { fromDefault, OmitName, PartialMaybeOrNothing, Record, RecordCreator } from "../../Data/Record"
import { ADD_ALERT, REMOVE_ALERT } from "../Constants/ActionTypes"
import { StaticDataRecord } from "../Models/Wiki/WikiModel"
import { getWiki } from "../Selectors/stateSelectors"
import { translate, translateP } from "../Utilities/I18n"
import { ReduxAction } from "./Actions"
export interface AddAlertAction {
type: ActionTypes.ADD_ALERT
payload: Alert
// BASIC INTERFACES
export interface PromptOptions<A> {
"@@name": "PromptOptions"
title: Maybe<string>
message: string
buttons: List<Record<PromptButton<A>>>
resolve: (response: Maybe<A>) => void
}
export const addAlert = (options: Alert): AddAlertAction => ({
type: ActionTypes.ADD_ALERT,
payload: options,
})
interface PromptOptionsCreator extends RecordCreator<PromptOptions<any>> {
<A> (x: PartialMaybeOrNothing<OmitName<PromptOptions<A>>>): Record<PromptOptions<A>>
}
export const addErrorAlert = (l10n: L10nRecord) => (options: Alert): AddAlertAction => {
const buttons: Alert["buttons"] = [
{
label: translate (l10n) ("copy"),
dispatchOnClick: () => clipboard.writeText (options.message),
},
{
label: translate (l10n) ("ok"),
},
]
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const PromptOptions: PromptOptionsCreator =
fromDefault ("PromptOptions")
<PromptOptions<any>> ({
title: Nothing,
message: "",
buttons: List (),
resolve: () => Nothing,
})
return {
type: ActionTypes.ADD_ALERT,
payload: {
...options,
buttons,
},
export interface PromptButton<A> {
"@@name": "PromptButton"
label: string
critical: Maybe<boolean>
response: A
}
interface PromptButtonCreator extends RecordCreator<PromptButton<any>> {
<A> (x: PartialMaybeOrNothing<OmitName<PromptButton<A>>>): Record<PromptButton<A>>
}
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const PromptButton: PromptButtonCreator =
fromDefault ("PromptButton")
<PromptButton<any>> ({
label: "",
critical: Nothing,
response: 0,
})
export interface AddPromptAction {
type: ADD_ALERT
payload: Record<PromptOptions<any>>
}
// CUSTOMIZABLE PROMPT
export interface CustomPromptOptions<A> {
"@@name": "CustomPromptOptions"
title: Maybe<string>
message: string
buttons: List<Record<PromptButton<A>>>
}
interface CustomPromptOptionsCreator extends RecordCreator<CustomPromptOptions<any>> {
<A> (x: PartialMaybeOrNothing<OmitName<CustomPromptOptions<A>>>): Record<CustomPromptOptions<A>>
}
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const CustomPromptOptions: CustomPromptOptionsCreator =
fromDefault ("CustomPromptOptions")
<CustomPromptOptions<any>> ({
title: Nothing,
message: "",
buttons: List (),
})
export const addPrompt =
<A> (opts: Record<CustomPromptOptions<A>>): ReduxAction<Promise<Maybe<A>>> =>
async dispatch =>
new Promise<Maybe<A>> (resolve => {
dispatch<AddPromptAction> ({
type: ADD_ALERT,
payload: PromptOptions<A> ({
title: CustomPromptOptions.A.title (opts),
message: CustomPromptOptions.A.message (opts),
buttons: CustomPromptOptions.A.buttons (opts),
resolve,
}),
})
})
// ALERT
export interface AlertOptions {
"@@name": "AlertOptions"
title: Maybe<string>
message: string
}
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const AlertOptions =
fromDefault ("AlertOptions")
<AlertOptions> ({
title: Nothing,
message: "",
})
export const addAlert =
(opts: Record<AlertOptions>): ReduxAction<Promise<Maybe<void>>> =>
async (dispatch, getState) =>
new Promise<Maybe<void>> (resolve => {
dispatch<AddPromptAction> ({
type: ADD_ALERT,
payload: PromptOptions ({
title: AlertOptions.A.title (opts),
message: AlertOptions.A.message (opts),
buttons: List (
PromptButton<void> ({
label: translate (getWiki (getState ())) ("general.dialogs.okbtn"),
response: undefined,
}),
),
resolve,
}),
})
})
// ERROR ALERT
enum ErrorAlertResponse {
Copy, Ok
}
export const addErrorAlert =
(opts: Record<AlertOptions>): ReduxAction<Promise<Maybe<void>>> =>
async (dispatch, getState) => {
const response = await new Promise<Maybe<ErrorAlertResponse>> (resolve => {
dispatch<AddPromptAction> ({
type: ADD_ALERT,
payload: PromptOptions ({
title: AlertOptions.A.title (opts),
message: AlertOptions.A.message (opts),
buttons: List (
PromptButton<ErrorAlertResponse> ({
label: translate (getWiki (getState ())) ("general.dialogs.copybtn"),
response: ErrorAlertResponse.Copy,
}),
PromptButton<ErrorAlertResponse> ({
label: translate (getWiki (getState ())) ("general.dialogs.okbtn"),
response: ErrorAlertResponse.Ok,
}),
),
resolve,
}),
})
})
if (Maybe.elem (ErrorAlertResponse.Copy) (response)) {
clipboard.writeText (AlertOptions.A.message (opts))
}
return fmapF (response) ((): void => undefined)
}
/**
* Creates a message from the passed message and the passed error object that
* can be used as the content of an alert.
*/
export const getErrorMsg =
(staticData: StaticDataRecord) =>
(message: string) =>
(error: Error): string =>
`${message} (${translate (staticData) ("general.errorcode")}: ${JSON.stringify (error)})`
export const addDefaultErrorAlert =
(staticData: StaticDataRecord) =>
(message: string) =>
(error: Error) =>
addErrorAlert (AlertOptions ({
message: getErrorMsg (staticData) (message) (error),
title: Just (translate (staticData) ("general.error")),
}))
export const addDefaultErrorAlertWithTitle =
(staticData: StaticDataRecord) =>
(title: string) =>
(message: string) =>
(error: Error) =>
addErrorAlert (AlertOptions ({
message: getErrorMsg (staticData) (message) (error),
title: Just (title),
}))
// CONFIRM
export enum ConfirmResponse {
Accepted, Rejected
}
export interface ConfirmOptions {
"@@name": "ConfirmOptions"
title: Maybe<string>
message: string
useYesNo: boolean
}
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const ConfirmOptions =
fromDefault ("ConfirmOptions")
<ConfirmOptions> ({
title: Nothing,
message: "",
useYesNo: false,
})
export const addConfirm =
(staticData: StaticDataRecord) =>
(opts: Record<ConfirmOptions>): ReduxAction<Promise<Maybe<ConfirmResponse>>> =>
async dispatch =>
new Promise<Maybe<ConfirmResponse>> (resolve => {
dispatch<AddPromptAction> ({
type: ADD_ALERT,
payload: PromptOptions ({
title: ConfirmOptions.A.title (opts),
message: ConfirmOptions.A.message (opts),
buttons: ConfirmOptions.A.useYesNo (opts)
? List (
PromptButton<ConfirmResponse> ({
label: translate (staticData) ("general.dialogs.yesbtn"),
response: ConfirmResponse.Accepted,
}),
PromptButton<ConfirmResponse> ({
label: translate (staticData) ("general.dialogs.nobtn"),
response: ConfirmResponse.Rejected,
})
)
: List (
PromptButton<ConfirmResponse> ({
label: translate (staticData) ("general.dialogs.okbtn"),
response: ConfirmResponse.Accepted,
}),
PromptButton<ConfirmResponse> ({
label: translate (staticData) ("general.dialogs.cancelbtn"),
response: ConfirmResponse.Rejected,
})
),
resolve,
}),
})
})
// REMOVE CURRENT ALERT
export interface RemoveAlertAction {
type: ActionTypes.REMOVE_ALERT
type: REMOVE_ALERT
}
export const removeAlert = (): RemoveAlertAction => ({
type: ActionTypes.REMOVE_ALERT,
type: REMOVE_ALERT,
})
// Not enough AP alert
export const addNotEnoughAPAlert =
(missing_ap: number): ReduxAction<Promise<void>> =>
async (dispatch, getState) => {
const staticData = getWiki (getState ())
await dispatch (addAlert (AlertOptions ({
title: Just (translate (staticData)
("general.dialogs.notenoughap.title")),
message: translateP (staticData)
("general.dialogs.notenoughap.message")
(List (missing_ap)),
})))
}
+107 -119
View File
@@ -1,30 +1,28 @@
import { fmapF } from "../../Data/Functor";
import { List } from "../../Data/List";
import { bind, bindF, fromJust, isNothing, join, liftM2 } from "../../Data/Maybe";
import { lookup } from "../../Data/OrderedMap";
import { ActionTypes } from "../Constants/ActionTypes";
import { HeroModel } from "../Models/Hero/HeroModel";
import { L10nRecord } from "../Models/Wiki/L10n";
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 { getIncreaseAP } from "../Utilities/AdventurePoints/improvementCostUtils";
import { translate, translateP } from "../Utilities/I18n";
import { getAreSufficientAPAvailableForIncrease } from "../Utilities/Increasable/increasableUtils";
import { pipe, pipe_ } from "../Utilities/pipe";
import { ReduxAction } from "./Actions";
import { addAlert } from "./AlertActions";
import { fmapF } from "../../Data/Functor"
import { bind, bindF, fromJust, isNothing, join, liftM2 } from "../../Data/Maybe"
import { lookup } from "../../Data/OrderedMap"
import { curryN } from "../../Data/Tuple/All"
import * as ActionTypes from "../Constants/ActionTypes"
import { HeroModel } from "../Models/Hero/HeroModel"
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, ImprovementCost } from "../Utilities/ImprovementCost"
import { getAreSufficientAPAvailableForIncrease } from "../Utilities/Increasable/increasableUtils"
import { pipe, pipe_ } from "../Utilities/pipe"
import { ReduxAction } from "./Actions"
import { addNotEnoughAPAlert } from "./AlertActions"
export interface AddAttributePointAction {
type: ActionTypes.ADD_ATTRIBUTE_POINT
payload: {
id: string;
id: string
}
}
export const addAttributePoint = (l10n: L10nRecord) => (id: string): ReduxAction =>
(dispatch, getState) => {
export const addAttributePoint = (id: string): ReduxAction<Promise<void>> =>
async (dispatch, getState) => {
const state = getState ()
const wiki_attributes = getWikiAttributes (state)
const mhero = getCurrentHeroPresent (state)
@@ -33,7 +31,7 @@ export const addAttributePoint = (l10n: L10nRecord) => (id: string): ReduxAction
const missingAPForInc =
pipe_ (
mhero,
bindF (pipe (HeroModel.A.id, hero_id => getAvailableAPMap (hero_id) (state, { l10n }))),
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
join,
liftM2 (getAreSufficientAPAvailableForIncrease (getIsInCharacterCreation (state))
(bind (mhero_attributes)
@@ -51,17 +49,14 @@ export const addAttributePoint = (l10n: L10nRecord) => (id: string): ReduxAction
})
}
else {
dispatch (addAlert ({
title: translate (l10n) ("notenoughap"),
message: translateP (l10n) ("notenoughap.text") (List (fromJust (missingAPForInc))),
}))
await dispatch (addNotEnoughAPAlert (fromJust (missingAPForInc)))
}
}
export interface RemoveAttributePointAction {
type: ActionTypes.REMOVE_ATTRIBUTE_POINT
payload: {
id: string;
id: string
}
}
@@ -76,58 +71,60 @@ export interface AddLifePointAction {
type: ActionTypes.ADD_LIFE_POINT
}
export const addLifePoint = (l10n: L10nRecord): ReduxAction => (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
const missingAP =
pipe_ (
mhero,
bindF (pipe (HeroModel.A.id, hero_id => getAvailableAPMap (hero_id) (state, { l10n }))),
join,
liftM2 (pipe (
// get AP for added points
getIncreaseAP (4),
// AP are passed to result and result finally gets the available AP
getMissingAP (getIsInCharacterCreation (state))))
(getAddedLifePoints (state)),
join
)
if (isNothing (missingAP)) {
dispatch<AddLifePointAction> ({
type: ActionTypes.ADD_LIFE_POINT,
})
}
else {
dispatch (addAlert ({
title: translate (l10n) ("notenoughap"),
message: translateP (l10n) ("notenoughap.text") (List (fromJust (missingAP))),
}))
}
}
export interface AddArcaneEnergyPointAction {
type: ActionTypes.ADD_ARCANE_ENERGY_POINT
}
export const addArcaneEnergyPoint = (l10n: L10nRecord): ReduxAction =>
(dispatch, getState) => {
export const addLifePoint: ReduxAction<Promise<void>> =
async (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
const missingAP =
pipe_ (
mhero,
bindF (pipe (HeroModel.A.id, hero_id => getAvailableAPMap (hero_id) (state, { l10n }))),
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
join,
liftM2 (pipe (
// get AP for added points
getIncreaseAP (4),
curryN (getAPForInc) (ImprovementCost.D),
// AP are passed to result and result finally gets the available AP
getMissingAP (getIsInCharacterCreation (state))))
getMissingAP (getIsInCharacterCreation (state))
))
(getAddedLifePoints (state)),
join
)
if (isNothing (missingAP)) {
dispatch<AddLifePointAction> ({
type: ActionTypes.ADD_LIFE_POINT,
})
}
else {
await dispatch (addNotEnoughAPAlert (fromJust (missingAP)))
}
}
export interface AddArcaneEnergyPointAction {
type: ActionTypes.ADD_ARCANE_ENERGY_POINT
}
export const addArcaneEnergyPoint: ReduxAction<Promise<void>> =
async (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
const missingAP =
pipe_ (
mhero,
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
join,
liftM2 (pipe (
// get AP for added points
curryN (getAPForInc) (ImprovementCost.D),
// AP are passed to result and result finally gets the available AP
getMissingAP (getIsInCharacterCreation (state))
))
(getAddedArcaneEnergyPoints (state)),
join
)
@@ -138,10 +135,7 @@ export const addArcaneEnergyPoint = (l10n: L10nRecord): ReduxAction =>
})
}
else {
dispatch (addAlert ({
title: translate (l10n) ("notenoughap"),
message: translateP (l10n) ("notenoughap.text") (List (fromJust (missingAP))),
}))
await dispatch (addNotEnoughAPAlert (fromJust (missingAP)))
}
}
@@ -149,37 +143,37 @@ export interface AddKarmaPointAction {
type: ActionTypes.ADD_KARMA_POINT
}
export const addKarmaPoint = (l10n: L10nRecord): ReduxAction => (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
export const addKarmaPoint: ReduxAction<Promise<void>> =
async (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
const missingAP =
pipe_ (
mhero,
bindF (pipe (HeroModel.A.id, hero_id => getAvailableAPMap (hero_id) (state, { l10n }))),
join,
liftM2 (pipe (
// get AP for added points
getIncreaseAP (4),
const missingAP =
pipe_ (
mhero,
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
join,
liftM2 (pipe (
// AP are passed to result and result finally gets the available AP
getMissingAP (getIsInCharacterCreation (state))))
(getAddedKarmaPoints (state)),
join
)
// get AP for added points
curryN (getAPForInc) (ImprovementCost.D),
if (isNothing (missingAP)) {
dispatch<AddKarmaPointAction> ({
type: ActionTypes.ADD_KARMA_POINT,
})
// AP are passed to result and result finally gets the available AP
getMissingAP (getIsInCharacterCreation (state))
))
(getAddedKarmaPoints (state)),
join
)
if (isNothing (missingAP)) {
dispatch<AddKarmaPointAction> ({
type: ActionTypes.ADD_KARMA_POINT,
})
}
else {
await dispatch (addNotEnoughAPAlert (fromJust (missingAP)))
}
}
else {
dispatch (addAlert ({
title: translate (l10n) ("notenoughap"),
message: translateP (l10n) ("notenoughap.text") (List (fromJust (missingAP))),
}))
}
}
export interface RemoveLifePointAction {
type: ActionTypes.REMOVE_LIFE_POINT
@@ -193,7 +187,7 @@ export interface RemoveArcaneEnergyPointAction {
type: ActionTypes.REMOVE_ARCANE_ENERGY_POINT
}
export const removeArcaneEnergyPoint = (): RemoveArcaneEnergyPointAction => ({
export const removeArcaneEnergyPoint = (): RemoveArcaneEnergyPointAction => ({
type: ActionTypes.REMOVE_ARCANE_ENERGY_POINT,
})
@@ -209,15 +203,15 @@ export interface AddBoughtBackAEPointAction {
type: ActionTypes.ADD_BOUGHT_BACK_AE_POINT
}
export const addBoughtBackAEPoint = (l10n: L10nRecord): ReduxAction =>
(dispatch, getState) => {
export const addBoughtBackAEPoint: ReduxAction<Promise<void>> =
async (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
const missingAP =
pipe_ (
mhero,
bindF (pipe (HeroModel.A.id, hero_id => getAvailableAPMap (hero_id) (state, { l10n }))),
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
join,
bindF (getMissingAP (getIsInCharacterCreation (state))
(2))
@@ -229,10 +223,7 @@ export const addBoughtBackAEPoint = (l10n: L10nRecord): ReduxAction =>
})
}
else {
dispatch (addAlert ({
title: translate (l10n) ("notenoughap"),
message: translateP (l10n) ("notenoughap.text") (List (fromJust (missingAP))),
}))
await dispatch (addNotEnoughAPAlert (fromJust (missingAP)))
}
}
@@ -255,7 +246,7 @@ export const removeLostLPPoint = (): RemoveLostLPPointAction => ({
export interface AddLostLPPointsAction {
type: ActionTypes.ADD_LOST_LP_POINTS
payload: {
value: number;
value: number
}
}
@@ -293,7 +284,7 @@ export const removeLostAEPoint = (): RemoveLostAEPointAction => ({
export interface AddLostAEPointsAction {
type: ActionTypes.ADD_LOST_AE_POINTS
payload: {
value: number;
value: number
}
}
@@ -308,15 +299,15 @@ export interface AddBoughtBackKPPointAction {
type: ActionTypes.ADD_BOUGHT_BACK_KP_POINT
}
export const addBoughtBackKPPoint = (l10n: L10nRecord): ReduxAction =>
(dispatch, getState) => {
export const addBoughtBackKPPoint: ReduxAction<Promise<void>> =
async (dispatch, getState) => {
const state = getState ()
const mhero = getCurrentHeroPresent (state)
const missingAP =
pipe_ (
mhero,
bindF (pipe (HeroModel.A.id, hero_id => getAvailableAPMap (hero_id) (state, { l10n }))),
bindF (hero => getAvailableAPMap (HeroModel.A.id (hero)) (state, { hero })),
join,
bindF (getMissingAP (getIsInCharacterCreation (state))
(2))
@@ -328,10 +319,7 @@ export const addBoughtBackKPPoint = (l10n: L10nRecord): ReduxAction =>
})
}
else {
dispatch (addAlert ({
title: translate (l10n) ("notenoughap"),
message: translateP (l10n) ("notenoughap.text") (List (fromJust (missingAP))),
}))
await dispatch (addNotEnoughAPAlert (fromJust (missingAP)))
}
}
@@ -362,7 +350,7 @@ export const removeLostKPPoint = (): RemoveLostKPPointAction => ({
export interface AddLostKPPointsAction {
type: ActionTypes.ADD_LOST_KP_POINTS
payload: {
value: number;
value: number
}
}
@@ -374,14 +362,14 @@ export const addLostKPPoints = (value: number): AddLostKPPointsAction => ({
})
export interface SetAdjustmentIdAction {
type: ActionTypes.SET_ATTRIBUTE_ADJUSTMENT_SELECTION_ID
type: ActionTypes.SET_ATTR_ADJUSTMENT_SID
payload: {
id: string;
id: string
}
}
export const setAdjustmentId = (id: string): SetAdjustmentIdAction => ({
type: ActionTypes.SET_ATTRIBUTE_ADJUSTMENT_SELECTION_ID,
type: ActionTypes.SET_ATTR_ADJUSTMENT_SID,
payload: {
id,
},

Some files were not shown because too many files have changed in this diff Show More