elyukai / optolith-client Goto Github PK
View Code? Open in Web Editor NEWOptolith Character Manager is a desktop application for The Dark Eye 5th Edition.
Home Page: https://optolith.app
License: Other
Optolith Character Manager is a desktop application for The Dark Eye 5th Edition.
Home Page: https://optolith.app
License: Other
Currently, you have to implement special abilities with tiers and changing prerequisites per tier as different special ability entries. This leads to a way larger list of active special abilities and duplicate wiki data.
To accomplish that, I want/need to plan the whole feature before starting implementation.
Current progress:
SpecialAbilityInstance.ap
has to be of type number[]
, SpecialAbilityInstance.req
has to be of type ('RCP' | AllRequirementTypes)[]
and the length
of both properties equal SpecialAbilityInstance.tiers
.SpecialAbilityInstance.req
.1
, the name must be displayed as {name} I-{currentTier}
.Given the interface
interface ActiveObject { // from data.d.ts
sid?: string | number;
sid2?: string | number;
tier?: number;
}
interface ActiveObjectWithId extends ActiveObject {
id: string;
}
, which is used by RCP for setting advantages/disadvantages/special abilities, the new function needs to create a new object based on ActiveObjectWithId
, implementing the interface
interface RequiredActivatableViewObject {
id: string;
name: string;
add?: string; // addition to the name, such as 'Church of Praios' in 'Tradition (Church of Praios)'
tier?: number;
cost: number;
}
This will be used for calculating culture and profession costs and displaying the names (and costs) in the wiki.
Keep track of everyone's LP/AE/KP, conditions and states, INI, etc.. Requires #29.
Related #1121
Bei der Erstellung von Zonenrüstung muss man für jede Zone eine eigene Teilrüstung auswählen, da dabei aber nicht die tatsächliche RS angezeigt wird, muss man immer nachsehen. Deswegen wäre es besser direkt die RS auszuwählen. Eventuelle Rüstungsvor- bzw. -nachteile sollten ebenso irgendwie als Anmerkung auf dem Heldenbogen vorhanden sein, zumindest die Sonderrüstung, von der der Effekt abgeleitet ist.
I started with
npm i
- all oknpm run bundle
- unused imports errors etc.Now the error:
D:\_\git\private\tdeheroes-code>npm run build
> [email protected] build D:\_\git\private\tdeheroes-code
> electron-builder --config -lw
electron-builder 19.46.6
Using electron-builder.json configuration file
No native production dependencies
Packaging for linux x64 using electron 2.0.2 to dist\linux-unpacked
Building tar.gz
No native production dependencies
Packaging for linux ia32 using electron 2.0.2 to dist\linux-ia32-unpacked
Building tar.gz
No native production dependencies
Packaging for win32 x64 using electron 2.0.2 to dist\win-unpacked
No native production dependencies
Packaging for win32 ia32 using electron 2.0.2 to dist\win-ia32-unpacked
Building nsis installer (x64 and ia32)
TypeError: "size" argument must be a number
at Function.Buffer.allocUnsafe (buffer.js:253:3)
at D:\_\git\private\tdeheroes-code\node_modules\app-package-builder\src\SevenZFile.ts:49:23
at Generator.next (<anonymous>)
From previous event:
at SevenZFile.readHeaders (D:\_\git\private\tdeheroes-code\node_modules\app-package-builder\out\SevenZFile.js:132:11)
at D:\_\git\private\tdeheroes-code\node_modules\app-package-builder\src\SevenZFile.ts:45:31
at Generator.next (<anonymous>)
From previous event:
at SevenZFile.read (D:\_\git\private\tdeheroes-code\node_modules\app-package-builder\out\SevenZFile.js:92:11)
at D:\_\git\private\tdeheroes-code\node_modules\app-package-builder\src\blockMap.ts:43:22
at Generator.next (<anonymous>)
at D:\_\git\private\tdeheroes-code\node_modules\graceful-fs\graceful-fs.js:241:16
at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
at createDifferentialPackage (D:\_\git\private\tdeheroes-code\node_modules\app-package-builder\out\blockMap.js:61:21)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\targets\nsis\NsisTarget.ts:91:20
at Generator.next (<anonymous>)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at NsisTarget.buildAppPackage (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\targets\nsis\NsisTarget.js:190:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\targets\nsis\nsisUtil.ts:32:28
at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\targets\nsis\nsisUtil.ts:32:10
at Generator.next (<anonymous>)
From previous event:
at AppPackageHelper.packArch (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\targets\nsis\nsisUtil.js:92:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\targets\nsis\NsisTarget.ts:177:51
at Generator.next (<anonymous>)
From previous event:
at default.map (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\targets\nsis\NsisTarget.js:287:37)
From previous event:
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\targets\nsis\NsisTarget.ts:176:29
at Generator.next (<anonymous>)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at NsisTarget.buildInstaller (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\targets\nsis\NsisTarget.js:337:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\targets\nsis\NsisTarget.ts:102:18
at Generator.next (<anonymous>)
From previous event:
at NsisTarget.finishBuild (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\targets\nsis\NsisTarget.js:205:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\packager.ts:338:36
From previous event:
at Packager.doBuild (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\packager.js:396:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\packager.ts:274:52
From previous event:
at Packager._build (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\packager.js:340:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\packager.ts:244:23
at Generator.next (<anonymous>)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at Packager.build (D:\_\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\packager.js:300:11)
at D:\_\git\private\tdeheroes-code\node_modules\electron-builder\src\builder.ts:287:40
at Generator.next (<anonymous>)
From previous event:
at _build (D:\_\git\private\tdeheroes-code\node_modules\electron-builder\out\builder.js:61:21)
at build (D:\_\git\private\tdeheroes-code\node_modules\electron-builder\src\builder.ts:257:10)
at then (D:\_\git\private\tdeheroes-code\node_modules\electron-builder\src\cli\cli.ts:49:4)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at Object.args [as handler] (D:\_\git\private\tdeheroes-code\node_modules\electron-builder\src\cli\cli.ts:49:4)
at Object.runCommand (D:\_\git\private\tdeheroes-code\node_modules\yargs\lib\command.js:235:44)
at Object.parseArgs [as _parseArgs] (D:\_\git\private\tdeheroes-code\node_modules\yargs\yargs.js:1041:24)
at Object.get [as argv] (D:\_\git\private\tdeheroes-code\node_modules\yargs\yargs.js:957:21)
at Object.<anonymous> (D:\_\git\private\tdeheroes-code\node_modules\electron-builder\src\cli\cli.ts:43:15)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `electron-builder --config -lw`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
This feature could include the following:
Also, make it possible to choose which exact entries should be printed (cleaner, no obvious entries).
There should be three main "commit types":
Each "commit" should contain the following information:
I wouldn't create a detailed history of every single change, since you can go back and forth all the time, which would make it harder to read and also harder to maintain.
This way the given archetypes could be played without the need to always insert the values on your own. If an archetype changes (e.g. errors in the book), the change won't affect already added archetypes – you'd have to readd them to the list then.
Database done:
Implementation done:
Applies to:
You can create custom rules pretty easily for TDE5. It would be great if you could add custom spells, special abilities etc. inside the app.
This requires some special UI, as buying a ritual special ability (e.g. Binding of the Staff) where the ritual costs pAE does not imply the ritual is performed. Maybe it can be handled by providing a list of bought "pAE rituals" where you can select which you want to be performed. But I'm not sure if you always remember to fill out this form. I probably wouldn't xD Any thoughts on this? Or maybe other ideas how to handle it?
This setting would not be applied automatically to be predictable and to not have more work to do if you do not want to have those set books for a character.
Due to several issues with the data from the tables, I want to create a data validator, based on the files under /wiki. This validator has to check all entries after building either the data table or the locales.
Es wäre gut, wenn man die Haar- und Augenfarbe frei eintragen könnte, da z.B. das Stigma grüne Haare eingetragen werden könnte. Allgemein wäre es gut, ein freies Eintragen zu haben, da so auch Farben eintragbar wären, die nicht im kulturellen Fundus liegen.
It's slightly inconvenient that a portrait has to be square.
It would be nice - but no priority in any way - if cropping and zooming would be possible within Optolyth.
npm -v
: 5.6.0
node -v
: v8.11.2
npm i
ist erfolgreich durchgelaufen.
Jedoch läuft der nachfolgende Befehl anschließend auf einen Fehler.
PS D:\git\private\tdeheroes-code> npm run-script build
> [email protected] build D:\git\private\tdeheroes-code
> electron-builder --config -lw
electron-builder 19.46.6
Using electron-builder.json configuration file
No native production dependencies
Packaging for linux x64 using electron 2.0.2 to dist\linux-unpacked
Error: Application entry file "app\main.js" in the "D:\git\private\tdeheroes-code\dist\linux-unpacked\resources\app.asar" does not exist. Seems like a wrong configuration.
at error (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\asar\asarFileChecker.ts:7:12)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\asar\asarFileChecker.ts:33:11
at Generator.next (<anonymous>)
at D:\git\private\tdeheroes-code\node_modules\graceful-fs\polyfills.js:287:18
at FSReqWrap.oncomplete (fs.js:153:5)
From previous event:
at checkFileInArchive (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\asar\asarFileChecker.js:46:21)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\platformPackager.ts:316:13
at Generator.next (<anonymous>)
From previous event:
at LinuxPackager.checkFileInPackage (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\platformPackager.js:389:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\platformPackager.ts:364:16
at Generator.next (<anonymous>)
at D:\git\private\tdeheroes-code\node_modules\graceful-fs\polyfills.js:287:18
at FSReqWrap.oncomplete (fs.js:153:5)
From previous event:
at LinuxPackager.sanityCheckPackage (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\platformPackager.js:407:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\platformPackager.ts:208:16
at Generator.next (<anonymous>)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at LinuxPackager.doPack (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\platformPackager.js:267:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\platformPackager.ts:115:16
at Generator.next (<anonymous>)
From previous event:
at LinuxPackager.pack (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\platformPackager.js:190:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\packager.ts:330:24
at Generator.next (<anonymous>)
at xfs.stat (D:\git\private\tdeheroes-code\node_modules\fs-extra\lib\mkdirs\mkdirs.js:56:16)
at D:\git\private\tdeheroes-code\node_modules\graceful-fs\polyfills.js:287:18
at FSReqWrap.oncomplete (fs.js:153:5)
From previous event:
at Packager.doBuild (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\packager.js:396:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\packager.ts:274:52
From previous event:
at Packager._build (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\packager.js:340:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\src\packager.ts:244:23
at Generator.next (<anonymous>)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at Packager.build (D:\git\private\tdeheroes-code\node_modules\electron-builder-lib\out\packager.js:300:11)
at D:\git\private\tdeheroes-code\node_modules\electron-builder\src\builder.ts:287:40
at Generator.next (<anonymous>)
From previous event:
at _build (D:\git\private\tdeheroes-code\node_modules\electron-builder\out\builder.js:61:21)
at build (D:\git\private\tdeheroes-code\node_modules\electron-builder\src\builder.ts:257:10)
at then (D:\git\private\tdeheroes-code\node_modules\electron-builder\src\cli\cli.ts:49:4)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
at Object.args [as handler] (D:\git\private\tdeheroes-code\node_modules\electron-builder\src\cli\cli.ts:49:4)
at Object.runCommand (D:\git\private\tdeheroes-code\node_modules\yargs\lib\command.js:235:44)
at Object.parseArgs [as _parseArgs] (D:\git\private\tdeheroes-code\node_modules\yargs\yargs.js:1041:24)
at Object.get [as argv] (D:\git\private\tdeheroes-code\node_modules\yargs\yargs.js:957:21)
at Object.<anonymous> (D:\git\private\tdeheroes-code\node_modules\electron-builder\src\cli\cli.ts:43:15)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `electron-builder --config -lw`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
The feature would remove them from the default list of heroes, which would also disable editing. They could still be shown in list using specific view options and they could also return to normal list.
Move to more obvious location
Concerning the macOS platform
Correct menubar elements and add shortcuts from elyukai/tdeheroes#95 if necessary.
The entry to close is normally "Close AppName" or in German "AppName beenden"
Proposal:
Follow the macOS UX flow and place the other elements in the "Edit" category, if the should get included there.
More details on: Apple UX
Group several characters, so that you can see them all at once.
This feature will enable a separate tab aside Heroes, Wiki, FAQ, and About. You'll then be able to create a "group" and assign characters to it, both heroes and NPCs.
It will then provide a list just like in the Heroes tab, with only the characters visible that you selected. You'll also be able to edit the list after you created a group.
This is only the basic functionality. There are several additions planned:
It would be nice to have an option to view all special abilities and see the necessary requirements. If this is already implemented please tell me ;)
Related #1121
You will be able to put melee weapons, ranged weapons, armor and shields/partying weapons into one set and it will calculate the PRO, ENC and all that stuff completely automatically. You will only have to take care of „buffs“/„debuffs“ when playing (e.g. states). You can also create multiple sets then.
Related #1121
This function should calculate left money and insert it into the four fields. It should only be available during character creation, though.
When choosing a profession with high starting skill values (e.g. Adersin with Swords and 2h-Swords at 12) at a low starting AP level (e.g. "average" at 1000 AP), the maximum skill values (in this case 10) will be in effect for the profession-based skill values (in our example the character will have 10 in both Sword skills), but the profession cost remains the same. Either package deals need to break skill limits or the package costs need to be reduced when limits are in effect.
On mobile, using React Native, I can't use the printToPDF method provided by Chromium and thus Electron. Also, the current PDFs look blurry and the sizes are not always how I want them to be. That's why a new way of generating the character sheet is required. But before this can be done, I want to do the redesign of the character sheet, so that work doesn't need to be done twice. I'll keep this issue updated, though.
I plan to use pdfMake as thats the only library that supports a declarative creation of PDFs.
Related #1121
This is useful when having pack animals or carts.
Is there anyone who backed the French kickstarter and would like to provide the French translations once the books have been shipped? I am not able to speak French at all, but I would like to provide a French version of my app.
A few users reported issues with scrolling: There is no scrollbar and thus no scrolling available. I changed the plugin I am using for the customized scrollbars, but it did not change anything regarding the issue(s). I couldnt reproduce the issue so far.
Related #1121
Currently, all potions etc. are level 1 and must be edited manually to be of a higher level.
After selecting race, culture, profession and maybe variants you need to select options specific to the selected race/culture/profession. You can only continue if you selected all required options but it does not show which are missing.
Given #3 is done, implement a full calculating function for the step from phase 1 (RCP selection) to 2 (general character creation). I'd say it should be added to the ASSIGN_RCP_OPTIONS case in currentHeroPost.ts.
Needs functionality for having only the highest primary attribute for other entries' prerequisites and functionality for changing dependencies.
Before finishing #1 and cleaning up the files I need to finish fixing critical bugs. The specific bugs will be listed in Elytherion/tdeheroes, so I will not list them here.
Shows heroes' stats side by side. Requires #29.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.