Test rencontres

This commit is contained in:
2020-11-17 16:30:03 +01:00
parent 3d34921072
commit bdc8103f6b
5 changed files with 85 additions and 38 deletions

View File

@ -242,7 +242,7 @@ const rencontresTable = [
/* -------------------------------------------- */
export class TMRUtility {
/* -------------------------------------------- */
static convertToTMRCoord( x, y )
{
@ -268,15 +268,17 @@ export class TMRUtility {
/* -------------------------------------------- */
static async rencontreTMRRoll( coordTMR, cellDescr )
{
let rencontre = this.rencontreTMRTypeCase(cellDescr.type);
//let rencontre = this.rencontreTMRTypeCase(cellDescr.type);
let rencontre = rencontresTable[4];
if (rencontre){
rencontre = duplicate(rencontre);
rencontre.force = this.evaluerForceRencontre(rencontre);
rencontre.force = 1;//this.evaluerForceRencontre(rencontre);
rencontre.coord = coordTMR;
}
return rencontre;
}
/* -------------------------------------------- */
static rencontreTMRTypeCase(typeTMR, roll=undefined) {
if (!roll)
{
@ -325,6 +327,19 @@ export class TMRUtility {
// TODO random get same type
}
/* -------------------------------------------- */
static getLocationTypeList( coordTMR ) {
let descr = this.getTMRDescription( coordTMR );
let typeList = [];
for (let index in TMRMapping) {
let caseTMR = TMRMapping[index];
if (caseTMR.type == descr.type)
typeList.push(index)
}
return typeList;
}
/* -------------------------------------------- */
static evaluerForceRencontre(rencontre) {
if (this.isReveDeDragon(rencontre)) {
let ddr = RdDDice.deDraconique();
@ -336,19 +351,20 @@ export class TMRUtility {
}
}
/* -------------------------------------------- */
static isReveDeDragon(rencontre) {
return rencontre.name.toLowerCase() == "Rêve de Dragon".toLowerCase();
}
/* -------------------------------------------- */
static async processRencontreReussite( actor, rencontre, rolled ) {
let msg = "Vous avez réussi votre maîtrise ! ";
let msg = "<br>";
console.log("processRencontreReussite", actor, rencontre);
if (rencontre.name == "Messagers des Rêves") {
msg += "Le Messager des Rêves vous permet de lancer votre sort à XX cases !";
} else if (rencontre.name == "Passeur des Rêves") {
msg += "Le Passeur des Rêves vous téléporte sur une case à distance XX !";
msg += "Le Passeur des Rêves vous téléporte sur une case à XX !";
} else if (rencontre.name == "Fleur des Rêves") {
await actor.updatePointsDeReve( rencontre.force );
@ -358,7 +374,12 @@ export class TMRUtility {
msg += "Ce Mangeur des Rêves disparait !"
} else if (rencontre.name == "Changeur de Rêve") {
msg += "Ce Changeur des Rêves disparait !"
msg += "Ce Changeur des Rêves vous propose de vous déplacer sur une autre case de même type."
let locList = this.getLocationTypeList( actor.data.data.reve.tmrpos.coord );
for ( let coord of locList) {
let caseTMR = TMRMapping[coord];
msg += "<li class='tmr-passeur-coord' data-tmr-coord='"+coord+"'><a>"+coord+" - " +caseTMR.label+"</a></li>";
}
} else if (rencontre.name == "Briseur de Rêve") {
msg += "Ce Briseur des Rêves disparait !"
@ -377,11 +398,12 @@ export class TMRUtility {
msg += "Vous maîtrisez le Rêve de Dragon !"
msg += actor.appliquerReveDeDragon(rolled, rencontre.force);
}
return msg;
}
/* -------------------------------------------- */
static async processRencontreEchec( actor, rencontre, rolled ) {
let msg = "Vous avez échoué à votre maîtrise ! ";
let msg = "<br>";
if (rencontre.name == "Messagers des Rêves") {
msg += "Le Messager des Rêves s'éloigne de vous !";
@ -395,10 +417,11 @@ export class TMRUtility {
} else if (rencontre.name == "Mangeur de Rêve") {
await actor.updatePointsDeReve( -rencontre.force );
msg += "Ce Mangeur des Rêves croque votre Rêve ! Vous perdez " + rencontre.force + " points de rêve actuels, votre nouveau total est de " + actor.data.data.reve.reve.value;
} else if (rencontre.name == "Changeur de Rêve") {
let coordTMR = actor.data.data.reve.tmrpos.coord;
let newcoordTMR = this.getRandomLocationType(coordTMR);
msg += "Vous avez été téléporté en "; // TODO
msg += "Vous avez été téléporté en " + coordTMR + " - " + coordTMR.label;
} else if (rencontre.name == "Briseur de Rêve") {
msg += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
@ -416,8 +439,9 @@ export class TMRUtility {
msg += "Le Rêve de Dragon tourne au cauchemar !"
msg += actor.appliquerReveDeDragon(rolled, rencontre.force);
}
return msg;
}
/* -------------------------------------------- */
static async genericGetTableResult( tableName, toChat)
{
@ -431,9 +455,6 @@ export class TMRUtility {
}
/* -------------------------------------------- */
/**
*
*/
static getTMRAleatoire()
{
let num = new Roll("1d15").roll().total;