#125 : Deplacement conteneurs complets
This commit is contained in:
parent
0290b182ca
commit
6493d00aab
@ -671,7 +671,7 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
// Et gérer le nouvel objet
|
// Et gérer le nouvel objet
|
||||||
let nouvelObjet = this.items.find(objet => (itemId == objet._id));
|
let nouvelObjet = this.items.find(objet => (itemId == objet._id));
|
||||||
if (currentEnc + nouvelObjet.data.data.encombrement > Number(conteneur.data.data.capacite)) {
|
if (nouvelObjet && currentEnc + nouvelObjet.data.data.encombrement > Number(conteneur.data.data.capacite)) {
|
||||||
ui.notifications.warn("Capacité d'encombrement insuffisante dans le conteneur !");
|
ui.notifications.warn("Capacité d'encombrement insuffisante dans le conteneur !");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -689,19 +689,19 @@ export class RdDActor extends Actor {
|
|||||||
this.buildSubConteneurObjetList( subId, deleteList );
|
this.buildSubConteneurObjetList( subId, deleteList );
|
||||||
}
|
}
|
||||||
if ( subObj) // Robust...
|
if ( subObj) // Robust...
|
||||||
deleteList.push( subId );
|
deleteList.push( {id: subId, conteneurId: conteneurId } );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deleteList.push(conteneurId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async deleteAllConteneur(itemId) {
|
async deleteAllConteneur(itemId) {
|
||||||
let list = [];
|
let list = [];
|
||||||
|
list.push( {id: itemId, conteneurId: undefined }); // Init list
|
||||||
this.buildSubConteneurObjetList(itemId, list);
|
this.buildSubConteneurObjetList(itemId, list);
|
||||||
//console.log("List to delete", list);
|
//console.log("List to delete", list);
|
||||||
for (let id of list) {
|
for (let item of list) {
|
||||||
await this.deleteOwnedItem(id);
|
await this.deleteOwnedItem(item.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -755,13 +755,30 @@ export class RdDActor extends Actor {
|
|||||||
async moveItemsBetweenActors( itemId, sourceActorId ) {
|
async moveItemsBetweenActors( itemId, sourceActorId ) {
|
||||||
let itemsList = []
|
let itemsList = []
|
||||||
let sourceActor = game.actors.get( sourceActorId );
|
let sourceActor = game.actors.get( sourceActorId );
|
||||||
|
itemsList.push( {id: itemId, conteneurId: undefined }); // Init list
|
||||||
sourceActor.buildSubConteneurObjetList( itemId, itemsList ); // Get itemId list
|
sourceActor.buildSubConteneurObjetList( itemId, itemsList ); // Get itemId list
|
||||||
for (let srcItemId of itemsList) {
|
|
||||||
let copyItem = sourceActor.data.items.find( item => item._id == srcItemId );
|
|
||||||
await this.createOwnedItem( duplicate(copyItem) );
|
let conteneurMap = {};
|
||||||
|
for (let item of itemsList) {
|
||||||
|
let copyItem = sourceActor.data.items.find( subItem => subItem._id == item.id );
|
||||||
|
let newItem = await this.createOwnedItem( duplicate(copyItem) );
|
||||||
|
console.log('New object', newItem);
|
||||||
|
if (copyItem.type == 'conteneur') {
|
||||||
|
conteneurMap[copyItem._id] = newItem._id;
|
||||||
}
|
}
|
||||||
for( let srcItemId of itemsList) {
|
// gestion conteneur/contenu
|
||||||
await sourceActor.deleteOwnedItem( srcItemId );
|
if ( item.conteneurId) { // l'Objet était dans un conteneur
|
||||||
|
let newConteneurId = conteneurMap[item.conteneurId];
|
||||||
|
let newConteneur = this.data.items.find( subItem => subItem._id == newConteneurId );
|
||||||
|
console.log('New conteneur filling!', newConteneur);
|
||||||
|
let contenu = duplicate(newConteneur.data.contenu);
|
||||||
|
contenu.push( newItem._id );
|
||||||
|
await this.updateOwnedItem( {_id: newConteneurId, 'data.contenu': contenu });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for( let item of itemsList) {
|
||||||
|
await sourceActor.deleteOwnedItem( item.id );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "foundryvtt-reve-de-dragon",
|
"name": "foundryvtt-reve-de-dragon",
|
||||||
"title": "Rêve de Dragon",
|
"title": "Rêve de Dragon",
|
||||||
"description": "Rêve de Dragon RPG for FoundryVTT",
|
"description": "Rêve de Dragon RPG for FoundryVTT",
|
||||||
"version": "1.2.9",
|
"version": "1.2.10",
|
||||||
"minimumCoreVersion": "0.7.5",
|
"minimumCoreVersion": "0.7.5",
|
||||||
"compatibleCoreVersion": "0.7.8",
|
"compatibleCoreVersion": "0.7.8",
|
||||||
"templateVersion": 80,
|
"templateVersion": 80,
|
||||||
|
Loading…
Reference in New Issue
Block a user