partial sync
This commit is contained in:
parent
06618746f9
commit
9f8db50a1d
@ -141,8 +141,10 @@ export class RdDActorSheet extends ActorSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDrop(event) {
|
||||
await RdDUtility.processItemDropEvent(this, event);
|
||||
super._onDrop(event);
|
||||
let toSuper = await RdDUtility.processItemDropEvent(this, event);
|
||||
if ( toSuper) {
|
||||
super._onDrop(event);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -709,13 +709,14 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
buildSubConteneurObjetList( conteneurId, deleteList ) {
|
||||
let conteneur = this.items.find( conteneur => conteneurId == conteneur._id); // recup conteneur
|
||||
if ( conteneur ) { // Si présent
|
||||
if ( conteneur && conteneur.type =='conteneur' ) { // Si présent
|
||||
for ( let subId of conteneur.data.data.contenu ) {
|
||||
let subObj = this.items.find( subobjet => subId == subobjet._id); // recup conteneur
|
||||
if ( subObj.type == 'conteneur') {
|
||||
if ( subObj && subObj.type == 'conteneur') {
|
||||
this.buildSubConteneurObjetList( subId, deleteList );
|
||||
}
|
||||
deleteList.push( subId );
|
||||
if ( subObj) // Robust...
|
||||
deleteList.push( subId );
|
||||
}
|
||||
}
|
||||
deleteList.push( conteneurId );
|
||||
@ -777,6 +778,20 @@ export class RdDActor extends Actor {
|
||||
await this.updateOwnedItem( conteneurFixedList ) ;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async moveItemsBetweenActors( itemId, sourceActorId ) {
|
||||
let itemsList = []
|
||||
let sourceActor = game.actors.get( sourceActorId );
|
||||
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) );
|
||||
}
|
||||
for( let srcItemId of itemsList) {
|
||||
await sourceActor.deleteOwnedItem( srcItemId );
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
detectSurEncombrement( ) {
|
||||
let diffEnc = Number(this.encTotal) - Number(this.data.data.attributs.encombrement.value);
|
||||
@ -806,7 +821,7 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
// Mise à jour valeur totale et états
|
||||
this.encTotal = encTotal;
|
||||
console.log("Enco total : ", this.encTotal);
|
||||
//console.log("Enco total : ", this.encTotal);
|
||||
this.detectSurEncombrement();
|
||||
// Mise à jour éventuelle du malus armure
|
||||
if (this.data.data.attributs.malusarmure && newMalusArmure != malusArmureData.value) {
|
||||
|
@ -281,8 +281,8 @@ export class RdDUtility {
|
||||
let dragData = JSON.parse(event.dataTransfer.getData("text/plain"));
|
||||
console.log(dragData, actorSheet.actor._id);
|
||||
let dropID = $(event.target).parents(".item").attr("data-item-id"); // Only relevant if container drop
|
||||
let objetId = dragData.id || dragData.data._id;
|
||||
if ( dropID ) { // Dropped over an item !!!
|
||||
let objetId = dragData.id || dragData.data._id;
|
||||
if ( actorSheet.objetVersConteneur[objetId] != dropID && objetId != dropID) {
|
||||
if ( actorSheet.actor.validateConteneur(objetId, dropID) && actorSheet.actor.testConteneurCapacite(objetId, dropID) ) {
|
||||
await actorSheet.actor.enleverDeConteneur(objetId, actorSheet.objetVersConteneur[objetId]);
|
||||
@ -290,7 +290,13 @@ export class RdDUtility {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dragData.actorId && dragData.actorId != actorSheet.actor._id ) { // Un acteur est à l'origine de l'item -> deplacement
|
||||
console.log("Moving objects");
|
||||
actorSheet.actor.moveItemsBetweenActors( objetId, dragData.actorId);
|
||||
return false;
|
||||
}
|
||||
actorSheet.actor.computeEncombrementTotalEtMalusArmure();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
Loading…
Reference in New Issue
Block a user