Gestion reserve

This commit is contained in:
2020-07-26 18:44:03 +02:00
parent dc57b46db5
commit c1a6ee1e92
3 changed files with 77 additions and 13 deletions

View File

@ -86,6 +86,22 @@ export class RdDActor extends Actor {
return draconic;
}
/* -------------------------------------------- */
async deleteSortReserve(coordTMR) {
let reserve = duplicate(this.data.data.reve.reserve);
let len = reserve.list.length;
let i = 0;
let newTable = [];
for( i=0; i < len; i++) {
if (reserve.list[i].coord != coordTMR )
newTable.push(reserve.list[i]);
}
if ( newTable.length != len ) {
reserve.list = newTable;
await this.update( {"data.reve.reserve": reserve } );
}
}
/* -------------------------------------------- */
async performRoll( rollData ) {
@ -197,9 +213,10 @@ export class RdDActor extends Actor {
// Sort management
let lvl = ""
if ( rollData.selectedSort) { // Lancement de sort !
specialStr = "<br>Lancement du sort <strong>" + rollData.selectedSort.name + "</strong> : " + rollData.selectedSort.data.draconic + "/" + rollData.selectedSort.data.difficulte +
"/" + rollData.selectedSort.data.caseTMR + "/" + rollData.selectedSort.data.ptreve;
specialStr += "<br>Depuis la case " + rollData.coord + "(" + TMRUtility.getTMRDescription(rollData.coord).label + ")";
let draconic = rollData.selectedSort.data.draconic;
specialStr = "<br>Lancement du sort <strong>" + rollData.selectedSort.name + "</strong> : " + draconic.charAt(0).toUpperCase() + draconic.slice(1) + "/" + rollData.selectedSort.data.difficulte +
"/" + rollData.selectedSort.data.caseTMR + "/R" + rollData.selectedSort.data.ptreve;
specialStr += "<br>Depuis la case " + rollData.coord + " (" + TMRUtility.getTMRDescription(rollData.coord).label + ")";
lvl = rollData.selectedDraconic.name +"/"+ rollData.selectedSort.name;
let costReve = rollData.selectedSort.data.ptreve;
let myReve = duplicate(this.data.data.reve.reve);
@ -210,8 +227,14 @@ export class RdDActor extends Actor {
if (myReve.value < 0) myReve.value = 0;
await this.update( {"data.reve.reve": myReve } );
specialStr += "<br>Réussite du sort pour " + costReve + " Points de Rêve";
if ( !rollData.isSortReserve)
if ( !rollData.isSortReserve) {
this.currentTMR.close(); // Close TMR !
} else { // Mise en réserve
let reserve = duplicate(this.data.data.reve.reserve);
reserve.list.push( { coord: rollData.coord, sort: duplicate(rollData.selectedSort), draconic: duplicate(rollData.selectedDraconic) });
await this.update( {"data.reve.reserve": reserve} );
this.currentTMR.updateSortReserve();
}
} else {
if ( rollData.pointsDeTache == -4) { // Echec total !
costReve *= 2;