Re-render party when members update (#1242)

This commit is contained in:
Carlos Fernandez 2025-11-06 09:59:23 -05:00 committed by GitHub
parent ff752bfaf2
commit 3fa4c7d81f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 37 additions and 0 deletions

View file

@ -24,4 +24,25 @@ export default class DhParty extends BaseDataActor {
static DEFAULT_ICON = 'systems/daggerheart/assets/icons/documents/actors/dark-squad.svg';
/* -------------------------------------------- */
prepareBaseData() {
super.prepareBaseData();
this.partyMembers = this.partyMembers.filter((p) => !!p);
// Register this party to all members
if (fromUuidSync(this.parent.uuid) === this.parent) {
for (const member of this.partyMembers) {
member.parties?.add(this.parent);
}
}
}
_onDelete(options, userId) {
super._onDelete(options, userId);
// Clear this party from all members that aren't deleted
for (const member of this.partyMembers) {
member.parties?.delete(this.parent);
}
}
}

View file

@ -5,6 +5,8 @@ import { createScrollText, damageKeyToNumber } from '../helpers/utils.mjs';
import DhCompanionLevelUp from '../applications/levelup/companionLevelup.mjs';
export default class DhpActor extends Actor {
parties = new Set();
#scrollTextQueue = [];
#scrollTextInterval;
@ -83,6 +85,20 @@ export default class DhpActor extends Actor {
this.updateSource({ prototypeToken });
}
_onUpdate(changes, options, userId) {
super._onUpdate(changes, options, userId);
for (const party of this.parties) {
party.render();
}
}
_onDelete(options, userId) {
super._onDelete(options, userId);
for (const party of this.parties) {
party.render();
}
}
async updateLevel(newLevel) {
if (!['character', 'companion'].includes(this.type) || newLevel === this.system.levelData.level.changed) return;