const {HandlebarsApplicationMixin, ApplicationV2} = foundry.applications.api; export default class DhpDeathMove extends HandlebarsApplicationMixin(ApplicationV2) { constructor(actor){ super({}); this.actor = actor; this.selectedMove = null; } get title(){ return game.i18n.format("DAGGERHEART.Application.DeathMove.Title", { actor: this.actor.name }); } static DEFAULT_OPTIONS = { classes: ["daggerheart", "views", "death-move"], position: { width: 800, height: 'auto' }, actions: { selectMove: this.selectMove, takeMove: this.takeMove, }, }; static PARTS = { application: { id: "death-move", template: "systems/daggerheart/templates/views/deathMove.hbs" } } async _prepareContext(_options) { const context = await super._prepareContext(_options); context.selectedMove = this.selectedMove; context.options = SYSTEM.GENERAL.deathMoves; return context; } static selectMove(_, button){ const move = button.dataset.move; this.selectedMove = SYSTEM.GENERAL.deathMoves[move]; this.render(); } static async takeMove(){ const cls = getDocumentClass("ChatMessage"); const msg = new cls({ user: game.user.id, content: await renderTemplate("systems/daggerheart/templates/chat/deathMove.hbs", { player: game.user.character.name, title: game.i18n.localize(this.selectedMove.name), img: this.selectedMove.img, description: game.i18n.localize(this.selectedMove.description), }), }); cls.create(msg.toObject()); this.close(); } }