The "refreshToken" hook was already used to hide boss bars for other clients when updating the bar visibility. However, this did not apply when making the token itself appear, as it would not trigger a re-draw. Update `should_have_boss_bar()` to check if the token is visible or not and update our "refreshToken" hook to trigger a bar refresh for tokens that should have a boss bar, but are not present in the tracker. This fixes boss bars being shown for hidden tokens, and allows them to appear when their become newly visible. Early exit of "refreshToken" if the token is a clone, as we shouldn't have anything to do with them here. |
||
---|---|---|
assets | ||
lang | ||
packs/macros | ||
scripts | ||
styles | ||
.gitattributes | ||
.gitignore | ||
LICENSE | ||
module.json | ||
README.md |
The Mill's Fabula - v0.7.1
This little FoundryVTT module is a collection of compendiums and functionalities to power our Fabula Ultima campaigns.
Compatibility
This is only compatible with Foundry v12 currently.
Installation
Currently, this can only be installed via manifest file, using the following URL :
https://git.tfk-astrodome.net/trotFunky/TheMillsFabula/raw/branch/release/module.json
Features
This module is an aggregate of different things that are useful for us or that the GM wanted to play with, so they don't necessarily connect with each other and can be disabled if wanted.
They are described below in their own sections.
Combat border
This part of the module adds a dynamic border around player tokens, which changes during combat.
The border is always visible, but after a player has taken their turn it will switch to a different border, highlighting the tokens that have played for this combat turn.
The module supports going back and forth in the combat rounds, as well as going back in the turn order. (Though because of limitations of the Fabula Ultima system, does not allow going forward in the turn order.)
Settings
- An image to use for the default/idle border
- An image to use for the took turn/played/inactive border
Token UI adjustments
Given that we add a border on the tokens, it conflicts with the base attribute bars and status effect indicators which
are drawn over the token's square.
The token UI adjustments move the two attribute bars below the token, outside its space, first HP then mana.
As this is where the nameplate of the token should be, move it above the token instead.
The status effect indicators are moved entirely outside the token space as well, to the right, but as it is not useful
for NPCs this is only done for PC tokens.
For "Champion" NPC tokens, if their health bar is visible the token UI adjustments will detach it from the token and
turn it into a "boss bar" centered at the bottom of the screen, in a Dark Souls fashion.
The nameplate will also be moved there if both it and the health bar are shown.
Multiple bosses are supported at the same time and the bars will update their positions dynamically.
Take care though, as it can quickly cover the screen up !
Limitations
- The token's detailed UI when right-clicking will overlap the bars in their new positions (it already overlapped the name)
- The current implementation relies on monkey patching, which make it vulnerable to compatibility issues with other modules manipulating the same methods.
- The "boss bars" do not refresh when the screen size changes, only when created.
Fortune integration
In our game, "Fortune" is a key currency in the world.
This adds an interactable display in the character sheets, allowing it to be tracked, and in the party sheet,
for a nice overview.
The value is stored in flags, and will not be lost when disabling the module or option.
Similarly to the Fabula header, the Fortune header can be clicked, allowing players to send Fortune
to other player characters.
The whole transaction and updating is automated for both sides.
GMs have a new tool added under the Fabula Ultima system toolbar on the left that allows them to
distribute Fortune to players.
The dialog that pops up is very similar, but allows choosing multiple recipients at once (which can be pre-filled
depending on the needs of the GM) and has no maximum limit.
Compendia
- The only thing in the compendium pack is a macro automating the tinkerer's alchemy potions, allowing to choose how many PIs to spend, how to allocate the results, previews and a final chat message with the results.
Dependencies
Modules:
- socketlib
System:
- Fabula Ultima
License
The code present in this repository is licensed under the Mozilla Public License 2.0.
Assets that we created in this repository are licensed under CC-BY-SA 4.0, unless otherwise specified.