mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-21 23:13:39 +02:00
37 lines
1.6 KiB
JavaScript
37 lines
1.6 KiB
JavaScript
/**
|
|
* Spotlights a combatant.
|
|
* The combatant can be selected in a number of ways. If many are applied at the same time, the following order is used:
|
|
* 1) SelectedCombatant
|
|
* 2) HoveredCombatant
|
|
*/
|
|
const spotlightCombatant = () => {
|
|
const selectedTokens = canvas.tokens.controlled.length > 0 ? canvas.tokens.controlled : [];
|
|
const hoveredTokens = game.canvas.tokens.hover ? [game.canvas.tokens.hover] : [];
|
|
|
|
const tokens = selectedTokens.length ? selectedTokens : hoveredTokens;
|
|
if (!tokens.length)
|
|
return ui.notifications.error(game.i18n.localize('DAGGERHEART.MACROS.Spotlight.errors.noCombatantSelected'));
|
|
|
|
const spotlightTracker = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker);
|
|
spotlightTracker.updateSource();
|
|
|
|
for (const token of tokens) {
|
|
if (game.combat && token.combatant) {
|
|
ui.combat.setCombatantSpotlight(token.combatant.id);
|
|
} else {
|
|
const isSpotlighted = spotlightTracker.spotlightedTokens.has(token.document.uuid);
|
|
spotlightTracker.updateSource({
|
|
spotlightedTokens: isSpotlighted
|
|
? [...spotlightTracker.spotlightedTokens].filter(x => x !== token.document.uuid)
|
|
: [...spotlightTracker.spotlightedTokens, token.document.uuid]
|
|
});
|
|
}
|
|
}
|
|
|
|
game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker, spotlightTracker);
|
|
for (const token of tokens) {
|
|
token.renderFlags.set({ refreshTurnMarker: true });
|
|
}
|
|
};
|
|
|
|
export default spotlightCombatant;
|