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() {