#54 Gestion complète du malus armure
This commit is contained in:
@ -91,7 +91,7 @@ export class RdDActor extends Actor {
|
||||
_prepareCharacterData(actorData) {
|
||||
// Initialize empty items
|
||||
RdDUtility.computeCarac(actorData.data);
|
||||
this.computeEncombrementTotal();
|
||||
this.computeEncombrementTotalEtMalusArmure();
|
||||
this.computeEtatGeneral();
|
||||
}
|
||||
|
||||
@ -751,9 +751,15 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
computeEncombrementTotal( ) {
|
||||
async computeEncombrementTotalEtMalusArmure( ) {
|
||||
let totalEnc = 0;
|
||||
let malusArmureData = duplicate(this.data.data.attributs.malusarmure);
|
||||
let newMalusArmure = 0;
|
||||
for (const item of this.data.items) {
|
||||
if ( item.type == 'armure' && item.data.equipe ) { // Armure équipée, intégration du malus armure total
|
||||
newMalusArmure += item.data.malus;
|
||||
}
|
||||
// Calcul encombrement
|
||||
if ( item.data && item.data.encombrement != undefined ) {
|
||||
if ( !Number(item.data.encombrement) ) item.data.encombrement = 0; // Auto-fix
|
||||
if (!item.data.quantite) item.data.quantite = 1; // Auto-fix
|
||||
@ -764,8 +770,14 @@ export class RdDActor extends Actor {
|
||||
item.data.encTotal = 0; // Force default enc
|
||||
}
|
||||
}
|
||||
// Mise à jour valeur totale et états
|
||||
this.encombrementTotal = totalEnc;
|
||||
this.detectSurEncombrement();
|
||||
// Mise à jour éventuelle du malus armure
|
||||
if (newMalusArmure != malusArmureData.value) {
|
||||
malusArmureData.value = newMalusArmure;
|
||||
await this.update( {"data.attributs.malusarmure": malusArmureData } );
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -1137,6 +1149,7 @@ export class RdDActor extends Actor {
|
||||
coutreve: Array(20).fill().map((item, index) => 1 + index),
|
||||
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
|
||||
difficultesLibres: CONFIG.RDD.difficultesLibres,
|
||||
malusArmureValue: 0,
|
||||
surencMalusFlag: false, // A ne pas utiliser pour les sorts
|
||||
surencMalusValue: 0,
|
||||
surencMalusApply: false,
|
||||
@ -1164,10 +1177,11 @@ export class RdDActor extends Actor {
|
||||
selectedCarac: carac,
|
||||
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
|
||||
difficultesLibres: CONFIG.RDD.difficultesLibres,
|
||||
etat: this.data.data.compteurs.etat.value,
|
||||
etat: this.data.data.compteurs.etat.value,
|
||||
finalLevel: 0,
|
||||
diffConditions: 0,
|
||||
diffLibre: 0,
|
||||
malusArmureValue: (this.data.data.attributs) ? this.data.data.attributs.malusarmure.value : 0,
|
||||
surencMalusFlag: (this.data.data.compteurs.surenc.value < 0),
|
||||
surencMalusValue: this.data.data.compteurs.surenc.value,
|
||||
surencMalusApply: false,
|
||||
@ -1249,6 +1263,7 @@ export class RdDActor extends Actor {
|
||||
attackerRoll: attackerRoll,
|
||||
finalLevel: 0,
|
||||
coupsNonMortels: false,
|
||||
malusArmureValue: (this.data.data.attributs) ? this.data.data.attributs.malusarmure.value : 0,
|
||||
surencMalusFlag: (this.data.data.compteurs.surenc.value < 0),
|
||||
surencMalusValue: this.data.data.compteurs.surenc.value,
|
||||
surencMalusApply: false,
|
||||
@ -1315,7 +1330,7 @@ export class RdDActor extends Actor {
|
||||
if ( item && item.data.data ) {
|
||||
let update = {_id: item._id, "data.equipe": !item.data.data.equipe };
|
||||
await this.updateEmbeddedEntity("OwnedItem", update);
|
||||
this.computeEncombrementTotal(); // Mise à jour encombrement
|
||||
this.computeEncombrementTotalEtMalusArmure(); // Mise à jour encombrement
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user