diff --git a/src/documents/actor/actor.js b/src/documents/actor/actor.js index c1f4d256..ebe57245 100644 --- a/src/documents/actor/actor.js +++ b/src/documents/actor/actor.js @@ -463,9 +463,9 @@ export class DS4Actor extends Actor { async selectAttributeAndTrait() { const attributeIdentifier = "attribute-trait-selection-attribute"; const traitIdentifier = "attribute-trait-selection-trait"; - return Dialog.prompt({ - title: getGame().i18n.localize("DS4.DialogAttributeTraitSelection"), - content: await renderTemplate("systems/ds4/templates/dialogs/simple-select-form.hbs", { + return foundry.applications.api.DialogV2.prompt({ + window: { title: getGame().i18n.localize("DS4.DialogAttributeTraitSelection") }, + content: await foundry.applications.handlebars.renderTemplate("systems/ds4/templates/dialogs/simple-select-form.hbs", { selects: [ { label: getGame().i18n.localize("DS4.Attribute"), @@ -489,34 +489,36 @@ export class DS4Actor extends Actor { }, ], }), - label: getGame().i18n.localize("DS4.GenericOkButton"), - callback: (html) => { - const selectedAttribute = html.find(`#${attributeIdentifier}`).val(); - if (!isAttribute(selectedAttribute)) { - throw new Error( - getGame().i18n.format("DS4.ErrorUnexpectedAttribute", { - actualAttribute: selectedAttribute, - expectedTypes: Object.keys(DS4.i18n.attributes) - .map((attribute) => `'${attribute}'`) - .join(", "), - }), - ); - } - const selectedTrait = html.find(`#${traitIdentifier}`).val(); - if (!isTrait(selectedTrait)) { - throw new Error( - getGame().i18n.format("DS4.ErrorUnexpectedTrait", { - actualTrait: selectedTrait, - expectedTypes: Object.keys(DS4.i18n.traits) - .map((attribute) => `'${attribute}'`) - .join(", "), - }), - ); - } - return { - attribute: selectedAttribute, - trait: selectedTrait, - }; + ok: { + label: getGame().i18n.localize("DS4.GenericOkButton"), + callback: (event, button, dialog) => { + const selectedAttribute = button.form.elements[attributeIdentifier].value; + if (!isAttribute(selectedAttribute)) { + throw new Error( + getGame().i18n.format("DS4.ErrorUnexpectedAttribute", { + actualAttribute: selectedAttribute, + expectedTypes: Object.keys(DS4.i18n.attributes) + .map((attribute) => `'${attribute}'`) + .join(", "), + }), + ); + } + const selectedTrait = button.form.elements[traitIdentifier].value; + if (!isTrait(selectedTrait)) { + throw new Error( + getGame().i18n.format("DS4.ErrorUnexpectedTrait", { + actualTrait: selectedTrait, + expectedTypes: Object.keys(DS4.i18n.traits) + .map((attribute) => `'${attribute}'`) + .join(", "), + }), + ); + } + return { + attribute: selectedAttribute, + trait: selectedTrait, + }; + }, }, rejectClose: false, }); diff --git a/src/utils/utils.js b/src/utils/utils.js index ae2f52eb..1849eb6e 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -30,7 +30,7 @@ export function enforce(value, message) { * @returns {Canvas} */ export function getCanvas() { - enforce(canvas instanceof Canvas && canvas.ready, getGame().i18n.localize("DS4.ErrorCanvasIsNotInitialized")); + enforce(canvas instanceof foundry.canvas.Canvas && canvas.ready, getGame().i18n.localize("DS4.ErrorCanvasIsNotInitialized")); return canvas; }