Commit Graph

56 Commits

Author SHA1 Message Date
Stefan Zermatten
566d6a4fef Triggers 🤫 2022-07-20 15:57:38 +02:00
Stefan Zermatten
f8e9131bdd Vastly improved new character UX
Characters now can limit which libraries they allow
2022-07-18 13:45:14 +02:00
Stefan Zermatten
59ef7527b7 Fixed some errors with character insertion/deletion 2022-07-09 12:53:44 +02:00
Stefan Zermatten
f07f05ca2c Moved creature variables to their own collection
Another big change to the engine, expect bugs
2022-06-29 14:54:25 +02:00
Stefan Zermatten
9dd84a83d2 Started removing scope from creature doc 2022-06-24 10:50:35 +02:00
Stefan Zermatten
b2f89eceee Fixed some bugs with characters not recomputing
TODO: remove .variables cache from creature document, it's not viable
2022-06-23 08:39:48 +02:00
Stefan Zermatten
a8ffa2f786 Fixed denormalized creature variables not removed 2022-06-20 13:05:38 +02:00
Stefan Zermatten
28934baac9 Implemented archive upload handling 2022-06-07 23:01:06 +02:00
Stefan Zermatten
1b3efae81a Replaced manual recompute calls with dirty flag settings 2022-05-11 15:42:29 +02:00
Stefan Zermatten
7a35c66904 Removed performance logging from loading creatures 2022-05-11 13:33:56 +02:00
Stefan Zermatten
78cd8ffc8d Creatures are now cached in memory for computation
Also removed dependency group calculation because the optimisation isn't
as useful to reduce DB calls if the creature is in memory anyway
2022-05-11 13:30:33 +02:00
Stefan Zermatten
23fa6fe634 Progress on dependency updates 2022-05-09 16:32:15 +02:00
Stefan Zermatten
caf50d1578 Merge branch 'version-2' into version-2-dev 2022-05-09 12:46:09 +02:00
Stefan Zermatten
33fa22c187 Removed stray log 2022-05-02 23:31:52 +02:00
Stefan Zermatten
2e3f0320f3 Added dependency grouping, but commented out for now until it's needed 2022-05-02 23:31:10 +02:00
Stefan Zermatten
abb8890070 Build card being converted into build tree
Still need to be able to delete fillers
2022-05-02 12:32:14 +02:00
Stefan Zermatten
ea32c54f57 Fixed massive writes to creature.variables on calc
Now only writes changed variables, preventing oplog from being
polluted with massive updates
2022-04-25 13:57:39 +02:00
Stefan Zermatten
ac8f19bcfb Hotfix for skills without effects breaking calculations 2022-03-09 08:09:16 +02:00
Stefan Zermatten
788cbb182d Action system improvements
- Actions/spells now display their summary, not their description
- All save branches and attack branches run when there are no targets
- Improved action logging
- Index branch lets you customise a choice of children to run
2022-03-09 01:31:09 +02:00
Stefan Zermatten
10242b596f Updated test cases to account for new damage multipliers 2022-03-05 17:59:50 +02:00
Stefan Zermatten
782f2cdc73 Added default tags to properties
#type, damageType, skillType, attributeType, reset
2022-03-05 17:52:15 +02:00
Stefan Zermatten
2442ae4fa0 Overhauled damage multipliers UX
Form and viewer revamp
custom damage types
Variables: `bludgeoning.resistance`
2022-03-05 16:23:21 +02:00
Stefan Zermatten
43e956eb6a Fixed skills not obeying baseValue correctly 2022-03-03 15:55:07 +02:00
Stefan Zermatten
4edfe1bcb9 Fixed inventory calculation to include item quantities 2022-03-03 15:53:58 +02:00
Stefan Zermatten
afe6c044cd Fixed dependency graph not building correctly for resources consumed 2022-02-28 00:02:55 +02:00
Stefan Zermatten
653f05012a Reversed the order of the creature compute dependency graph traversal
By doing this the traversal happens mostly in tree order, which is a 
better assumption of starting point in cases where there are dependency 
loops
2022-02-26 14:58:38 +02:00
Stefan Zermatten
7ee4a22d77 Fixed error where dependency loops including classLevels break the sheet 2022-02-26 13:06:00 +02:00
Stefan Zermatten
52453b46e9 Fixed experience not appearing as a variable after computation 2022-02-23 11:44:59 +02:00
Stefan Zermatten
12a0dff43f Hacked over ddp error that was not updating removed field correctly 2022-02-22 18:31:06 +02:00
Stefan Zermatten
8f30c1419c Fixed slots and slot fillers not calculating their conditions correctly
Also fixes slot fullness calculation
2022-02-22 17:59:12 +02:00
Stefan Zermatten
4c6d70b084 Fixed . in effect stat targets breaking entire sheet 2022-02-22 17:30:45 +02:00
Stefan Zermatten
378da71f5d Effects targeting calculations by tag now work in the engine and actions 2022-02-15 15:59:41 +02:00
Stefan Zermatten
e0f621cc44 Added data and UI for effects targeting calculations by tag
Still need to:
- update engine to compute calculations with effects.
- Add UI for effects applied to each calculation
2022-02-14 16:26:49 +02:00
Stefan Zermatten
359f18988c Account functionality extended, API authentication implemented
- Can now add a second email address to your account and delete one of 
your email addresses
- Reset password now works
- Resetting the password of an account without a password set will set 
one
- Email templates overhauled
- Login tokens limited to close previously devastating ($800 database 
bill) security hole
- Login with REST API now works
- Once logged in, authentication of API calls with token works
- Creatures can now be fetched using the API
2022-02-10 19:02:18 +02:00
Stefan Zermatten
6e22e4286f Fixed referencing variable.description in a calculation
Whether the description's inline calculations are calculated or not is 
not defined.
2021-12-08 09:23:29 +02:00
Stefan Zermatten
e34f29f952 Computations now occupy their own nodes on the dependency graph
This mitigates most issues with properties having self-loops, 
particularly in cases like Strength where the value `strength` is used 
in the description of Strength
2021-12-07 21:05:24 +02:00
Stefan Zermatten
e3a1eff751 Progress all over the place with viewer, forms, small engine tweaks 2021-10-21 22:18:01 +02:00
Stefan Zermatten
417ff6e210 Buffs no longer have the "applied" field, it was redundant
Because children of actions are always inactive in the new engine, buffs 
that are children of actions are inactive while buffs elsewhere on the 
character sheet are active, making it redundant to keep the extra field
2021-10-18 13:46:38 +02:00
Stefan Zermatten
f2369277f1 Fixed bug from misspelling .overridden as .overriden 2021-10-18 11:27:43 +02:00
Stefan Zermatten
bc6c857b6b UI work to improve look and feel of Viewers 2021-10-17 23:28:39 +02:00
Stefan Zermatten
247353f0ed Small progress on tabletop 2021-10-16 19:05:35 +02:00
Stefan Zermatten
ea68cdf86f Migrating UI for new data structures 2021-10-15 11:12:40 +02:00
Stefan Zermatten
51d3fbbcb7 Completed first pass at action system re-write. Untested 2021-10-10 19:44:02 +02:00
Stefan Zermatten
0cdec4a429 Start of action system re-write 2021-10-09 12:36:06 +02:00
Stefan Zermatten
0097696cc8 Began merging attacks into actions 2021-10-06 14:57:13 +02:00
Stefan Zermatten
1a14393031 Parsed calculations are now cached between calculations
Parsing is one of the more expensive computations done to characters, so 
the parser results are now stored on the DB and only updated if they are 
dirty. A hash is used to determine if the calculation has changed since 
the last computation
2021-10-03 20:59:04 +02:00
Stefan Zermatten
b78517b61f Finished migrating parser to be object orientation free. All tests pass 2021-10-03 13:54:17 +02:00
Stefan Zermatten
feffa45cf7 Began work on rewriting parser without object orientation
Parsing is expensive, if the parse tree can be stored on the DB it can 
save a lot of compute time, but mongo can't store Classes, so we 
re-write without classes
2021-10-01 13:41:22 +02:00
Stefan Zermatten
cb1fd38df3 Optimized some slow parts of the engine.
Last low hanging fruit: parsing is slow, cache parsed calculations
2021-09-29 15:54:14 +02:00
Stefan Zermatten
cb10b53a10 Updated forms and some UI for new data structure 2021-09-28 14:25:11 +02:00