#11 Gestion des conteneurs

This commit is contained in:
2020-11-12 14:43:08 +01:00
parent 021948bf6e
commit 1d6768aff0
8 changed files with 120 additions and 75 deletions

View File

@ -371,14 +371,40 @@ export class RdDActor extends Actor {
await this.update( {"data.compteurs": compteurs } );
}
/* -------------------------------------------- */
/** Supprime un item d'un conteneur, sur la base
* de leurs ID */
async enleverDeConteneur( itemId, conteneurId ) {
if ( !conteneurId ) return; // pas de conteneur (porté sur soi)
let conteneur = this.items.find( conteneur => conteneurId == conteneur._id); // recup conteneur
if ( conteneur ) { // Si présent
//console.log("Suppression du conteneur1", conteneurId, itemId, conteneur.data.data.contenu);
let newContenu = conteneur.data.data.contenu.filter( function(value, index, arr) { return value != itemId } );
//console.log("Suppression du conteneur2", conteneurId, itemId, newContenu);
let update = {_id: conteneurId, "data.contenu": newContenu };
await this.updateEmbeddedEntity("OwnedItem", update);
}
}
/* -------------------------------------------- */
/** Ajoute un item dans un conteneur, sur la base
* de leurs ID */
async ajouterAConteneur( itemId, conteneurId ) {
if ( !conteneurId ) return; // pas de conteneur (porté sur soi)
let conteneur = this.items.find( conteneur => conteneurId == conteneur._id);
if ( conteneur && conteneur.type == 'conteneur' ) {
conteneur.data.data.contenu.push( itemId );
await this.updateEmbeddedEntity("OwnedItem", conteneur.data );
}
}
/* -------------------------------------------- */
detectSurEncombrement( ) {
let diffEnc = Number(this.encombrementTotal) - Number(this.data.data.attributs.encombrement.value);
console.log("Sur enc", this.encombrementTotal, diffEnc);
if ( diffEnc > 0 ) { // Sur-encombrement
let malus = Math.round( diffEnc);
malus = (malus == 0) ? 1 : malus; // Always 1 at least
console.log("Sur enc malus", malus);
//console.log("Sur enc malus", malus);
return malus;
}
return 0;