forked from public/foundryvtt-reve-de-dragon
		
	Merge pull request 'v10.0.29: Fix empilement' (#566) from VincentVk/foundryvtt-reve-de-dragon:v10 into v10
Reviewed-on: public/foundryvtt-reve-de-dragon#566
This commit is contained in:
		| @@ -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()) { | ||||||
|  |             ui.notifications.info(cible | ||||||
|  |               ? `${message}<br>${item.name} a été déplacé dans: ${cible.name}` | ||||||
|  |               : `${message}<br>${item.name} a été sorti du conteneur`); | ||||||
|           } |           } | ||||||
|         else { |  | ||||||
|           ui.notifications.info(messageEquipementDifferent); |  | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -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() { | ||||||
|   | |||||||
| @@ -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", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user