From 44e212cd12b4a69c9983e208d46427874a22c685 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Wed, 14 Apr 2021 21:51:29 +0200 Subject: [PATCH] Fix drop conteneurs --- module/actor.js | 12 ++++++------ module/item.js | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/module/actor.js b/module/actor.js index c6c67f35..ce368bd6 100644 --- a/module/actor.js +++ b/module/actor.js @@ -826,15 +826,15 @@ export class RdDActor extends Actor { } /* -------------------------------------------- */ - _isConteneurContenu(item, conteneurId) { - if (Misc.data(item)?.type == 'conteneur') { // Si c'est un conteneur, il faut vérifier qu'on ne le déplace pas vers un sous-conteneur lui appartenant + _isConteneurContenu(item, conteneur) { + if (item?.isConteneur()) { // Si c'est un conteneur, il faut vérifier qu'on ne le déplace pas vers un sous-conteneur lui appartenant for (let id of Misc.templateData(item).contenu) { let subObjet = this.getObjet(id); - if (subObjet?.id == conteneurId) { + if (subObjet?.id == conteneur.id) { return true; // Loop detected ! } - if (subObjet?.type == 'conteneur') { - return this._isConteneurContenu(subObjet, conteneurId); + if (subObjet?.isConteneur()) { + return this._isConteneurContenu(subObjet, conteneur); } } } @@ -969,7 +969,7 @@ export class RdDActor extends Actor { ui.notifications.warn(`Impossible de déplacer un objet (${item.name}) vers un ${destData.type} qui n'est pas un conteneur (${dest.name}) !`); return false; } - if (this._isConteneurContenu(item, conteneurId)) { + if (this._isConteneurContenu(item, dest)) { ui.notifications.warn(`Impossible de déplacer un conteneur parent (${item.name}) dans un de ses contenus ${destData.name} !`); return false; // Loop detected ! } diff --git a/module/item.js b/module/item.js index 39346eee..179088f2 100644 --- a/module/item.js +++ b/module/item.js @@ -104,9 +104,9 @@ export class RdDItem extends Item { async quantiteIncDec(nombre, options = { diminuerQuantite: true, supprimerSiZero: false }) { const itemData = Misc.data(this); - const quantite = itemData.data.quantite; - if (quantite != undefined) { - const reste = Math.max(quantite + nombre, 0); + const quantite = Number(itemData.data.quantite ??-1); + if (quantite >=0 ) { + const reste = Math.max(quantite + Number(nombre), 0); if (reste == 0) { if (options.supprimerSiZero){