Repository navigation
Release v4.4.0
Features
Automatically update weapon rates of attack based on class, level, and mastery #357
-
This is a config option, enabled by default. But a GM can disable it if preferred. It is on the General Rules tab:

-
Non-fighters never speed up their attacks (they do not have weapon mastery either), so the RoF on their weapons never changes.
-
Since we know the rate of attack progression for fighter classes, and we know how mastery/grandmastery affect the values, it is possible to automatically calculate this and apply it to owned weapons on the character sheet.
-
Some thoughts on how to design this:
- Only run the RoF updates for fighter classes, ignore others
- Don't update the RoF too often. Only when needed, like when certain changes occur:
- The character levels up
- The character gains weapon mastery
- While the value is updated on the weapon-item, it is controlled by the owner-character. The Favoured Weapons app will be the primary means to manage this (in addition to one automatic update when leveling up to 7th)
Bug Fixes
Bug: Weapon Mastery does not apply damage bonus #358
- This used to work, but the new Favoured Weapons functionality required a change to the data schema which broke this. Simple fix.
Bug: Character baseClass is sometimes set to "" or "npc" #359
- Issue appears to be in the character data schema's prepareBaseData() method, where getClassTemplate() is called. But getClassTemplate() is an async method, and prepareBaseData() cannot await it. So it gets an empty promise back, and then defaults the result to "npc".
- This only happens in certain circumstances where the character was NOT created using the Quick-Create feature. That feature correctly populates the baseClass field. But if the character was created manually, then this issue could occur.
- The data fix is to run a one-time data fix/migration the next time the world is loaded. So I added code to the migration function to fix any actor with "" or "npc" in the baseClass field.
- In addition, when a class is chosen from the select list (on a new character sheet), the system will now automatically populate the baseClass field right away. This prevents the issue of the field being blank or null later on.
Full Changelog: v4.3.1...v4.4.0