forked from public/foundryvtt-reve-de-dragon
Fix messages
- undefined dans certains cas (lancer de sort) - promise pour la maîtrise de case humides - ajout de message au joueur pour les jets de rencontre - messages au joueur + GM pour les résultats de rencontres - message au joueur + GM lors de la montée et dans les cas où les TMRs sont quittées
This commit is contained in:
@ -321,29 +321,28 @@ export class TMRUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async rencontreTMRRoll( coordTMR, cellDescr )
|
||||
{
|
||||
let rencontre = await this.rencontreTMRTypeCase(cellDescr.type);
|
||||
//let rencontre = rencontresTable[4];
|
||||
if (rencontre){
|
||||
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];
|
||||
let rencontre = duplicate(rencontresTable[this.forceRencontre.id]);
|
||||
rencontre.force = this.forceRencontre.force;
|
||||
rencontre.coord = coordTMR;
|
||||
rencontre.nbCases = 0; // Utilisé pour les Tourbillons
|
||||
return rencontre;
|
||||
}
|
||||
let 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
|
||||
}
|
||||
|
||||
return rencontre;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async rencontreTMRTypeCase(typeTMR, roll=undefined) {
|
||||
if (!roll)
|
||||
{
|
||||
if (!roll) {
|
||||
//roll = await RdDDice.show(new Roll("d100").evaluate()).total;
|
||||
roll = new Roll("d100").roll().total;
|
||||
console.log("rencontreTMRTypeCase", roll);
|
||||
@ -368,19 +367,23 @@ export class TMRUtility {
|
||||
* @param {*} caseName
|
||||
* @param {*} roll
|
||||
*/
|
||||
static getRencontre( caseName, roll ) {
|
||||
if (!roll) {
|
||||
roll = new Roll("1d100").roll().total;
|
||||
}
|
||||
static async getRencontre( caseName, roll ) {
|
||||
if ( !caseName) {
|
||||
ChatMessage.create({ content: "Un nom de case doit être indiqué (ie /tmrr desert ou /tmrr cite)" });
|
||||
return false;
|
||||
}
|
||||
|
||||
let rencontre = this.rencontreTMRTypeCase(caseName, roll);
|
||||
if (roll == undefined) {
|
||||
roll = new Roll("d100").evaluate().total;
|
||||
}
|
||||
roll = Math.max(1, Math.min(roll, 100));
|
||||
|
||||
let rencontre = await this.rencontreTMRTypeCase(caseName, roll);
|
||||
if (rencontre) {
|
||||
let force = this.evaluerForceRencontre(rencontre);
|
||||
ChatMessage.create({ content: "Rencontre en " + caseName + "(jet : " + roll + "%)<br>Vous rencontrez un " + rencontre.name + " d'une force de " + force + " Points de Rêve" });
|
||||
let force = await this.evaluerForceRencontre(rencontre);
|
||||
ChatMessage.create({
|
||||
user: game.user._id,
|
||||
whisper: [game.user._id],
|
||||
content: "Rencontre en " + caseName + "(jet : " + roll + "%)<br>Vous rencontrez un " + rencontre.name + " d'une force de " + force + " Points de Rêve"});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -398,9 +401,9 @@ export class TMRUtility {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static evaluerForceRencontre(rencontre) {
|
||||
static async evaluerForceRencontre(rencontre) {
|
||||
if (this.isReveDeDragon(rencontre)) {
|
||||
let ddr = RdDDice.deDraconique();
|
||||
let ddr = await RdDDice.deDraconique();
|
||||
return ddr + 7;
|
||||
}
|
||||
else {
|
||||
@ -416,96 +419,96 @@ export class TMRUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async processRencontreReussite( actor, rencontre, rolled ) {
|
||||
let msg = "<br>";
|
||||
let message = "<br>";
|
||||
let state = "aucune";
|
||||
|
||||
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 !";
|
||||
state = "messager";
|
||||
message += "Le Messager des Rêves vous permet de lancer votre sort à " + rencontre.force + " cases !";
|
||||
state = 'messager';
|
||||
|
||||
} else if (rencontre.name == "Passeur des Rêves") {
|
||||
msg += "Le Passeur des Rêves vous permet de vous téléporter à " + rencontre.force + " cases !";
|
||||
state = "passeur";
|
||||
message += "Le Passeur des Rêves vous permet de vous téléporter à " + rencontre.force + " cases !";
|
||||
state = 'passeur';
|
||||
|
||||
} else if (rencontre.name == "Fleur des Rêves") {
|
||||
await actor.reveActuelIncDec( rencontre.force );
|
||||
msg += "La Fleur des rêves s'évanouit en vous fournissant " + rencontre.force + " Points de Rêve";
|
||||
message += "La Fleur des rêves s'évanouit en vous fournissant " + rencontre.force + " Points de Rêve";
|
||||
|
||||
} else if (rencontre.name == "Mangeur de Rêve") {
|
||||
msg += "Ce Mangeur des Rêves disparait !"
|
||||
message += "Ce Mangeur des Rêves disparait !"
|
||||
|
||||
} else if (rencontre.name == "Changeur de Rêve") {
|
||||
msg += "Ce Changeur des Rêves vous propose de vous déplacer sur une autre case de même type."
|
||||
state = "changeur";
|
||||
message += "Ce Changeur des Rêves vous propose de vous déplacer sur une autre case de même type."
|
||||
state = 'changeur';
|
||||
|
||||
} else if (rencontre.name == "Briseur de Rêve") {
|
||||
msg += "Ce Briseur des Rêves disparait !"
|
||||
message += "Ce Briseur des Rêves disparait !"
|
||||
|
||||
} else if (rencontre.name == "Reflet d'ancien Rêve") {
|
||||
msg += "Ce Reflet d'ancien Rêve disparait !"
|
||||
message += "Ce Reflet d'ancien Rêve disparait !"
|
||||
|
||||
} else if (rencontre.name == "Tourbillon blanc") {
|
||||
msg += "Ce Tourbillon Blanc disparait !"
|
||||
message += "Ce Tourbillon Blanc disparait !"
|
||||
|
||||
} else if (rencontre.name == "Tourbillon noir") {
|
||||
msg += "Ce Tourbillon Noir disparait !"
|
||||
message += "Ce Tourbillon Noir disparait !"
|
||||
|
||||
} else if (rencontre.name == "Rêve de Dragon") {
|
||||
// TODO: xp particulière
|
||||
msg += "Vous maîtrisez le Rêve de Dragon !"
|
||||
msg += actor.appliquerReveDeDragon(rolled, rencontre.force);
|
||||
message += "Vous maîtrisez le Rêve de Dragon !"
|
||||
message += actor.appliquerReveDeDragon(rolled, rencontre.force);
|
||||
}
|
||||
return { msg: msg, state: state };
|
||||
return { message: message, state: state };
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async processRencontreEchec( actor, rencontre, rolled, tmrDialog ) {
|
||||
let msg = "<br>";
|
||||
let message = "<br>";
|
||||
let state = "aucune";
|
||||
|
||||
if (rencontre.name == "Messagers des Rêves") {
|
||||
msg += "Le Messager des Rêves s'éloigne de vous !";
|
||||
message += "Le Messager des Rêves s'éloigne de vous !";
|
||||
|
||||
} else if (rencontre.name == "Passeur des Rêves") {
|
||||
msg += "Le Passeur des Rêves s'éloigne de vous !";
|
||||
message += "Le Passeur des Rêves s'éloigne de vous !";
|
||||
|
||||
} else if (rencontre.name == "Fleur des Rêves") {
|
||||
msg += "La Fleur des rêves s'éloigne de vous et se perd dans les Terres Médianes";
|
||||
message += "La Fleur des rêves s'éloigne de vous et se perd dans les Terres Médianes";
|
||||
|
||||
} else if (rencontre.name == "Mangeur de Rêve") {
|
||||
await actor.reveActuelIncDec( -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;
|
||||
message += "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") {
|
||||
msg += "Ce Changeur des Rêves vous déplace sur un autre case du même type.<br>"
|
||||
message += "Ce Changeur des Rêves vous déplace sur un autre case du même type.<br>"
|
||||
let locList = this.getLocationTypeList( actor.data.data.reve.tmrpos.coord );
|
||||
let index = new Roll("1d"+locList.length + " - 1").roll().total;
|
||||
let newCoord = locList[index];
|
||||
tmrDialog.forceDemiRevePosition(newCoord);
|
||||
let cellDescr = TMRUtility.getTMRDescription(newCoord);
|
||||
msg += "Vous avez été téléporté en " + newCoord + " - " + cellDescr.label;
|
||||
message += "Vous avez été téléporté en " + newCoord + " - " + cellDescr.label;
|
||||
|
||||
} else if (rencontre.name == "Briseur de Rêve") {
|
||||
msg += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
|
||||
message += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
|
||||
|
||||
} else if (rencontre.name == "Reflet d'ancien Rêve") {
|
||||
msg += "Votre Rêve est figé, vous restez sur cette case tant que ce Reflet n'est pas vaincu!";
|
||||
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") {
|
||||
msg += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
|
||||
message += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
|
||||
state = "tourbillonblanc";
|
||||
|
||||
} else if (rencontre.name == "Tourbillon noir") {
|
||||
msg += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
|
||||
message += "Votre Rêve est Brisé, vous quittez les Terres Médianes";
|
||||
state = "tourbillonnoir";
|
||||
|
||||
} else if (rencontre.name == "Rêve de Dragon") {
|
||||
msg += "Le Rêve de Dragon tourne au cauchemar !"
|
||||
msg += actor.appliquerReveDeDragon(rolled, rencontre.force);
|
||||
message += "Le Rêve de Dragon tourne au cauchemar !"
|
||||
message += actor.appliquerReveDeDragon(rolled, rencontre.force);
|
||||
}
|
||||
return { msg: msg, state: state };
|
||||
return { message: message, state: state };
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
Reference in New Issue
Block a user