This module will provide a convenient interface to handle a character's daily preparations, here is a list of built-in features in the module:
Consuming Rations
- if the character has any rations available in their inventory, they will be offered the option to consume one.
Familiar Abilities
- If the character has a familiar, the module will offer the ability to select its abilities.
Language related
Skill related
Resistance related
Feat related
Spell related
Scroll related
Mind Smith Dedication
Divine Ally
- Blade Ally
- The Tenets of Good
- The Tenets of Evil
- Liberator
- Paladin
- Antipaladin
- Tyrant
- Radiant Blade Spirit
- Radiant Blade Master
- The system's
Effect: Blade Ally
isn't needed anymore
Others
A new character sheet icon will appear next to the rest
one, clicking on it will open the daily preparations interface.
The interface will look different depending on the feats and items present on the character and its current level.
The interface allows the user to open the compendium browser (with the right settings) and directly drag & drop the appropriate items.
When a spell is dropped in a spell slot, a temporary spell scroll will be created with the appropriate hightened level directly in the character's inventory.
When needed, a spellcasting entry will also be created to house the added spells.
Selected feats are directly added to the character feat tab, in cascade with the related feat that gave the user the choice.
Equipment items need to be invested to appear in the interface, the bonus provided is linked to the item itself and like any other bonuses, will be removed if the character un-invest or un-equip the item.
When there is a problem with any part of data gathering (like the Mind Weapon
missing), the alert field will be displayed in place of a regular option one, it will have a succinct description of the issue and offer a way to resolve it by clicking on the alert triangle.
This is not to be mistaken with an error message, this is used to offer the user a way to interract beyond the interface window, like automatically creating your Mind Weapon
.
Sometimes, you should have the option to select an option from a defined list AND have the opportunity to manually enter some value, for instance with skills which when offered the choice of selecting one, allows for the selection of a lore skill.
In those cases, the combo field will be used, allowing you to select an options from the dropdown but also to manually type in the input field.
The module will randomly pick an option when necessary.
A die icon will be displayed in the interface window to point out which options are randomly picked, the different options will also loop over inside the field.
A die icon is also added to the chat message to accentuate which options were randomly chosen.
A descriptive chat message will be created to indicate what has been prepared.
Feats and items that require you to select an options (e.g. skill or language) will be reset on rest
.
You can add additional familiar abilities by adding their UUIDs in the settings (comma separated).
You can add your own dailies using the register
menu in the settings.
Note: If you want to have a better experience while creating homebrew dailies, there is an extension for the module with a very powerful text editor including all the typings of the module. The extension module is not registered with the foundry but you can find it there: https://github.com/reonZ/pf2e-dailies-ext
A set of functions is exposed from the module to be used by third parties:
/**
* Retrieves the API object containing the funtions
*/
game.modules.get('pf2e-dailies').api
/**
* Opens the `Daily Preparations` interface for a character
* if no actor parameter is provided, the module will look
* for a valid character among the currently selected tokens
* or get the default user's character if any.
*
* @param {CharacterPF2e} [actor]
*/
function openDailiesInterface(actor?: CharacterPF2e): void
/**
* This will create a chat message reminding all the users to do their
* daily preparations, this requires for the setting `Watch For Request`
* to be enabled, otherwise the chat card button will not be functional.
*/
function requestDailies(): void
/**
* @returns {Utils} a copy of the utils passed as argument in the different functions of a Daily
*/
function getUtils(): Utils
/**
* @returns {Daily[]} a copy of the built-in dailies' raw data
*/
function getBuiltinDailies(): Daily[]
/**
* @returns {Daily[]} a copy of the custom dailies' raw data
*/
function getCustomDailies(): Daily[]
/**
* @param {Daily[]} dailies
* @returns {Map<uuid, {daily: Daily, condition: (...args) => boolean}>} map of all the usable item uuids
*/
function prepareDailies(dailies: Daily[]): Map<uuid, {daily: Daily, condition: (...args) => boolean}>
/**
* @param {Daily} daily
* @param {boolean} [warning] will show a warning notification on screen when true
* @returns {boolean} true if the custom daily isn't skipped
*/
function checkCustomDaily(daily: Daily, warning?: boolean): boolean
You can see the changelog HERE