forked from public/foundryvtt-reve-de-dragon
#27 Gestion des rencontres
This commit is contained in:
@ -121,6 +121,16 @@ export class RdDTMRDialog extends Dialog {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async gererTourbillon( value ) {
|
||||
this.nbFatigue += value;
|
||||
await this.actor.updatePointsDeReve( -value );
|
||||
if ( !this.currentRencontre.tourbillonDirection ) {
|
||||
this.currentRencontre.tourbillonDirection = TMRUtility.getDirectionPattern();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** Gère les rencontres avec du post-processing graphique (passeur, messagers, tourbillons, ...) */
|
||||
async rencontrePostProcess( rencontreData) {
|
||||
@ -139,6 +149,12 @@ export class RdDTMRDialog extends Dialog {
|
||||
} else if ( this.rencontreState == 'reflet' ) {
|
||||
this.nbFatigue += 1;
|
||||
|
||||
} else if ( this.rencontreState == 'tourbillonblanc' ) {
|
||||
this.gererTourbillon(1);
|
||||
|
||||
} else if ( this.rencontreState == 'tourbillonnoir' ) {
|
||||
this.gererTourbillon(2);
|
||||
|
||||
} else {
|
||||
this.currentRencontre = undefined; // Cleanup, not used anymore
|
||||
}
|
||||
@ -199,7 +215,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
this.updateValuesDisplay();
|
||||
|
||||
this.checkQuitterTMR();
|
||||
if ( this.rencontreState == 'reflet')
|
||||
if ( this.rencontreState == 'reflet' || this.rencontreState == 'tourbillonblanc' || this.rencontreState == 'tourbillonnoir' )
|
||||
this.maitriser();
|
||||
}
|
||||
|
||||
@ -222,7 +238,6 @@ export class RdDTMRDialog extends Dialog {
|
||||
let rencontre = this.rencontresExistantes.find(prev => prev.coord == coordTMR);
|
||||
if (rencontre == undefined) {
|
||||
let myRoll = new Roll("d7").roll();
|
||||
console.log("RLL RENC: ", myRoll.total, coordTMR, cellDescr);
|
||||
if (myRoll.total == 7) {
|
||||
rencontre = await TMRUtility.rencontreTMRRoll(coordTMR, cellDescr);
|
||||
}
|
||||
|
@ -207,6 +207,7 @@ const TMRMapping = {
|
||||
M15: { type: "cite", label: "Cité de Klana"}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const rencontresTable = [
|
||||
{name:"Messagers des Rêves", data: { force: "2d4", ignorer: true, derober: true, refoulement: 1, quitterTMR: false,
|
||||
cite: "01-25", sanctuaire: "01-25", plaines: "01-20", pont: "01-20", collines: "01-15", foret: "01-15", monts: "01-10", desert: "01-10", fleuve: "01-05",
|
||||
@ -229,10 +230,10 @@ const rencontresTable = [
|
||||
{name:"Reflet d'ancien Rêve", data: { force: "2d6", ignorer: false, derober: true, refoulement: 1,quitterTMR: false,
|
||||
cite: "86-90", sanctuaire: "86-90", plaines: "83-88", pont: "83-88", collines: "83-88", foret: "83-88", monts: "76-85", desert: "76-85", fleuve: "66-79",
|
||||
lac: "66-79", marais: "61-75", gouffre: "61-75", necropole: "51-65", desolation: "51-65" } },
|
||||
{name:"Tourbillon blanc", data: { force: "2d6", ignorer: false, derober: true, refoulement: 1, quitterTMR: true,
|
||||
{name:"Tourbillon blanc", data: { force: "2d6", ignorer: false, derober: true, refoulement: 1, quitterTMR: false,
|
||||
cite: "91-94", sanctuaire: "91-94", plaines: "89-93", pont: "89-93", collines: "89-93", foret: "89-93", monts: "86-92", desert: "86-92", fleuve: "80-89",
|
||||
lac: "80-89", marais: "76-86", gouffre: "76-86", necropole: "66-80", desolation: "66-80" } },
|
||||
{name:"Tourbillon noir", data: { force: "2d8", ignorer: false, derober: true, refoulement: 1, quitterTMR: true,
|
||||
{name:"Tourbillon noir", data: { force: "2d8", ignorer: false, derober: true, refoulement: 1, quitterTMR: false,
|
||||
cite: "95-97", sanctuaire: "95-97", plaines: "94-97", pont: "94-97", collines: "94-97", foret: "94-97", monts: "93-97", desert: "93-97", fleuve: "90-97",
|
||||
lac: "90-97", marais: "87-97", gouffre: "90-97", necropole: "81-97", desolation: "81-97" } },
|
||||
{name:"Rêve de Dragon", data: { force: "1ddr + 7", ignorer: false, derober: true, refoulement: 2, quitterTMR: true,
|
||||
@ -240,6 +241,18 @@ const rencontresTable = [
|
||||
lac: "98-00", marais: "98-00", gouffre: "98-00", necropole: "98-00", desolation: "98-00" } }
|
||||
]
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const tmrMovePattern =
|
||||
[ { name: 'top', x: 'zero', y: 'dec' },
|
||||
{ name: 'topright', x: 'inc', y: 'dec' },
|
||||
{ name: 'left', x: 'inc', y: 'alt' },
|
||||
{ name: 'botright', x: 'inc', y: 'inc' },
|
||||
{ name: 'bot', x: 'zero', y: 'inc' },
|
||||
{ name: 'botleft', x: 'dec', y: 'inc' },
|
||||
{ name: 'left', x: 'dec', y: 'alt' },
|
||||
{ name: 'topleft', x: 'dec', y: 'dec' }
|
||||
]
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class TMRUtility {
|
||||
|
||||
@ -279,6 +292,12 @@ export class TMRUtility {
|
||||
return this.forceRencontre
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getDirectionPattern() {
|
||||
let index = new Roll("d"+tmrMovePattern.length+" -1").roll().total;
|
||||
return tmrMovePattern[index];
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async rencontreTMRRoll( coordTMR, cellDescr )
|
||||
{
|
||||
@ -288,12 +307,14 @@ export class TMRUtility {
|
||||
rencontre = duplicate(rencontre);
|
||||
rencontre.force = this.evaluerForceRencontre(rencontre);
|
||||
rencontre.coord = coordTMR;
|
||||
rencontre.nbCases = 0; // Utilisé pour les Tourbillons
|
||||
}
|
||||
if ( this.forceRencontre ) {
|
||||
// Forced
|
||||
rencontre = rencontresTable[this.forceRencontre.id];
|
||||
rencontre.force = this.forceRencontre.force;
|
||||
rencontre.coord = coordTMR;
|
||||
rencontre.nbCases = 0; // Utilisé pour les Tourbillons
|
||||
}
|
||||
|
||||
return rencontre;
|
||||
|
Reference in New Issue
Block a user