This commit is contained in:
WBHarry 2026-01-08 20:49:49 +01:00
parent 27d49d35fa
commit ae211cda30
6 changed files with 8 additions and 121 deletions

View file

@ -1,50 +0,0 @@
const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api;
export default class DHSummonDialog extends HandlebarsApplicationMixin(ApplicationV2) {
constructor(summonData) {
super(summonData);
// Initialize summons and index
this.summons = summonData.summons || [];
}
static PARTS = {
main: { template: 'systems/daggerheart/templates/dialogs/summon/summonDialog.hbs' }
};
static DEFAULT_OPTIONS= {
tag: 'form',
window: {
title: "DAGGERHEART.APPLICATIONS.Summon.title",
resizable: false
},
position: {
width: 400,
height: 'auto'
},
classes: ['daggerheart', 'dialog', 'summon-dialog'],
dragDrop: [{dragSelector: '.summon-token'}],
};
async _prepareContext() {
const context = await super._prepareContext();
context.summons=await Promise.all(this.summons.map(async(entry)=>{
const actor = await fromUuid(entry.actorUUID);
return {
...entry,
name: actor?.name || game.i18n.localize("DAGGERHEART.GENERAL.Unknown"),
img: actor?.img || 'icons/svg/mystery-man.svg',
};
}));
return context;
}
_onDragStart(event) {
const uuid = event.currentTarget.dataset.uuid;
if(!uuid) return;
const dragData = { type: 'Actor', uuid: uuid };
event.dataTransfer.effectAllowed = 'all';
event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
}
}

View file

@ -109,7 +109,7 @@ export default class DHActionBaseConfig extends DaggerheartSheet(ApplicationV2)
async _prepareContext(_options) {
const context = await super._prepareContext(_options, 'action');
context.source = this.action.toObject(true);
// Resolving summon entries so actions can read entry.name / entry.img / entry.uuid
context.summons = [];
for (const summon of context.source.summon) {
const actor = await foundry.utils.fromUuid(summon.actorUUID);
@ -233,17 +233,10 @@ export default class DHActionBaseConfig extends DaggerheartSheet(ApplicationV2)
this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) });
}
static async editDoc(event, button) {
event.stopPropagation();
const uuid = button?.dataset.itemUuid ?? button?.dataset.uuid; // Obtain uuid from dataset
if (!uuid) return;
//Try catching errors
try {
const doc = await foundry.utils.fromUuid(uuid);
if (doc?.sheet) return doc.sheet.render({ force: true });
} catch (err) {
console.warn('editDoc action failed for', uuid, err);
}
static async editDoc(_event, target) {
const element = target.closest('[data-item-uuid]');
const doc = (await foundry.utils.fromUuid(element.dataset.itemUuid)) ?? null;
if (doc) return doc.sheet.render({ force: true });
}
static addDamage(_event) {
@ -264,6 +257,7 @@ export default class DHActionBaseConfig extends DaggerheartSheet(ApplicationV2)
}
updateSummonCount(event) {
event.stopPropagation();
const wrapper = event.target.closest('.summon-count-wrapper');
const index = wrapper.dataset.index;
const data = this.action.toObject();