diff --git a/module/actor-sheet.js b/module/actor-sheet.js
index 06db623b..79880544 100644
--- a/module/actor-sheet.js
+++ b/module/actor-sheet.js
@@ -90,16 +90,11 @@ export class RdDActorSheet extends ActorSheet {
data.data.combat = duplicate(RdDUtility.checkNull(data.itemsByType['arme']));
data.data.combat = RdDUtility._finalizeArmeList(data.data.combat, data.itemsByType.competence, data.data.carac);
- if (data.competenceByCategory && data.competenceByCategory.melee) {
- //Specific case for Esquive and Corps à Corps
- for (const melee of data.competenceByCategory.melee) {
- if (melee.name == "Esquive")
- data.data.combat.push({ name: "Esquive", data: { niveau: melee.data.niveau, description: "", force: 6, initiative: "", competence: "Esquive", dommages: 0 } });
- if (melee.name == "Corps à corps") {
- let cc_init = RdDUtility.calculInitiative(melee.data.niveau, data.data.carac['melee'].value);
- data.data.combat.push(RdDItemArme.mainsNues({ niveau: melee.data.niveau, initiative: cc_init }));
- }
- }
+ data.esquive = { name: "Esquive", niveau: data.competenceByCategory?.melee.find(it => it.name == 'Esquive')?.data.niveau ?? -6};
+ let corpsACorps = data.competenceByCategory?.melee.find(it => it.name == 'Corps à corps');
+ if (corpsACorps) {
+ let cc_init = RdDUtility.calculInitiative(corpsACorps.data.niveau, data.data.carac['melee'].value);
+ data.data.combat.push(RdDItemArme.mainsNues({ niveau: corpsACorps.data.niveau, initiative: cc_init }));
}
this.armesList = duplicate(data.data.combat);
diff --git a/module/rdd-commands.js b/module/rdd-commands.js
index 6f1eac94..1523cb26 100644
--- a/module/rdd-commands.js
+++ b/module/rdd-commands.js
@@ -31,8 +31,11 @@ export class RdDCommands {
rddCommands.registerCommand({ path: ["/tmra"], func: (content, msg, params) => TMRUtility.getTMRAleatoire(), descr: "Tire une case aléatoire des Terres médianes" });
rddCommands.registerCommand({
- path: ["/tmrr"], func: (content, msg, params) => rddCommands.getRencontreTMR(msg, params),
- descr: "Exemple: /tmrr forêt 47
Détermine quelle est la rencontre dans une case 'forêt' pour un jet de dé de 47"
+ path: ["/tmrr"], func: (content, msg, params) => rddCommands.getRencontreTMR(params),
+ descr: `
+ Exemple: /tmrr foret lance un d100 et détermine la rencontre correspondante en 'forêt'
+ Exemple: /tmrr forêt 47 détermine la rencontre en 'forêt' pour un jet de dé de 47
+ `
});
rddCommands.registerCommand({
@@ -182,8 +185,8 @@ export class RdDCommands {
}
/* -------------------------------------------- */
- getRencontreTMR(params) {
- if (params.length == 2) {
+ async getRencontreTMR(params) {
+ if (params.length == 1 || params.length ==2) {
return TMRUtility.getRencontre(params[0], params[1])
}
else {
@@ -215,7 +218,7 @@ export class RdDCommands {
caracValue: carac,
finalLevel: diff,
showDice: true,
- diviseur: significative ? 2 : 1,
+ diviseurSignificative: significative ? 2 : 1,
show: { title: "Table de résolution" }
};
await RdDResolutionTable.rollData(rollData);
@@ -226,7 +229,7 @@ export class RdDCommands {
async rollDeDraconique(msg) {
let ddr = new DeDraconique().evaluate();
ddr.showDice = true;
- await RdDDice.show(ddr);
+ await RdDDice.showDiceSoNice(ddr);
RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr.total}`);
}
diff --git a/module/tmr-utility.js b/module/tmr-utility.js
index 22778d15..29f9a6fd 100644
--- a/module/tmr-utility.js
+++ b/module/tmr-utility.js
@@ -400,26 +400,25 @@ export class TMRUtility {
/* -------------------------------------------- */
/**
* Retourne une recontre en fonction de la case et du tirage
- * @param {*} caseName
+ * @param {*} terrain
* @param {*} roll
*/
- static async getRencontre( caseName, roll ) {
- if ( !caseName) {
+ static async getRencontre( terrain, roll ) {
+ if ( !terrain) {
ChatMessage.create({ content: "Un nom de case doit être indiqué (ie /tmrr desert ou /tmrr cite)" });
return false;
}
- if (roll == undefined) {
- roll = new Roll("1d100").evaluate().total;
- }
+
+ roll = roll ?? new Roll("1d100").evaluate().total;
roll = Math.max(1, Math.min(roll, 100));
- let rencontre = await this.rencontreTMRTypeCase(caseName, roll);
+ let rencontre = await this.rencontreTMRTypeCase(terrain, roll);
if (rencontre) {
let force = await this.evaluerForceRencontre(rencontre);
ChatMessage.create({
user: game.user._id,
whisper: [game.user._id],
- content: "Rencontre en " + caseName + "(jet : " + roll + "%)
Vous rencontrez un " + rencontre.name + " d'une force de " + force + " Points de Rêve"});
+ content: `Rencontre en ${terrain} (jet : ${roll}%)
Vous rencontrez un ${rencontre.name} de ${force} Points de Rêve`});
}
return false;
}
diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html
index f3c9bcc3..5597990d 100644
--- a/templates/actor-sheet.html
+++ b/templates/actor-sheet.html
@@ -529,14 +529,21 @@
{{#each data.combat as |arme key|}}