Gestion de la capacité des conteneurs et regression fix

This commit is contained in:
2020-11-15 09:35:05 +01:00
parent 559e0b687e
commit f73f00fd4e
3 changed files with 30 additions and 4 deletions

View File

@ -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 */