v10.0.29: Fix empilement #566

Merged
uberwald merged 2 commits from VincentVk/foundryvtt-reve-de-dragon:v10 into v10 2022-10-19 07:41:56 +02:00
3 changed files with 20 additions and 16 deletions

View File

@ -1187,8 +1187,8 @@ export class RdDActor extends Actor {
const src = this.getObjet(srcId); const src = this.getObjet(srcId);
const dest = this.getObjet(destId); const dest = this.getObjet(destId);
const cible = this.getContenantOrParent(dest); const cible = this.getContenantOrParent(dest);
const messageEquipementDifferent = item.messageEquipementDifferent(dest); const [empilable, message] = item.isEquipementEmpilable(dest);
if (dest && !messageEquipementDifferent) { if (empilable) {
await this.regrouperEquipementsSimilaires(item, dest); await this.regrouperEquipementsSimilaires(item, dest);
result = false; result = false;
} }
@ -1196,9 +1196,11 @@ export class RdDActor extends Actor {
else if (!cible || this.conteneurPeutContenir(cible, item)) { else if (!cible || this.conteneurPeutContenir(cible, item)) {
await this.enleverDeConteneur(item, src, params.onEnleverConteneur); await this.enleverDeConteneur(item, src, params.onEnleverConteneur);
await this.ajouterDansConteneur(item, cible, params.onAjouterDansConteneur); await this.ajouterDansConteneur(item, cible, params.onAjouterDansConteneur);
} if (message && !dest.isConteneur()) {
else { ui.notifications.info(cible
ui.notifications.info(messageEquipementDifferent); ? `${message}<br>${item.name} a été déplacé dans: ${cible.name}`
: `${message}<br>${item.name} a été sorti du conteneur`);
}
} }
} }
} }

View File

@ -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é // détermine si deux équipements sont similaires: de même type, et avec les même champs hormis la quantité
messageEquipementDifferent(other) { isEquipementEmpilable(other) {
if (!other || !this.isEquipement()) return undefined; if (!other || !this.isEquipement()) {
return [false, undefined];
}
let message = undefined;
if (this.system.quantite == 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) { 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) { 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 { else {
const differences = Object.entries(this.system) 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) { 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) { for (const [key, value] of differences) {
message += `<br>${key}: ${value} vs ${other.system[key]}`; message += `<br>${key}: ${value} vs ${other.system[key]}`;
} }
return [false, message];
} }
} }
return message; return [true, undefined];
} }
async proposerVente() { async proposerVente() {

View File

@ -1,8 +1,8 @@
{ {
"id": "foundryvtt-reve-de-dragon", "id": "foundryvtt-reve-de-dragon",
"title": "Rêve de Dragon", "title": "Rêve de Dragon",
"version": "10.0.28", "version": "10.0.29",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.0.28.zip", "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.0.29.zip",
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "10",