Gestion de la capacité des conteneurs et regression fix
This commit is contained in:
parent
559e0b687e
commit
f73f00fd4e
@ -169,8 +169,12 @@ export class RdDActorSheet extends ActorSheet {
|
||||
if ( dropID ) { // Dropped over an item !!!
|
||||
let objetId = dragData.id || dragData.data._id;
|
||||
if ( this.objetVersConteneur[objetId] != dropID ) {
|
||||
if ( this.actor.testConteneurCapacite(objetId, dropID) ) {
|
||||
this.actor.enleverDeConteneur(objetId, this.objetVersConteneur[objetId]);
|
||||
this.actor.ajouterAConteneur(objetId, dropID);
|
||||
} else {
|
||||
ui.notifications.info("Capacité d'encombrement insuffisante dans le conteneur !");
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("DATA !!!!", dragData, dropID );
|
||||
|
@ -130,7 +130,7 @@ export class RdDActor extends Actor {
|
||||
let message = "<strong>Réussite particulière en attaque</strong>";
|
||||
message = message + "<br><a class='chat-card-button' id='particuliere-attaque' data-mode='force' data-attackerid='" + this.data._id + "'>Attaquer en Force</a>";
|
||||
// Finesse et Rapidité seulement en mêlée et si la difficulté libre est de -1 minimum
|
||||
if (rollData.selectedCarac.label == "Mêlée" && rollData.bmValue < 0 ) {
|
||||
if (rollData.selectedCarac.label == "Mêlée" && rollData.diffLibre < 0 ) {
|
||||
message = message + "<br><a class='chat-card-button' id='particuliere-attaque' data-mode='rapidite' data-attackerid='"+ this.data._id + "'>Attaquer en Rapidité</a>";
|
||||
message = message + "<br><a class='chat-card-button' id='particuliere-attaque' data-mode='finesse' data-attackerid='"+ this.data._id + "'>Attaquer en Finesse</a>";
|
||||
}
|
||||
@ -390,6 +390,28 @@ export class RdDActor extends Actor {
|
||||
await this.update( {"data.compteurs": compteurs } );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** Teste si le conteneur de destination a suffisament de capacité
|
||||
* pour recevoir le nouvel objet
|
||||
*/
|
||||
testConteneurCapacite( itemId, conteneurId ) {
|
||||
if ( !conteneurId ) return true; // pas de conteneur (porté sur soi), donc toujours OK.
|
||||
let conteneur = this.items.find( conteneur => conteneurId == conteneur._id); // recup conteneur
|
||||
//console.log("Conteneur trouvé : ", conteneur);
|
||||
if ( conteneur && conteneur.type == "conteneur" ) {
|
||||
let currentEnc = 0; // Calculer le total actuel des contenus
|
||||
for (let id of conteneur.data.data.contenu) {
|
||||
let objet = this.items.find( objet => (id == objet._id) );
|
||||
currentEnc += (objet) ? objet.data.data.encombrement : 0;
|
||||
}
|
||||
// Et gérer le nouvel objet
|
||||
let nouvelObjet = this.items.find( objet => (itemId == objet._id) );
|
||||
if ( currentEnc + nouvelObjet.data.data.encombrement > Number(conteneur.data.data.capacite) )
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** Supprime un item d'un conteneur, sur la base
|
||||
* de leurs ID */
|
||||
|
@ -2,7 +2,7 @@
|
||||
"name": "foundryvtt-reve-de-dragon",
|
||||
"title": "Rêve de Dragon",
|
||||
"description": "Rêve de Dragon RPG for FoundryVTT",
|
||||
"version": "0.9.43",
|
||||
"version": "0.9.44",
|
||||
"minimumCoreVersion": "0.7.5",
|
||||
"compatibleCoreVersion": "0.7.6",
|
||||
"templateVersion": 45,
|
||||
|
Loading…
Reference in New Issue
Block a user