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}}