mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-22 07:23:37 +02:00
44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
/**
|
|
* Spotlight a token on the canvas. If it is a combatant, run it through combatTracker's spotlight logic.
|
|
* @param {TokenDocument} token - The token to spotlight
|
|
* @returns {void}
|
|
*/
|
|
const spotlightCombatantMacro = token => {
|
|
if (!token)
|
|
return ui.notifications.error(game.i18n.localize('DAGGERHEART.MACROS.Spotlight.errors.noTokenSelected'));
|
|
|
|
if (game.combat && token.combatant) {
|
|
ui.combat.setCombatantSpotlight(token.combatant.id);
|
|
} else {
|
|
if (game.combat) ui.combat.clearTurn();
|
|
spotlightToken(token.document);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Spotlight a token on the canvas.
|
|
* @param {TokenDocument} token - The token to spotlight
|
|
* @returns {void}
|
|
*/
|
|
export const spotlightToken = async token => {
|
|
const spotlightTracker = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker);
|
|
let previouslySpotlightedUuid = null;
|
|
const isSpotlighted = spotlightTracker.spotlightedTokens.has(token.uuid);
|
|
if (!isSpotlighted && spotlightTracker.spotlightedTokens.size > 0) {
|
|
previouslySpotlightedUuid = spotlightTracker.spotlightedTokens.first();
|
|
}
|
|
|
|
spotlightTracker.updateSource({
|
|
spotlightedTokens: isSpotlighted ? [] : [token.uuid]
|
|
});
|
|
|
|
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker, spotlightTracker);
|
|
token.object.renderFlags.set({ refreshTurnMarker: true });
|
|
|
|
if (previouslySpotlightedUuid) {
|
|
const previousToken = await foundry.utils.fromUuid(previouslySpotlightedUuid);
|
|
previousToken.object.renderFlags.set({ refreshTurnMarker: true });
|
|
}
|
|
};
|
|
|
|
export default spotlightCombatantMacro;
|