From b37de0a420510d331a1038b51d0364055d0bb687 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Wed, 14 Apr 2021 22:28:49 +0200 Subject: [PATCH] Payer pour l'actor d'un token MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Comme ça le MJ peut acheter lui aussi --- module/rdd-utility.js | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/module/rdd-utility.js b/module/rdd-utility.js index db6ef01c..a2fb6c2c 100644 --- a/module/rdd-utility.js +++ b/module/rdd-utility.js @@ -204,9 +204,9 @@ export class RdDUtility { } /* -------------------------------------------- */ - static buildListOptions( min, max ) { + static buildListOptions(min, max) { let options = "" - for(let i=min; i<= max; i++) { + for (let i = min; i <= max; i++) { options += `` } return options; @@ -530,24 +530,38 @@ export class RdDUtility { // Gestion du bouton payer html.on("click", '.payer-button', event => { let sumdenier = event.currentTarget.attributes['data-somme-denier'].value; - let quantite = 1; - if (event.currentTarget.attributes['data-quantite']) { - quantite = event.currentTarget.attributes['data-quantite'].value; - } + let quantite = event.currentTarget.attributes['data-quantite']?.value ?? 1; let jsondata = event.currentTarget.attributes['data-jsondata'] let objData if (jsondata) { objData = JSON.parse(jsondata.value) } - if (game.user.character) { - game.user.character.payerDenier(sumdenier, objData, quantite); - } else { - let msgPayer = "Vous devez avoir un acteur relié pour effectuer le paiement"; - ChatMessage.create({ content: msgPayer, whisper: [game.user] }); + let actor = RdDUtility.getSelectedActor("Pour effectuer le paiement:"); + if (actor) { + actor.payerDenier(sumdenier, objData, quantite); } }); } + static getSelectedActor(msgPlayer = '') { + if (canvas.tokens.controlled.length == 1) { + let token = canvas.tokens.controlled[0]; + if (token.actor && token.data.actorLink) { + return token.actor; + } + msgPlayer += "
le token sélectionné doit être lié à un personnage"; + } + if (game.user.character) { + return game.user.character; + } + msgPlayer += "
vous pouvez sélectionner un seul token lié à un personnage"; + msgPlayer += "
vous devez être connecté comme joueur avec un personnage sélectionné"; + + ui.notifications.warn(msgPlayer); + ChatMessage.create({ content: msgPlayer, whisper: [game.user] }); + return undefined; + } + /* -------------------------------------------- */ static createMonnaie(name, valeur_deniers, img = "", enc = 0.01) { let piece = {