Sorts en réserve éditables

This commit is contained in:
Vincent Vandemeulebrouck
2022-09-17 16:07:38 +02:00
parent ee42902b5c
commit 56ea9dd2e4
19 changed files with 266 additions and 130 deletions

View File

@ -418,28 +418,6 @@ export class RdDActor extends Actor {
}
}
/* -------------------------------------------- */
async deleteSortReserve(sortReserve) {
let reserve = duplicate(this.system.reve.reserve);
let tmr = TMRUtility.getTMR(sortReserve.coord);
let index = reserve.list.findIndex(tmr.type == 'fleuve'
? sort => (TMRUtility.getTMR(sort.coord).type == 'fleuve' && sort.sort.name == sortReserve.sort.name)
: sort => (sort.coord == sortReserve.coord && sort.sort.name == sortReserve.sort.name)
);
if (index >= 0) {
reserve.list.splice(index, 1);
await this.update({ "system.reve.reserve": reserve });
}
}
async deleteSortReserveKey(index) {
let reserve = duplicate(this.system.reve.reserve);
if (index >= 0) {
reserve.list.splice(index, 1);
await this.update({ "system.reve.reserve": reserve }, { renderSheet: false });
}
}
/* -------------------------------------------- */
getSurprise(isCombat = undefined) {
let niveauSurprise = this.getActiveEffects()
@ -856,10 +834,13 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
async sortMisEnReserve(rollData, sort) {
let reserve = duplicate(this.system.reve.reserve.list);
reserve.push({ coord: rollData.tmr.coord, sort: sort, draconic: duplicate(rollData.competence) });
await this.update({ "system.reve.reserve.list": reserve });
async sortMisEnReserve(sort, draconic, coord, ptreve) {
await this.createEmbeddedDocuments("Item", [{
type: 'sortreserve',
name: sort.name,
img: sort.img,
system: { sortid: sort.id, draconic: (draconic ?? sort.system.draconic), ptreve: ptreve, coord: coord, heurecible: 'Vaisseau' } }],
{ renderSheet: false});
this.currentTMR.updateTokens();
}
@ -1140,11 +1121,11 @@ export class RdDActor extends Actor {
}
/* -------------------------------------------- */
async deleteAllConteneur(itemId) {
async deleteAllConteneur(itemId, options) {
let list = [];
list.push({ id: itemId, conteneurId: undefined }); // Init list
this.buildSubConteneurObjetList(itemId, list);
await this.deleteEmbeddedDocuments('Item', list.map(it => it.id));
await this.deleteEmbeddedDocuments('Item', list.map(it => it.id), options);
}
/* -------------------------------------------- */
@ -2453,7 +2434,7 @@ export class RdDActor extends Actor {
RdDItemSort.incrementBonusCase(this, selectedSort, rollData.tmr.coord);
if (rollData.isSortReserve) {
await this.sortMisEnReserve(rollData, selectedSort);
await this.sortMisEnReserve(selectedSort, rollData.competence, rollData.tmr.coord, Number(selectedSort.system.ptreve_reel));
}
}
else {
@ -2465,6 +2446,7 @@ export class RdDActor extends Actor {
if (rolled.isETotal) { // Echec total !
rollData.depenseReve = Math.min(reveActuel, Math.floor(rollData.depenseReve * 1.5))
// TODO: mise en réserve d'un échec total...
// await dialog mse en réserve, pour traitement échec total
} else {
rollData.depenseReve = 0
}