Introduced a adversary category split for BP calculation and CombatTracker display based on token disposition

This commit is contained in:
WBHarry 2026-05-10 14:47:41 +02:00
parent abd7824c96
commit 3f9f4fac17
4 changed files with 24 additions and 4 deletions

View file

@ -56,7 +56,12 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C
async _prepareTrackerContext(context, options) {
await super._prepareTrackerContext(context, options);
const adversaries = context.turns?.filter(x => x.isNPC) ?? [];
const npcs = context.turns?.filter(x => x.isNPC) ?? [];
const adversaries = npcs.filter(x => x.disposition === CONST.TOKEN_DISPOSITIONS.HOSTILE);
const friendlies = npcs.filter(x => x.disposition === CONST.TOKEN_DISPOSITIONS.FRIENDLY);
const neutrals = npcs.filter(x =>
[CONST.TOKEN_DISPOSITIONS.SECRET, CONST.TOKEN_DISPOSITIONS.NEUTRAL].includes(x.disposition)
);
const characters = context.turns?.filter(x => !x.isNPC) ?? [];
const spotlightQueueEnabled = game.settings.get(
CONFIG.DH.id,
@ -75,6 +80,8 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C
Object.assign(context, {
actionTokens: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).actionTokens,
adversaries,
friendlies,
neutrals,
allCharacters: characters,
characters: characters.filter(x => !spotlightQueueEnabled || x.system.spotlight.requestOrderIndex == 0),
spotlightRequests
@ -129,7 +136,8 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C
active: index === combat.turn,
canPing: combatant.sceneId === canvas.scene?.id && game.user.hasPermission('PING_CANVAS'),
type: combatant.actor?.system?.type,
img: await this._getCombatantThumbnail(combatant)
img: await this._getCombatantThumbnail(combatant),
disposition: combatant.token.disposition
};
turn.css = [turn.active ? 'active' : null, hidden ? 'hide' : null, isDefeated ? 'defeated' : null].filterJoin(