From 84c6f9a46648df6df0c73f3a7fcdeb3f44f7e62b Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 22 Jan 2021 02:08:49 +0100 Subject: [PATCH] Fix liste des liens subacteurs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dans le cas d'un import de personnage ayant un lien sur un autre acteur qui n'est pas importé, on ne pouvait plus ouvrir la feuille de perso --- module/actor.js | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/module/actor.js b/module/actor.js index 94382143..e2da2deb 100644 --- a/module/actor.js +++ b/module/actor.js @@ -2545,39 +2545,28 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ buildVehiculesList() { - if ( !this.data.data.subacteurs) return []; - let myArray = []; - for (let vehiculeLink of this.data.data.subacteurs.vehicules) { - let vehicule = game.actors.get( vehiculeLink.id ); - myArray.push( { id: vehiculeLink.id, name: vehicule.data.name, categorie: vehicule.data.data.categorie, - structure: vehicule.data.data.structure, img: vehicule.data.img } ); - - } - return myArray; + return this._buildActorLinksList( + this.data.data.subacteurs?.vehicules??[], + vehicle => {return { id: vehicle.id, name: vehicle.data.name, categorie: vehicle.data.data.categorie, + structure: vehicle.data.data.structure, img: vehicle.data.img } ;}); } /* -------------------------------------------- */ buildSuivantsList() { - if ( !this.data.data.subacteurs) return []; - let myArray = []; - for (let suivantLink of this.data.data.subacteurs.suivants) { - let suivant = game.actors.get( suivantLink.id ); - myArray.push( { id: suivantLink.id, name: suivant.data.name, img: suivant.data.img } ); - } - return myArray; + return this._buildActorLinksList(this.data.data.subacteurs?.suivants ?? []); } /* -------------------------------------------- */ buildMonturesList() { - if ( !this.data.data.subacteurs) return []; - let myArray = []; - for (let montureLink of this.data.data.subacteurs.montures) { - let monture = game.actors.get( montureLink.id ); - myArray.push( { id: montureLink.id, name: monture.data.name, img: monture.data.img } ); - } - return myArray; + return this._buildActorLinksList(this.data.data.subacteurs?.montures ?? []); } - + + _buildActorLinksList(links, actorTransformation=it => { return { id: it.id, name: it.data.name, img: it.data.img }; }) { + return links.map(link => game.actors.get(link.id)) + .filter(it => it != null) + .map(actorTransformation); + } + /* -------------------------------------------- */ async pushSubacteur( actor, dataArray, dataPath, dataName ) { let alreadyPresent = dataArray.find( attached => attached.id == actor.data._id);