mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-17 23:49:02 +01:00
Redid it a better way
This commit is contained in:
parent
91c25bcac5
commit
c3e4f3922e
2 changed files with 22 additions and 5 deletions
|
|
@ -66,12 +66,9 @@ export default class DHTokenHUD extends foundry.applications.hud.TokenHUD {
|
||||||
if (!status) continue;
|
if (!status) continue;
|
||||||
if (status._id) {
|
if (status._id) {
|
||||||
if (status._id !== effect.id) continue;
|
if (status._id !== effect.id) continue;
|
||||||
} else {
|
|
||||||
if (effect.statuses.size !== 1) continue;
|
|
||||||
}
|
}
|
||||||
status.isActive = true;
|
status.isActive = true;
|
||||||
if (effect.getFlag('core', 'overlay')) status.isOverlay = true;
|
if (effect.getFlag('core', 'overlay')) status.isOverlay = true;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,28 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token {
|
||||||
this.effects.overlay = null;
|
this.effects.overlay = null;
|
||||||
|
|
||||||
// Categorize effects
|
// Categorize effects
|
||||||
const activeEffects = this.actor ? Array.from(this.actor.effects).filter(x => !x.disabled) : [];
|
const statusMap = new Map(foundry.CONFIG.statusEffects.map(status => [status.id, status]));
|
||||||
const overlayEffect = activeEffects.findLast(e => e.img && e.getFlag('core', 'overlay'));
|
const activeEffects = (this.actor ? this.actor.effects.filter(x => !x.disabled) : []).reduce((acc, effect) => {
|
||||||
|
acc.push(effect);
|
||||||
|
|
||||||
|
const currentStatusActiveEffects = acc.filter(
|
||||||
|
x => x.statuses.size === 1 && x.name === game.i18n.localize(statusMap.get(x.statuses.first()).name)
|
||||||
|
);
|
||||||
|
for (var status of effect.statuses) {
|
||||||
|
if (!currentStatusActiveEffects.find(x => x.statuses.includes(status))) {
|
||||||
|
const statusData = statusMap.get(status);
|
||||||
|
acc.push({
|
||||||
|
name: game.i18n.localize(statusData.name),
|
||||||
|
statuses: [status],
|
||||||
|
img: statusData.icon,
|
||||||
|
tint: effect.tint
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}, []);
|
||||||
|
const overlayEffect = activeEffects.findLast(e => e.img && e.getFlag?.('core', 'overlay'));
|
||||||
|
|
||||||
// Draw effects
|
// Draw effects
|
||||||
const promises = [];
|
const promises = [];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue