#80 Gestion de la queue Mauvaise Rencontre en Perspective

This commit is contained in:
2020-12-30 15:18:58 +01:00
parent 5c423d1245
commit aea1bca24a
3 changed files with 77 additions and 21 deletions

View File

@ -207,6 +207,17 @@ const TMRMapping = {
M15: { type: "cite", label: "Cité de Klana"}
}
/* -------------------------------------------- */
const rencontresSpeciale = [
{name:"Mangeur de Rêve", data: { force: "1d6", ignorer: false, derober: true, refoulement: 2, quitterTMR: false } },
{name:"Mangeur de Rêve", data: { force: "2d6", ignorer: false, derober: true, refoulement: 2, quitterTMR: false } },
{name:"Reflet d'ancien Rêve", data: { force: "2d6+4", ignorer: false, derober: true, refoulement: 2, quitterTMR: false } },
{name:"Tourbillon blanc", data: { force: "2d6+4", ignorer: false, derober: true, refoulement: 2, quitterTMR: false } },
{name:"Tourbillon noir", data: { force: "2d8+4", ignorer: false, derober: true, refoulement: 2, quitterTMR: false } },
{name:"Passeur fou", data: { force: "2d8", ignorer: false, derober: true, refoulement: 2, quitterTMR: false } },
{name:"Tourbillon rouge", data: { force: "2d8", ignorer: false, derober: true, refoulement: 3, quitterTMR: false } }
]
/* -------------------------------------------- */
const rencontresTable = [
{name:"Messagers des Rêves", data: { force: "2d4", ignorer: true, derober: true, refoulement: 1, quitterTMR: false,
@ -334,7 +345,7 @@ export class TMRUtility {
}
/* -------------------------------------------- */
static async rencontreTMRRoll( coordTMR, cellDescr )
static async rencontreTMRRoll( coordTMR, cellDescr, isSpecial = false )
{
if ( this.forceRencontre ) {
// Forced
@ -344,13 +355,20 @@ export class TMRUtility {
rencontre.nbCases = 0; // Utilisé pour les Tourbillons
return rencontre;
}
let rencontre = await this.rencontreTMRTypeCase(cellDescr.type);
let rencontre;
if ( isSpecial ) {
let index = new Roll("1d7").roll().total;
rencontre = rencontresSpeciale[index-1];
} else {
rencontre = await this.rencontreTMRTypeCase(cellDescr.type);
}
//let rencontre = rencontresTable[4];
if (rencontre) {
rencontre = duplicate(rencontre);
rencontre.force = await this.evaluerForceRencontre(rencontre);
rencontre.coord = coordTMR;
rencontre.nbCases = 0; // Utilisé pour les Tourbillons
rencontre.isSpecial = isSpecial; // Garder l'information
}
return rencontre;
}
@ -507,17 +525,25 @@ export class TMRUtility {
} else if (rencontre.name == "Briseur de Rêve") {
message += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
} else if (rencontre.name == "Passeur fou") {
message += "Vous êtes déplacé sur la case de votre sort en réserve le plus proche, ou sinon aléatoirement dans une direction";
state = "passeurfou";
} else if (rencontre.name == "Reflet d'ancien Rêve") {
message += "Votre Rêve est figé, vous restez sur cette case tant que ce Reflet n'est pas vaincu!";
state = "reflet";
} else if (rencontre.name == "Tourbillon blanc") {
message += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
message += "Vous êtes emporté par le Tourbillon...";
state = "tourbillonblanc";
} else if (rencontre.name == "Tourbillon noir") {
message += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
message += "Vous êtes emporté par le Tourbillon...";
state = "tourbillonnoir";
} else if (rencontre.name == "Tourbillon rouge") {
message += "Vous êtes emporté par le Tourbillon...";
state = "tourbillonrouge";
} else if (rencontre.name == "Rêve de Dragon") {
message += "Le Rêve de Dragon tourne au cauchemar !"