diff --git a/module/actor.js b/module/actor.js index e7de17ce..223a5e90 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1187,8 +1187,8 @@ export class RdDActor extends Actor { const src = this.getObjet(srcId); const dest = this.getObjet(destId); const cible = this.getContenantOrParent(dest); - const messageEquipementDifferent = item.messageEquipementDifferent(dest); - if (dest && !messageEquipementDifferent) { + const [empilable, message] = item.isEquipementEmpilable(dest); + if (empilable) { await this.regrouperEquipementsSimilaires(item, dest); result = false; } @@ -1196,9 +1196,11 @@ export class RdDActor extends Actor { else if (!cible || this.conteneurPeutContenir(cible, item)) { await this.enleverDeConteneur(item, src, params.onEnleverConteneur); await this.ajouterDansConteneur(item, cible, params.onAjouterDansConteneur); - } - else { - ui.notifications.info(messageEquipementDifferent); + if (message && !dest.isConteneur()) { + ui.notifications.info(cible + ? `${message}
${item.name} a été déplacé dans: ${cible.name}` + : `${message}
${item.name} a été sorti du conteneur`); + } } } } diff --git a/module/item.js b/module/item.js index 30bd3859..0652d11c 100644 --- a/module/item.js +++ b/module/item.js @@ -242,30 +242,32 @@ export class RdDItem extends Item { /* -------------------------------------------- */ // détermine si deux équipements sont similaires: de même type, et avec les même champs hormis la quantité - messageEquipementDifferent(other) { - if (!other || !this.isEquipement()) return undefined; + isEquipementEmpilable(other) { + if (!other || !this.isEquipement()) { + return [false, undefined]; + } - let message = undefined; if (this.system.quantite == undefined) { - message = `Impossible de regrouper des ${this.type}, ils ne sont pas empilables`; + return [false, `Impossible de regrouper des ${this.type}, ils ne sont pas empilables`]; } else if (this.type != other.type) { - message = `Impossible de regrouper des ${this.type} avec des ${other.type}`; + return [false, `Impossible de regrouper des ${this.type} avec des ${other.type}`]; } else if (this.name != other.name) { - message = `Impossible de regrouper ${this.name} avec ${other.name}`; + return [false, `Impossible de regrouper ${this.name} avec ${other.name}`]; } else { const differences = Object.entries(this.system) - .filter(([key, value]) => !['quantite', 'cout'].includes(key) && value != other.system[key]); + .filter(([key, value]) => !['quantite', 'cout', 'encTotal'].includes(key) && value != other.system[key]); if (differences.length > 0) { - message = `Impossible de regrouper les ${this.type} ${this.name}: `; + let message = `Impossible de regrouper les ${this.type} ${this.name}: `; for (const [key, value] of differences) { message += `
${key}: ${value} vs ${other.system[key]}`; } + return [false, message]; } } - return message; + return [true, undefined]; } async proposerVente() {