diff --git a/src/macros_new/gowlers-tracking-ledger/foundry.gowlershome.dyndns.org/modules/gowlers-tracking-ledger/scripts/gowlers-tracking-ledger.js b/src/macros_new/gowlers-tracking-ledger/foundry.gowlershome.dyndns.org/modules/gowlers-tracking-ledger/scripts/gowlers-tracking-ledger.js index ae164061..3a7c802b 100644 --- a/src/macros_new/gowlers-tracking-ledger/foundry.gowlershome.dyndns.org/modules/gowlers-tracking-ledger/scripts/gowlers-tracking-ledger.js +++ b/src/macros_new/gowlers-tracking-ledger/foundry.gowlershome.dyndns.org/modules/gowlers-tracking-ledger/scripts/gowlers-tracking-ledger.js @@ -1657,7 +1657,31 @@ function refreshDamageMeterOverlay() { function computeDamageMeterData() { const currentEncounterId = game.combat?.id ?? ledgerState.lastCombatId ?? null; - const actors = game.actors.contents ?? []; + const actorsMap = new Map(); + + // Directory actors + for (const a of game.actors.contents ?? []) { + actorsMap.set(a.id, a); + } + + // Current combatants (covers unlinked tokens) + if (game.combat) { + for (const c of game.combat.combatants) { + if (c.actor) actorsMap.set(c.actor.id, c.actor); + } + } + + // Last combat combatants (if not current) + if (!game.combat && ledgerState.lastCombatId) { + const lastCombat = game.combats?.get?.(ledgerState.lastCombatId); + if (lastCombat) { + for (const c of lastCombat.combatants) { + if (c.actor) actorsMap.set(c.actor.id, c.actor); + } + } + } + + const actors = Array.from(actorsMap.values()); const totals = []; const includeNPCs = ledgerState.damageMeterIncludeNPCs; @@ -1723,7 +1747,9 @@ function buildDamageMeterContent() { return `
Damage Meter
-
${encounterLabel}${npcToggle} v${MODULE_VERSION}
+
+ ${encounterLabel}${npcToggle} +
@@ -1747,6 +1773,7 @@ function buildDamageMeterContent() {
+
v${MODULE_VERSION}
`; }