From f900cb7d53567fca24b6d0320d11107446932b32 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Wed, 28 May 2025 21:44:43 -0500 Subject: [PATCH] move various power dialogs to DialogV2 --- src/module/powers/powers.js | 33 ++++++++++++++++++--------------- src/module/powers/summon.js | 29 +++++++++++++++-------------- src/module/powers/zombie.js | 26 +++++++++++++------------- 3 files changed, 46 insertions(+), 42 deletions(-) diff --git a/src/module/powers/powers.js b/src/module/powers/powers.js index 0c77241..e8dff74 100644 --- a/src/module/powers/powers.js +++ b/src/module/powers/powers.js @@ -78,6 +78,8 @@ import { WishEffect } from './wish.js'; import { ZombieEffect } from './zombie.js'; import { InquisitorJudgementEffect } from './inquisitor.js'; +const { DialogV2 } = foundry.applications.api; + const PowerClasses = { 'animal-companion': SummonCompanionEffect, 'arcane-protection': ArcaneProtectionEffect, @@ -313,7 +315,7 @@ export async function powerEffectsMenu(options = {}) { const powerInst = new powerClass(); powers[powerInst.name] = powerClass; } - let form = `
+ let form = `

Select a power.

@@ -332,21 +334,22 @@ export async function powerEffectsMenu(options = {}) { } form += ``; } - form += `
`; - const formResult = await Dialog.wait({ - title: 'Select a power', - content: form, - buttons: { - submit: { - label: 'Choose Power', - callback: (html) => { - const formElement = html[0].querySelector('form'); - const formData = new FormDataExtended(formElement); - return formData; - }, - }, - cancel: { label: 'Cancel' }, + form += ``; + const formResult = await DialogV2.wait({ + window: { + title: 'Select a power', + icon: 'fa-solid fa-wand-magic-sparkles', }, + content: form, + buttons: [ + { + action: 'submit', + label: 'Choose Power', + default: true, + callback: (event, button, dialog) => new FormDataExtended(button.form), + }, + { action: 'cancel', label: 'Cancel' }, + ], }); console.log(formResult); const powerName = formResult.get('power'); diff --git a/src/module/powers/summon.js b/src/module/powers/summon.js index f95501c..7e0b838 100644 --- a/src/module/powers/summon.js +++ b/src/module/powers/summon.js @@ -141,7 +141,7 @@ class BaseAllyEffect extends BaseSummonEffect { const skillList = Array.from(skillSet); skillList.sort(); const attrList = ['Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor']; - let html = `

Increase Attributes

(+1 pp each)

`; + let html = `

Increase Attributes

(+1 pp each)

`; html += attrList .map( (name) => `
@@ -157,20 +157,21 @@ class BaseAllyEffect extends BaseSummonEffect {
`, ) .join(''); - const formData = await Dialog.wait({ - title: 'Select Trait increases', - content: html, - buttons: { - submit: { - label: 'Submit', - callback: (html) => { - const formElement = html[0].querySelector('form'); - const formData = new FormDataExtended(formElement); - return formData.object; - }, - }, - cancel: { label: 'Cancel' }, + html += '
'; + const formData = await foundry.applications.api.DialogV2.wait({ + window: { + title: 'Select Trait increases', + icon: 'fa-solid fa-person-arrow-up-from-line', }, + content: html, + buttons: [ + { + action: 'submit', + label: 'Submit', + callback: (event, button, dialog) => new FormDataExtended(button.form), + }, + { action: 'cancel', label: 'Cancel' }, + ], }); const mode = CONST.ACTIVE_EFFECT_MODES.ADD; const value = 2; diff --git a/src/module/powers/zombie.js b/src/module/powers/zombie.js index 1579453..1fa0fec 100644 --- a/src/module/powers/zombie.js +++ b/src/module/powers/zombie.js @@ -159,20 +159,20 @@ export class ZombieEffect extends BaseSummonEffect {
`; - const formData = await Dialog.wait({ - title: 'Select trait for raise increase', - content: html, - buttons: { - submit: { - label: 'Submit', - callback: (html) => { - const formElement = html[0].querySelector('form'); - const formData = new FormDataExtended(formElement); - return formData.object; - }, - }, - cancel: { label: 'cancel' }, + const formData = await foundry.applications.api.DialogV2.wait({ + window: { + title: 'Select trait for raise increase', + icon: 'fa-solid fa-biohazard', }, + content: html, + buttons: [ + { + action: 'submit', + label: 'Submit', + callback: (event, button, dialog) => new FormDataExtended(button.form), + }, + { action: 'cancel', label: 'cancel' }, + ], }); const key = formData.trait; this.data.primaryEffectChanges.push({