diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 853d7cd0..90af6b3b 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -370,12 +370,18 @@ export class RdDActorSheet extends ActorSheet { const item = this.actor.getOwnedItem(myID); item.sheet.render(true); }); - // Display info about queue + // Info sort html.find('.sort-label a').click((event) => { let myID = event.currentTarget.attributes['data-id'].value; const item = this.actor.getOwnedItem(myID); item.sheet.render(true); }); + // Info sort + html.find('.case-label a').click((event) => { + let myID = event.currentTarget.attributes['data-id'].value; + const item = this.actor.getOwnedItem(myID); + item.sheet.render(true); + }); // Display info about queue html.find('.conteneur-name a').click((event) => { diff --git a/module/actor.js b/module/actor.js index 7bbaedf8..c3c3fda4 100644 --- a/module/actor.js +++ b/module/actor.js @@ -162,13 +162,13 @@ export class RdDActor extends Actor { return this.encTotal ? Math.floor(this.encTotal) : 0 } /* -------------------------------------------- */ - async deleteSortReserve(coordTMR) { + async deleteSortReserve(sortReserve) { 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 ) + if (reserve.list[i].coord != sortReserve.coord && reserve.list[i].sort.name != sortReserve.sort.name ) newTable.push(reserve.list[i]); } if ( newTable.length != len ) { @@ -1351,6 +1351,12 @@ export class RdDActor extends Actor { return 1; } + /* -------------------------------------------- */ + isReserveEnSecurite() { + let reserveSecurite = this.data.items.find( item => item.type == 'tete' && item.name.toLowerCase().includes( ' en sécurité' ) ); + return reserveSecurite; + } + /* -------------------------------------------- */ isDoubleResistanceFleuve( ) { let resistFleuve = this.data.items.find( item => item.type == 'souffle' && item.name.toLowerCase().includes( 'résistance du fleuve' ) ); diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 664d6b46..af6f3be0 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -76,6 +76,8 @@ export class RdDTMRDialog extends Dialog { console.log("SPEC CASE ", caseTMR); if ( caseTMR.data.specific == 'trounoir') { this._trackToken(this._tokenTrouNoir( caseTMR.data.coord )); + } else if ( caseTMR.data.specific == 'attache') { + this._trackToken(this._tokenTerreAttache( caseTMR.data.coord )); } } } @@ -418,6 +420,14 @@ export class RdDTMRDialog extends Dialog { humideDiag.render(true); } } + /* -------------------------------------------- */ + isReserveExtensible( coordTMR) { + for( let caseTMR of this.casesSpeciales) { + if (caseTMR.data.specific == 'reserve_extensible' && caseTMR.data.coord == coordTMR ) + return true; + } + return false; + } /* -------------------------------------------- */ async declencheSortEnReserve(coordTMR) { @@ -425,18 +435,47 @@ export class RdDTMRDialog extends Dialog { return; } - let sortReserve = TMRUtility.getSortReserve( this.sortReserves, coordTMR ); - if (sortReserve != undefined) { - await this.actor.deleteSortReserve(sortReserve.coord); - this.updateSortReserve(); - console.log("declencheSortEnReserve", sortReserve) - const declenchementSort = "Vous avez déclenché le sort " + sortReserve.sort.name - + " en réserve en " + sortReserve.coord + " (" + TMRUtility.getTMRDescription(sortReserve.coord).label - + ") avec " + sortReserve.sort.data.ptreve_reel + " points de Rêve"; - this._tellToGM(declenchementSort); - this.close(); + let sortReserveList = TMRUtility.getSortReserveList( this.sortReserves, coordTMR ); + if (sortReserveList.length > 0 ) { + if ( this.actor.isReserveEnSecurite() || this.isReserveExtensible(coordTMR) ) { + let msg = "Vous êtes sur une case avec un Sort en Réserve. Grâce à votre Tête Reserve en Sécurité ou Réserve Exensible, vous pouvez contrôler le déclenchement. Cliquez si vous souhaitez le déclencher :