forked from public/foundryvtt-reve-de-dragon
#90 Gestion des cases modifies de façon permanente
This commit is contained in:
@ -46,6 +46,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
this.nbFatigue = this.viewOnly ? 0 : 1; // 1 premier point de fatigue du à la montée
|
||||
this.rencontresExistantes = duplicate(this.actor.data.data.reve.rencontre.list);
|
||||
this.sortReserves = duplicate(this.actor.data.data.reve.reserve.list);
|
||||
this.casesSpeciales = this.actor.data.items.filter( item => item.type == 'casetmr');
|
||||
this.allTokens = [];
|
||||
this.rencontreState = 'aucune';
|
||||
this.pixiApp = new PIXI.Application({ width: 720, height: 860 });
|
||||
@ -69,6 +70,16 @@ export class RdDTMRDialog extends Dialog {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
displaySpecificCase() {
|
||||
for (let caseTMR of this.casesSpeciales) {
|
||||
console.log("SPEC CASE ", caseTMR);
|
||||
if ( caseTMR.data.specific == 'trounoir') {
|
||||
this._trackToken(this._tokenTrouNoir( caseTMR.data.coord ));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
displayPreviousRencontres() {
|
||||
console.debug("displayPreviousRencontres", this.rencontresExistantes);
|
||||
@ -275,7 +286,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
|
||||
if (rencontre) { // Manages it
|
||||
if (rencontre.rencontre) rencontre = rencontre.rencontre; // Manage stored rencontres
|
||||
console.log("manageRencontre", rencontre)
|
||||
console.log("manageRencontre", rencontre);
|
||||
this.currentRencontre = duplicate(rencontre);
|
||||
|
||||
let dialog = new RdDTMRRencontreDialog("", this, this.currentRencontre);
|
||||
@ -322,6 +333,23 @@ export class RdDTMRDialog extends Dialog {
|
||||
fatigueItem.innerHTML = "<table class='table-fatigue'>" + RdDUtility.makeHTMLfatigueMatrix(this.actor.data.data.sante.fatigue.value, this.actor.data.data.sante.endurance.max).html() + "</table>";
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async manageCaseSpeciale( cellDescr, coordTMR ) {
|
||||
for( let caseTMR of this.casesSpeciales) {
|
||||
if (caseTMR.data.coord == coordTMR) { // Match !
|
||||
if (caseTMR.data.specific == 'trounoir') {
|
||||
let newTMR = TMRUtility.getTMRAleatoire();
|
||||
let tmrPos = duplicate(this.actor.data.data.reve.tmrpos);
|
||||
tmrPos.coord = newTMR;
|
||||
await this.actor.update( { "data.reve.tmrpos": tmrPos } );
|
||||
ChatMessage.create( {
|
||||
content: "Vous êtes rentré sur un Trou Noir : ré-insertion aléatoire.",
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name) } );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
manageCaseHumideResult() {
|
||||
if (this.toclose)
|
||||
@ -478,6 +506,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
if ( deplacementType == 'normal') { // Pas de rencontres après un saut de type passeur/changeur/...
|
||||
await myself.manageRencontre(coordTMR, cellDescr);
|
||||
}
|
||||
await myself.manageCaseSpeciale(cellDescr, coordTMR);
|
||||
await myself.manageCaseHumide(cellDescr);
|
||||
await myself.declencheSortEnReserve(coordTMR);
|
||||
await myself.actor.checkSoufflePeage(cellDescr);
|
||||
@ -554,7 +583,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
this._addDemiReve();
|
||||
this.displayPreviousRencontres();
|
||||
this.displaySortReserve();
|
||||
|
||||
this.displaySpecificCase();
|
||||
});
|
||||
|
||||
if (this.viewOnly) {
|
||||
@ -604,6 +633,19 @@ export class RdDTMRDialog extends Dialog {
|
||||
return { sprite: sprite, rencontre: rencontre, coordTMR: () => rencontre.coord };
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_tokenTrouNoir( coord ) {
|
||||
let sprite = new PIXI.Graphics();
|
||||
sprite.beginFill(0x050505, 0.8);
|
||||
sprite.drawCircle(0, 0, (tmrConstants.cellw / 2) - 2);
|
||||
sprite.endFill();
|
||||
sprite.decallage = {
|
||||
x: 0,
|
||||
y: 2
|
||||
}
|
||||
return { sprite: sprite, coordTMR: () => coord }
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_tokenSortEnReserve(sort) {
|
||||
let sprite = new PIXI.Graphics();
|
||||
|
Reference in New Issue
Block a user