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);