daggerheart/module/applications/dialogs/summonDialog.mjs
2026-01-07 15:53:25 -05:00

50 lines
No EOL
1.6 KiB
JavaScript

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));
}
}