import { Misc } from "./misc.js"; import { RdDCalendrier } from "./rdd-calendrier.js"; import { RdDUtility } from "./rdd-utility.js"; /** * Extend the base Dialog entity by defining a custom window to perform roll. * @extends {Dialog} */ export class RdDAstrologieJoueur extends Dialog { /* -------------------------------------------- */ static async create(actor, dialogConfig) { let data = { nombres: this.organizeNombres( actor), dates: game.system.rdd.calendrier.getJoursSuivants( 10 ), etat: actor.getEtatGeneral(), ajustementsConditions: CONFIG.RDD.ajustementsConditions, astrologie: RdDUtility.findCompetence( actor.data.items, 'Astrologie') } const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-astrologie-joueur.html', data); let options = { classes: ["rdddialog"], width: 600, height: 500, 'z-index': 99999 }; if (dialogConfig.options) { mergeObject(options, dialogConfig.options, { overwrite: true }); } return new RdDAstrologieJoueur(html, actor, data); } /* -------------------------------------------- */ constructor(html, actor, data ) { let myButtons = { saveButton: { label: "Fermer", callback: html => this.quitDialog() } }; // Get all n // Common conf let dialogConf = { content: html, title: "Nombres Astraux", buttons: myButtons, default: "saveButton" }; let dialogOptions = { classes: ["rdddialog"], width: 600, height: 300, 'z-index': 99999 } ; super(dialogConf, dialogOptions); this.actor = actor; this.dataNombreAstral = duplicate(data); } /* -------------------------------------------- */ static organizeNombres(actor) { let itemNombres = actor.data.items.filter( (item) => item.type == 'nombreastral'); let itemFiltered = {}; for ( let item of itemNombres) { if ( itemFiltered[item.data.jourindex] ) { itemFiltered[item.data.jourindex].listValues.push(item.data.value); } else { itemFiltered[item.data.jourindex] = { listValues: [ item.data.value ], jourlabel: item.data.jourlabel } } } return itemFiltered; } /* -------------------------------------------- */ requestJetAstrologie( ) { let data = { id: this.actor.data._id, carac_vue: this.actor.data.data.carac['vue'].value, etat: this.dataNombreAstral.etat, astrologie: this.dataNombreAstral.astrologie, conditions: $("#diffConditions").val(), date: $("#joursAstrologie").val() } if ( game.user.isGM) { game.system.rdd.calendrier.requestNombreAstral( data ); } else { game.socket.emit("system.foundryvtt-reve-de-dragon", { msg: "msg_request_nombre_astral", data: data } ); } this.close(); } /* -------------------------------------------- */ quitDialog() { } /* -------------------------------------------- */ activateListeners(html) { super.activateListeners(html); $(function () { $("#diffConditions").val(0); }); html.find('#jet-astrologie').click((event) => { this.requestJetAstrologie(); }); } }