Migration complétée vers appv2
This commit is contained in:
@@ -1,102 +1,103 @@
|
||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
|
||||
|
||||
export class TeDeumRollDialog extends Dialog {
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class TeDeumRollDialog extends HandlebarsApplicationMixin(foundry.applications.api.ApplicationV2) {
|
||||
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["fvtt-te-deum", "te-deum-roll-dialog"],
|
||||
window: { title: "Lancer !", resizable: false },
|
||||
position: { width: 540 },
|
||||
actions: {
|
||||
roll: TeDeumRollDialog.#onRoll,
|
||||
cancel: TeDeumRollDialog.#onCancel,
|
||||
}
|
||||
}
|
||||
|
||||
static PARTS = {
|
||||
content: { template: "systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs" }
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
constructor(actor, rollData, options = {}) {
|
||||
super(options)
|
||||
this.actor = actor
|
||||
this.rollData = rollData
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async create(actor, rollData) {
|
||||
|
||||
let options = { classes: ["tedeum-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
||||
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
||||
return new TeDeumRollDialog(actor, rollData, html, options);
|
||||
const dialog = new TeDeumRollDialog(actor, rollData)
|
||||
dialog.render(true)
|
||||
return dialog
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
constructor(actor, rollData, html, options, close = undefined) {
|
||||
let conf = {
|
||||
title: "Lancer !",
|
||||
content: html,
|
||||
buttons: {
|
||||
roll: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Lancer",
|
||||
callback: () => { this.roll() }
|
||||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: "Annuler",
|
||||
callback: () => { this.close() }
|
||||
}
|
||||
},
|
||||
close: close
|
||||
}
|
||||
|
||||
super(conf, options);
|
||||
|
||||
this.actor = actor;
|
||||
this.rollData = rollData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
roll() {
|
||||
TeDeumUtility.rollTeDeum(this.rollData)
|
||||
async _prepareContext() {
|
||||
return { ...this.rollData }
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async refreshDialog() {
|
||||
const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-te-deum/templates/dialogs/roll-dialog-generic.hbs", this.rollData)
|
||||
this.data.content = content
|
||||
this.render(true)
|
||||
this.render()
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
static #onRoll(event, target) {
|
||||
TeDeumUtility.rollTeDeum(this.rollData)
|
||||
this.close()
|
||||
}
|
||||
|
||||
let dialog = this;
|
||||
function onLoad() {
|
||||
}
|
||||
$(function () { onLoad(); });
|
||||
/* -------------------------------------------- */
|
||||
static #onCancel(event, target) {
|
||||
this.close()
|
||||
}
|
||||
|
||||
html.find('#bonusMalusPerso').change((event) => {
|
||||
/* -------------------------------------------- */
|
||||
_onRender(context, options) {
|
||||
super._onRender(context, options)
|
||||
|
||||
const html = this.element
|
||||
|
||||
html.querySelector('#bonusMalusPerso')?.addEventListener('change', (event) => {
|
||||
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#roll-allonge').change((event) => {
|
||||
html.querySelector('#roll-allonge')?.addEventListener('change', (event) => {
|
||||
this.rollData.allongeId = event.currentTarget.value
|
||||
})
|
||||
html.find('#roll-main-gauche').change((event) => {
|
||||
html.querySelector('#roll-main-gauche')?.addEventListener('change', (event) => {
|
||||
this.rollData.isMainGauche = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-difficulty').change((event) => {
|
||||
html.querySelector('#roll-difficulty')?.addEventListener('change', (event) => {
|
||||
this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut"
|
||||
})
|
||||
html.find('#roll-attaque-ciblee').change((event) => {
|
||||
html.querySelector('#roll-attaque-ciblee')?.addEventListener('change', (event) => {
|
||||
this.rollData.attaqueCiblee = event.currentTarget.value || "0"
|
||||
})
|
||||
html.find('#roll-bonus-malus').change((event) => {
|
||||
html.querySelector('#roll-bonus-malus')?.addEventListener('change', (event) => {
|
||||
this.rollData.bonusMalus = event.currentTarget.value || "0"
|
||||
})
|
||||
html.find('#roll-enable-providence').change((event) => {
|
||||
html.querySelector('#roll-enable-providence')?.addEventListener('change', (event) => {
|
||||
this.rollData.enableProvidence = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-portee-tir').change((event) => {
|
||||
html.querySelector('#roll-portee-tir')?.addEventListener('change', (event) => {
|
||||
this.rollData.porteeTir = event.currentTarget.value
|
||||
this.rollData.difficulty = game.system.tedeum.config.ARME_PORTEES[this.rollData.porteeTir].difficulty
|
||||
this.rollData.porteeLabel = game.system.tedeum.config.ARME_PORTEES[this.rollData.porteeTir].label
|
||||
this.refreshDialog()
|
||||
})
|
||||
html.find('#roll-tir-viser').change((event) => {
|
||||
html.querySelector('#roll-tir-viser')?.addEventListener('change', (event) => {
|
||||
this.rollData.isViser = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-tir-mouvement').change((event) => {
|
||||
html.querySelector('#roll-tir-mouvement')?.addEventListener('change', (event) => {
|
||||
this.rollData.isMouvement = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-charge-a-pied').change((event) => {
|
||||
html.querySelector('#roll-charge-a-pied')?.addEventListener('change', (event) => {
|
||||
this.rollData.isChargeAPied = event.currentTarget.checked
|
||||
})
|
||||
html.find('#roll-charge-a-cheval').change((event) => {
|
||||
html.querySelector('#roll-charge-a-cheval')?.addEventListener('change', (event) => {
|
||||
this.rollData.isChargeACheval = event.currentTarget.checked
|
||||
})
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user