Gestion correcte de l'editeur de blessures

This commit is contained in:
2020-07-27 16:27:41 +02:00
parent c1a6ee1e92
commit 77f5fe0a21
6 changed files with 161 additions and 92 deletions

View File

@ -388,7 +388,16 @@ export class RdDActor extends Actor {
// TODO : Output to chat
}
}
/* -------------------------------------------- */
GetNumberBlessures( blessuresListe )
{
let nbB = 0;
for ( let b of blessuresListe) {
nbB += ( b.active) ? 1 : 0;
}
return nbB;
}
/* -------------------------------------------- */
async santeIncDec(name, inc ) {
const sante = duplicate(this.data.data.sante);
@ -412,10 +421,12 @@ export class RdDActor extends Actor {
}
if ( data.value < 0 ) data.value = 0; // Security
let blessures = this.data.data.blessures;
let maxEnd = Math.floor( data.max / blessures.graves.nombre);
let blessures = this.data.data.blessures;
let nbGraves = this.GetNumberBlessures(blessures.graves.liste);
let nbCritiques = this.GetNumberBlessures(blessures.critiques.liste);
let maxEnd = Math.floor( data.max / nbGraves);
if (data.value > maxEnd ) data.value = maxEnd;
if ( blessures.critiques.nombre > 0 && data.value > 1) data.value = 1;
if ( nbCritiques > 0 && data.value > 1) data.value = 1;
if (lastValue - data.value > 1) this.testSiSonne(sante, data); // Peut-être sonné si 2 points d'endurance perdus d'un coup
}
@ -429,14 +440,31 @@ export class RdDActor extends Actor {
await this.update( {"data.sante": sante } );
}
/* -------------------------------------------- */
async manageBlessureLegere( index ) {
let legeres = duplicate(this.data.data.blessures.legeres);
let blessure = legeres.liste[index];
async manageBlessureFromSheet( bType, index, active ) {
let bList = duplicate(this.data.data.blessures);
let blessure = bList[bType+"s"].liste[index];
blessure.active = !blessure.active;
console.log("Blessure update", index, blessure );
await this.update( { "data.blessures.legeres": legeres } );
if ( !blessure.active ) {
blessure.premiers_soins = 0;
blessure.soins_complets = 0;
blessure.jours = 0;
blessure.localisation = "";
}
//console.log("Blessure update", bType, index, blessure, bList );
await this.update( { 'data.blessures': bList } );
}
/* -------------------------------------------- */
async setDataBlessureFromSheet( bType, index, psoins, pcomplets, jours, loc) {
let bList = duplicate(this.data.data.blessures);
let blessure = bList[bType+"s"].liste[index];
blessure.premiers_soins = psoins;
blessure.soins_complets = pcomplets;
blessure.jours = jours;
blessure.localisation = loc;
await this.update( { 'data.blessures': bList } );
}
/* -------------------------------------------- */
manageBlessures( blessuresData )
{