diff --git a/module/actor.js b/module/actor.js index bcf27b38..2a833381 100644 --- a/module/actor.js +++ b/module/actor.js @@ -785,21 +785,24 @@ export class RdDActor extends Actor { itemsList.push( {id: itemId, conteneurId: undefined }); // Init list sourceActor.buildSubConteneurObjetList( itemId, itemsList ); // Get itemId list - let conteneurMap = {}; + let itemMap = {}; for (let item of itemsList) { - let copyItem = sourceActor.data.items.find( subItem => subItem._id == item.id ); - let newItem = await this.createOwnedItem( duplicate(copyItem) ); - console.log('New object', newItem); - if (copyItem.type == 'conteneur') { - conteneurMap[copyItem._id] = newItem._id; - } + let srcItem = sourceActor.data.items.find( subItem => subItem._id == item.id ); + let newItem = await this.createOwnedItem( duplicate(srcItem) ); + console.log('New object', newItem, srcItem); + itemMap[srcItem._id] = newItem._id; // Pour garder le lien ancien / nouveau + } + for (let item of itemsList) { // Second boucle pour traiter la remise en conteneurs // gestion conteneur/contenu if ( item.conteneurId) { // l'Objet était dans un conteneur - let newConteneurId = conteneurMap[item.conteneurId]; + let newConteneurId = itemMap[item.conteneurId]; // Get conteneur let newConteneur = this.data.items.find( subItem => subItem._id == newConteneurId ); - console.log('New conteneur filling!', newConteneur); + + let newItemId = itemMap[item.id]; // Get newItem + + console.log('New conteneur filling!', newConteneur, newItemId, item ); let contenu = duplicate(newConteneur.data.contenu); - contenu.push( newItem._id ); + contenu.push( newItemId ); await this.updateOwnedItem( {_id: newConteneurId, 'data.contenu': contenu }); } } @@ -2469,16 +2472,18 @@ export class RdDActor extends Actor { console.log("DENIER", game.user.character, sumDenier, denierDisponible); let msg = ""; + let isPayed = false; if (denierDisponible >= sumDenier) { denierDisponible -= sumDenier; this.optimizeArgent(denierDisponible); msg = `Vous avez payé ${sumDenier} Deniers, qui ont été soustraits de votre argent.`; RdDAudio.PlayContextAudio("argent"); // Petit son + isPayed = true; } else { msg = "Vous n'avez pas assez d'argent pour paye cette somme !"; } - if (dataObj) { + if (dataObj && isPayed) { dataObj.payload.data.cout = sumDenier / 100; // Mise à jour du prix en sols , avec le prix acheté await this.createOwnedItem(dataObj.payload); msg += `
Et l'objet ${dataObj.payload.name} a été ajouté à votre inventaire.`; diff --git a/module/item-rdd.js b/module/item-rdd.js index 4304f7ab..cb9fa228 100644 --- a/module/item-rdd.js +++ b/module/item-rdd.js @@ -72,7 +72,9 @@ export class RdDItem extends Item { chatData.data.cout_deniers = Math.floor(dialogResult[1] * 100); // Mise à jour cout en deniers } chatData.finalPrice = Number(chatData.postPrice) * Number(chatData.postQuantity); - chatData.data.cout_deniers_total *= Number(chatData.postQuantity); + chatData.data.cout_deniers_total = chatData.data.cout_deniers * Number(chatData.postQuantity); + chatData.data.quantite = chatData.postQuantity; + console.log("POST : ", chatData.finalPrice, chatData.data.cout_deniers_total, chatData.postQuantity); } // Don't post any image for the item (which would leave a large gap) if the default image is used if (chatData.img.includes("/blank.png")) diff --git a/system.json b/system.json index 3afe82d3..e6c5365a 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "name": "foundryvtt-reve-de-dragon", "title": "Rêve de Dragon", "description": "Rêve de Dragon RPG for FoundryVTT", - "version": "1.2.28", + "version": "1.2.29", "manifestPlusVersion": "1.0.0", "minimumCoreVersion": "0.7.5", "compatibleCoreVersion": "0.7.8", diff --git a/templates/post-item.html b/templates/post-item.html index 6e55110e..fd9f7a50 100644 --- a/templates/post-item.html +++ b/templates/post-item.html @@ -26,7 +26,8 @@ {{#if hasPrice}} - Payer + Payer {{/if}}