Merge branch 'v1.4-fix-achat-vente' into 'v1.4'

Fix: sur les achat rejetés

See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!270
This commit is contained in:
Leratier Bretonnien 2021-06-08 05:55:12 +00:00
commit d3e612104d
2 changed files with 12 additions and 4 deletions

View File

@ -31,6 +31,7 @@ import { DialogConsommer } from "./dialog-item-consommer.js";
import { DialogFabriquerPotion } from "./dialog-fabriquer-potion.js"; import { DialogFabriquerPotion } from "./dialog-fabriquer-potion.js";
import { RollDataAjustements } from "./rolldata-ajustements.js"; import { RollDataAjustements } from "./rolldata-ajustements.js";
import { DialogItemAchat } from "./dialog-item-achat.js"; import { DialogItemAchat } from "./dialog-item-achat.js";
import { RdDItem } from "./item.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -3546,8 +3547,9 @@ export class RdDActor extends Actor {
return; return;
} }
} }
if (vendeur) { const itemVendu = vendeur?.getObjet(itemId);
let itemVenduData = Misc.data(vendeur.getObjet(itemId)); if (itemVendu) {
let itemVenduData = Misc.data(itemVendu);
if ("quantite" in itemVenduData.data ? itemVenduData.data.quantite < achat.quantiteTotal : achat.nombreLots != 1) { if ("quantite" in itemVenduData.data ? itemVenduData.data.quantite < achat.quantiteTotal : achat.nombreLots != 1) {
await acheteur?.ajouterDeniers(coutDeniers); await acheteur?.ajouterDeniers(coutDeniers);
ui.notifications.warn(`Le vendeur n'a plus assez de ${vente.item.name} !`); ui.notifications.warn(`Le vendeur n'a plus assez de ${vente.item.name} !`);
@ -3586,7 +3588,9 @@ export class RdDActor extends Actor {
ChatUtility.removeChatMessageId(chatMessageIdVente); ChatUtility.removeChatMessageId(chatMessageIdVente);
} }
else { else {
vente["properties"] = new RdDItem(vente.item).getProprietes();
vente.quantiteNbLots -= achat.nombreLots; vente.quantiteNbLots -= achat.nombreLots;
vente.jsondata = JSON.stringify(vente.item);
messageVente.update({ content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-vente-item.html', vente) }); messageVente.update({ content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-vente-item.html', vente) });
messageVente.render(true); messageVente.render(true);
} }

View File

@ -215,7 +215,7 @@ export class RdDItem extends Item {
} }
async _onProposerVente(venteData) { async _onProposerVente(venteData) {
venteData["properties"] = this[`_${venteData.item.type}ChatData`](); venteData["properties"] = this.getProprietes();
if (venteData.isOwned) { if (venteData.isOwned) {
if (venteData.quantiteNbLots * venteData.tailleLot > venteData.quantiteMax) { if (venteData.quantiteNbLots * venteData.tailleLot > venteData.quantiteMax) {
ui.notifications.warn(`Vous avez ${venteData.quantiteMax} ${venteData.item.name}, ce n'est pas suffisant pour vendre ${venteData.quantiteNbLots} de ${venteData.tailleLot}`) ui.notifications.warn(`Vous avez ${venteData.quantiteMax} ${venteData.item.name}, ce n'est pas suffisant pour vendre ${venteData.quantiteNbLots} de ${venteData.tailleLot}`)
@ -229,11 +229,15 @@ export class RdDItem extends Item {
ChatMessage.create(RdDUtility.chatDataSetup(html)); ChatMessage.create(RdDUtility.chatDataSetup(html));
} }
getProprietes() {
return this[`_${Misc.data(this).type}ChatData`]();
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async postItem() { async postItem() {
console.log(this); console.log(this);
let chatData = duplicate(Misc.data(this)); let chatData = duplicate(Misc.data(this));
const properties = this[`_${chatData.type}ChatData`](); const properties = this.getProprietes();
chatData["properties"] = properties chatData["properties"] = properties
if (this.actor) { if (this.actor) {
chatData.actor = { id: this.actor.id }; chatData.actor = { id: this.actor.id };