diff --git a/module/actor.js b/module/actor.js
index 86ed59b0..6d6988ff 100644
--- a/module/actor.js
+++ b/module/actor.js
@@ -468,19 +468,19 @@ export class RdDActor extends Actor {
const seuil = this.data.data.reve.seuil.value;
const reveActuel = this.getReveActuel();
if (reveActuel >= seuil) {
- message.content += " Vous avez suffisament rêvé (seuil " + seuil + ", rêve actuel "+reveActuel+")";
+ message.content += ` Vous avez suffisament rêvé (seuil ${seuil}, rêve actuel ${reveActuel})`;
}
else {
- let deRecuperation = await DeDraconique.ddr("selfroll").total;
+ let deRecuperation = (await DeDraconique.ddr("selfroll")).total;
console.log("recuperationReve", deRecuperation);
if (deRecuperation>=7)
{
// Rêve de Dragon !
- message.content += " Vous faites un Rêve de Dragon de " + deRecuperation + " Points de rêve";
+ message.content += ` Vous faites un Rêve de Dragon de ${deRecuperation} Points de rêve`;
message.content += await this.combattreReveDeDragon(deRecuperation);
}
else{
- message.content += " Vous récupérez " + deRecuperation + " Points de rêve";
+ message.content += ` Vous récupérez ${deRecuperation} Points de rêve`;
await this.reveActuelIncDec(deRecuperation);
}
}
@@ -491,7 +491,7 @@ export class RdDActor extends Actor {
const seuil = this.data.data.reve.seuil.value;
const reveActuel = this.getReveActuel();
if (reveActuel > seuil) {
- message.content += " Votre rêve redescend vers son seuil naturel (seuil " + seuil + ", nouveau rêve actuel "+(reveActuel-1)+")";
+ message.content += ` Votre rêve redescend vers son seuil naturel (${seuil}, nouveau rêve actuel ${(reveActuel-1)})`;
await this.reveActuelIncDec(-1);
}
}
@@ -818,7 +818,7 @@ export class RdDActor extends Actor {
content: this.name + " subit une Queue de Dragon : " + queue.name
});
}
- return queue;
+ return queue.name;
}
/* -------------------------------------------- */
@@ -1331,6 +1331,7 @@ export class RdDActor extends Actor {
ui.notifications.info("Aucun sort disponible!");
return;
}
+ if ( this.currentTMR) this.currentTMR.minimize(); // Hide
let rollData = {
selectedCarac: this.data.data.carac.reve,
@@ -1344,7 +1345,6 @@ export class RdDActor extends Actor {
coutreve: Array(20).fill().map((item, index) => 1 + index)
}
- if ( this.currentTMR) this.currentTMR.minimize(); // Hide
const dialog = await RdDRoll.create(this, rollData,
{ html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-sort.html',
close: html => { this.currentTMR.maximize() } // Re-display TMR
@@ -1528,10 +1528,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async rollCarac( caracName ) {
- let rollData = {
- selectedCarac: this.getCaracByName(caracName),
- diviseur : this.getDiviseurSignificative()
- };
+ let rollData = { selectedCarac: this.getCaracByName(caracName) };
const dialog = await RdDRoll.create(this, rollData,
{html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-carac.html'},
@@ -1550,15 +1547,12 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async _onRollCaracResult(rollData) {
// Final chat message
- await RdDResolutionTable.displayRollData(rollData, this.name);
+ await RdDResolutionTable.displayRollData(rollData, this.name, 'chat-resultat-general.html');
}
/* -------------------------------------------- */
async rollCompetence( name ) {
- let rollData = {
- competence: this.getCompetence(name),
- diviseur : this.getDiviseurSignificative()
- }
+ let rollData = { competence: this.getCompetence(name) }
if (rollData.competence.type == 'competencecreature') {
// Fake competence pour créature
@@ -1610,17 +1604,15 @@ export class RdDActor extends Actor {
competence.data.defaut_carac = tache.data.carac; // Patch !
let rollData = {
competence: competence,
- diviseur : this.getDiviseurSignificative(),
tache: tache,
diffConditions: tache.data.difficulte,
editLibre: false,
editConditions: false,
- actor: this
- }
-
- rollData.carac = {};
+ carac : { }
+ };
rollData.carac[tache.data.carac] = duplicate(this.data.data.carac[tache.data.carac]); // Single carac
- console.log("rollTache !!!", duplicate(rollData));
+
+ console.log("rollTache !!!", rollData);
const dialog = await RdDRoll.create(this, rollData, {html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html'}, {
name: 'jet-competence',
@@ -1658,7 +1650,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async rollAppelChance( )
{
- let rollData = { selectedCarac: this.getCaracByName('chance-actuelle') };
+ let rollData = { selectedCarac: this.getCaracByName('chance-actuelle'), surprise: '' };
const dialog = await RdDRoll.create(this, rollData,
{ html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-carac.html'},
@@ -1676,18 +1668,9 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async _appelChanceResult(rollData) {
- // TODO:
- const message = {
- user: game.user._id,
- alias: this.name,
- content: this.name + " fait appel à la chance" + RdDResolutionTable.explain(rollData.rolled)
- };
if (rollData.rolled.isSuccess) {
- message.content += " Un point de chance est dépensée, l'action peut être retentée"
await this.chanceActuelleIncDec(-1)
}
- ChatMessage.create(message);
-
RdDResolutionTable.displayRollData(rollData, this.name, 'chat-resultat-appelchance.html')
}
@@ -2047,21 +2030,21 @@ export class RdDActor extends Actor {
}
let rolled = await RdDResolutionTable.roll( this.getReveActuel(), - Number(entite.data.data.carac.niveau.value));
-
- let message = {
- content: "Jet de points actuels de rêve à " + rolled.finalLevel + RdDResolutionTable.explain(rolled) + " ",
- whisper: ChatMessage.getWhisperRecipients(this.name)
+ const rollData = {
+ alias: this.name,
+ rolled: rolled,
+ entite: entite.name,
+ selectedCarac : this.data.data.carac.reve
};
-
+
if (rolled.isSuccess) {
await entite.setEntiteReveAccordee(this);
- message.content += this.name + " s'est accordé avec " + entite.name;
}
- else {
- message.content+= this.name + " n'est pas accordé avec " + entite.name;
+
+ await RdDResolutionTable.displayRollData(rollData, this.name, 'chat-resultat-accorder-cauchemar.html');
+ if (rolled.isPart) {
+ await this._appliquerAjoutExperience(rollData, true);
}
-
- ChatMessage.create( message );
return rolled.isSuccess;
}
diff --git a/module/chat-utility.js b/module/chat-utility.js
index 0836f269..e45ebe30 100644
--- a/module/chat-utility.js
+++ b/module/chat-utility.js
@@ -27,6 +27,7 @@ export class ChatUtility {
chatOptions.whisper = ChatUtility.getWhisperRecipients(rollMode, name);
break;
}
+ chatOptions.alias = chatOptions.alias||name;
ChatMessage.create(chatOptions);
}
diff --git a/module/rdd-commands.js b/module/rdd-commands.js
index f5808330..74c11de4 100644
--- a/module/rdd-commands.js
+++ b/module/rdd-commands.js
@@ -5,7 +5,7 @@ import { DeDraconique } from "./de-draconique.js";
import { Misc } from "./misc.js";
import { RdDDice } from "./rdd-dice.js";
import { RdDResolutionTable } from "./rdd-resolution-table.js";
-import { RdDRollResolution } from "./rdd-roll-resolution.js";
+import { RdDRollResolutionTable } from "./rdd-roll-resolution-table.js";
import { RdDRollTables } from "./rdd-rolltables.js";
import { RdDUtility } from "./rdd-utility.js";
import { TMRUtility } from "./tmr-utility.js";
@@ -167,7 +167,7 @@ export class RdDCommands {
async rollRdd(msg, params) {
if (params.length == 0) {
- RdDRollResolution.open();
+ RdDRollResolutionTable.open();
}
else {
let flatParams = params.reduce((a, b) => `${a} ${b}`);
diff --git a/module/rdd-resolution-table.js b/module/rdd-resolution-table.js
index a9a43544..ef4518a8 100644
--- a/module/rdd-resolution-table.js
+++ b/module/rdd-resolution-table.js
@@ -4,7 +4,6 @@ import { Misc } from "./misc.js";
import { RdDBonus } from "./rdd-bonus.js";
import { RdDCombat } from "./rdd-combat.js";
import { RdDDice } from "./rdd-dice.js";
-import { RdDRollTables } from "./rdd-rolltables.js";
/**
* difficultés au delà de -10
@@ -48,8 +47,8 @@ const specialResults = [
const reussites = [
{ code: "etotal", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: true, ptTache: -4, ptQualite: -6, quality: "Echec total", condition: (target, roll) => roll >= target.etotal && roll <= 100 },
{ code: "epart", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: false, ptTache: -2, ptQualite: -4, quality: "Echec particulier", condition: (target, roll) => (roll >= target.epart && roll < target.etotal) },
- { code: "echec", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: false, isETotal: false, ptTache: 0, ptQualite: -2, quality: "Echec normal", condition: (target, roll) => (roll > target.score && roll < target.etotal) },
- { code: "norm", isPart: false, isSign: false, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 1, ptQualite: 0, quality: "Réussite normale", condition: (target, roll) => (roll > target.sign && roll <= target.score) },
+ { code: "echec", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: false, isETotal: false, ptTache: 0, ptQualite: -2, quality: "Echec normal", condition: (target, roll) => (roll > target.norm && roll < target.etotal) },
+ { code: "norm", isPart: false, isSign: false, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 1, ptQualite: 0, quality: "Réussite normale", condition: (target, roll) => (roll > target.sign && roll <= target.norm) },
{ code: "sign", isPart: false, isSign: true, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 2, ptQualite: 1, quality: "Réussite significative", condition: (target, roll) => (roll > target.part && roll <= target.sign) },
{ code: "part", isPart: true, isSign: true, isSuccess: true, isEchec: false, isEPart: false, isETotal: false, ptTache: 3, ptQualite: 2, quality: "Réussite Particulière!", condition: (target, roll) => (roll > 0 && roll <= target.part) },
{ code: "error", isPart: false, isSign: false, isSuccess: false, isEchec: true, isEPart: true, isETotal: true, ptTache: 0, ptQualite: 0, quality: "Jet de dés invalide", condition: (target, roll) => (roll <= 0 || roll > 100) }
@@ -102,8 +101,9 @@ export class RdDResolutionTable {
static async displayRollData(rollData, userName, template = 'chat-resultat-general.html') {
- let html = await RdDResolutionTable.buildRollDataHtml(rollData, template);
- ChatUtility.chatWithRollMode({ content: html }, userName)
+ ChatUtility.chatWithRollMode(
+ { content: await RdDResolutionTable.buildRollDataHtml(rollData, template) },
+ userName)
}
static _buildAjustements(rollData) {
@@ -180,7 +180,7 @@ export class RdDResolutionTable {
rolled.caracValue = caracValue;
rolled.finalLevel = finalLevel;
rolled.bonus = bonus;
- rolled.factor = RdDResolutionTable._getFractionHtml(diviseur);
+ rolled.factorHtml = RdDResolutionTable._getFractionHtml(diviseur);
return rolled;
}
@@ -218,7 +218,7 @@ export class RdDResolutionTable {
if (difficulte < -10) {
return duplicate(levelDown.find(levelData => levelData.level == difficulte));
}
- return duplicate(this.resolutionTable[caracValue][difficulte + 10]);
+ return duplicate(RdDResolutionTable.resolutionTable[caracValue][difficulte + 10]);
}
static isAjustementAstrologique(rollData) {
@@ -287,41 +287,52 @@ export class RdDResolutionTable {
return {
niveau: niveau,
score: percentage,
+ norm: Math.min(99, percentage),
sign: this._reussiteSignificative(percentage),
part: this._reussitePart(percentage),
epart: this._echecParticulier(percentage),
etotal: this._echecTotal(percentage)
- }
+ };
}
/* -------------------------------------------- */
- static _reussiteSignificative(score) {
- return Math.floor(score / 2);
+ static _reussiteSignificative(percentage) {
+ return Math.floor(percentage / 2);
}
/* -------------------------------------------- */
- static _reussitePart(score) {
- return Math.ceil(score / 5);
+ static _reussitePart(percentage) {
+ return Math.ceil(percentage / 5);
}
/* -------------------------------------------- */
- static _echecParticulier(score) {
- return Math.ceil(score / 5) + 80;
+ static _echecParticulier(percentage) {
+ const epart = Math.ceil(percentage / 5) + 80;
+ return epart >= 100 ? 101 : epart;
}
/* -------------------------------------------- */
- static _echecTotal(score) {
- return Math.ceil(score / 10) + 91;
+ static _echecTotal(percentage) {
+ const etotal = Math.ceil(percentage / 10) + 91;
+ return percentage >= 100 ? 101 : Math.min(etotal, 100);
}
/* -------------------------------------------- */
static buildHTMLResults(caracValue, levelValue) {
let cell = this.computeChances(caracValue, levelValue);
- let descr = $('');
- descr.append("Particulière : " + cell.part + " - Significative : " + cell.sign + " - Réussite : " + cell.score);
- descr.append(" Echec Particulier : " + cell.epart + " - Echec Total : " + cell.etotal);
- descr.append(" ");
- return descr;
+ cell.epart = cell.epart>99? 'N/A' : cell.epart;
+ cell.etotal = cell.etotal>100? 'N/A' : cell.etotal;
+ cell.score = Math.min(cell.score, 99);
+
+ return `
+
+Particulière: ${cell.part}
+- Significative: ${cell.sign}
+- Réussite: ${cell.score}
+- Echec Particulier: ${cell.epart}
+- Echec Total: ${cell.etotal}
+
+`
}
/* -------------------------------------------- */
@@ -342,10 +353,10 @@ export class RdDResolutionTable {
maxLevel = Math.max(Math.min(maxLevel, 22), minLevel + countColonnes);
let table = $("
")
- .append(this._buildHTMLHeader(this.resolutionTable[0], minLevel, maxLevel));
+ .append(this._buildHTMLHeader(RdDResolutionTable.resolutionTable[0], minLevel, maxLevel));
for (var rowIndex = minCarac; rowIndex <= maxCarac; rowIndex++) {
- table.append(this._buildHTMLRow(this.resolutionTable[rowIndex], rowIndex, caracValue, levelValue, minLevel, maxLevel));
+ table.append(this._buildHTMLRow(RdDResolutionTable.resolutionTable[rowIndex], rowIndex, caracValue, levelValue, minLevel, maxLevel));
}
table.append("");
return table;
diff --git a/module/rdd-roll-resolution.js b/module/rdd-roll-resolution-table.js
similarity index 92%
rename from module/rdd-roll-resolution.js
rename to module/rdd-roll-resolution-table.js
index cc6c3277..fc6c1844 100644
--- a/module/rdd-roll-resolution.js
+++ b/module/rdd-roll-resolution-table.js
@@ -7,20 +7,18 @@ const titleTableDeResolution = 'Table de résolution';
* @extends {Dialog}
*/
/* -------------------------------------------- */
-export class RdDRollResolution extends Dialog {
+export class RdDRollResolutionTable extends Dialog {
/* -------------------------------------------- */
static async open(rollData = {}) {
- RdDRollResolution._setDefaultOptions(rollData);
+ RdDRollResolutionTable._setDefaultOptions(rollData);
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-roll-resolution.html', rollData);
- const dialog = new RdDRollResolution(rollData, html);
+ const dialog = new RdDRollResolutionTable(rollData, html);
dialog.render(true);
}
/* -------------------------------------------- */
static _setDefaultOptions(rollData) {
-
-
let defRollData = {
show: { title: titleTableDeResolution },
ajustementsConditions: CONFIG.RDD.ajustementsConditions,
@@ -62,8 +60,8 @@ export class RdDRollResolution extends Dialog {
/* -------------------------------------------- */
async onAction(html) {
await RdDResolutionTable.rollData(this.rollData);
- console.log("RdDRollResolution -=>", this.rollData, this.rollData.rolled);
- await RdDResolutionTable.displayRollData(rollData, game.user.name)
+ console.log("RdDRollResolutionTable -=>", this.rollData, this.rollData.rolled);
+ await RdDResolutionTable.displayRollData(this.rollData, game.user.name);
}
/* -------------------------------------------- */
diff --git a/module/rdd-roll.js b/module/rdd-roll.js
index d9d6275f..95fa2fb0 100644
--- a/module/rdd-roll.js
+++ b/module/rdd-roll.js
@@ -50,7 +50,8 @@ export class RdDRoll extends Dialog {
isMalusEncombrementTotal: RdDItemCompetence.isMalusEncombrementTotal(rollData.competence),
useMalusEncTotal: false,
encTotal: actor.getEncombrementTotal(),
- ajustementAstrologique: actor.ajustementAstrologique()
+ ajustementAstrologique: actor.ajustementAstrologique(),
+ surprise: actor.getSurprise()
}
mergeObject(rollData, defaultRollData, { overwrite: false });
}
diff --git a/module/rdd-utility.js b/module/rdd-utility.js
index 0a01ab55..4c3611e1 100644
--- a/module/rdd-utility.js
+++ b/module/rdd-utility.js
@@ -1,11 +1,10 @@
/* Common useful functions shared between objects */
-import { TMRUtility } from "./tmr-utility.js";
import { RdDRollTables } from "./rdd-rolltables.js";
import { ChatUtility } from "./chat-utility.js";
import { RdDItemCompetence } from "./item-competence.js";
import { RdDCombat } from "./rdd-combat.js";
-import { RdDRollResolution } from "./rdd-roll-resolution.js";
+import { RdDRollResolutionTable } from "./rdd-roll-resolution-table.js";
/* -------------------------------------------- */
const level_category = {
@@ -92,7 +91,7 @@ const fatigueMarche = { "aise": { "4":1, "6":2, "8":3, "10":4, "12":6 },
/* -------------------------------------------- */
/* Static tables for commands /table */
-const table2func = { "rdd": { descr: "rdd: Ouvre la table de résolution", func: RdDRollResolution.open },
+const table2func = { "rdd": { descr: "rdd: Ouvre la table de résolution", func: RdDRollResolutionTable.open },
"queues": { descr: "queues: Tire une queue de Dragon", func: RdDRollTables.getQueue},
"ombre": { descr: "ombre: Tire une Ombre de Dragon", func: RdDRollTables.getOmbre },
"tetehr": { descr: "tetehr: Tire une Tête de Dragon pour Hauts Revants", fund: RdDRollTables.getTeteHR},
@@ -198,6 +197,7 @@ export class RdDUtility {
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-init.html',
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-attaque.html',
// messages tchat
+ 'systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html',
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-appelchance.html',
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-attaque.html',
'systems/foundryvtt-reve-de-dragon/templates/chat-resultat-parade.html',
diff --git a/styles/simple.css b/styles/simple.css
index 380c72b1..76ad3e7f 100644
--- a/styles/simple.css
+++ b/styles/simple.css
@@ -396,7 +396,7 @@ table {border: 1px solid #7a7971;}
border-radius: 6px; padding: 3px;
background:linear-gradient(150deg, rgba(0, 0, 0, 0.7), rgba(100, 45, 124, 0.4), rgba(82, 17, 131, 0.3),rgba(100, 45, 124, 0.4), rgba(0, 0, 0, 0.7));
}
-.rdd-need-significative{
+.rdd-diviseur{
border-radius: 6px; padding: 3px;
background:linear-gradient(30deg, rgba(61, 55, 93, 0.2), rgba(178, 179, 196, 0.1), rgba(59, 62, 63, 0.2), rgba(206, 204, 199, 0.1), rgba(61, 46, 49, 0.2));
}
@@ -410,6 +410,11 @@ table {border: 1px solid #7a7971;}
background-color: lightblue;
}
+#resolutionValeurs{
+ font-size: 0.8rem;
+ padding: 5px;
+}
+
/* ======================================== */
/* Sheet */
.window-app.sheet .window-content .sheet-header{
diff --git a/templates/chat-infojet.html b/templates/chat-infojet.html
new file mode 100644
index 00000000..1e89bd77
--- /dev/null
+++ b/templates/chat-infojet.html
@@ -0,0 +1,23 @@
+
+
+ {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
+ {{#if ajustements}}
+
+ {{#each ajustements as |item key|}}
+
+ {{#if item.descr}}
+ {{{item.descr}}}
+ {{else}}
+ {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
+ {{/if}}
+
+ {{/each}}
+
+ {{/if}}
+ {{#if rolled.factorHtml}}×{{{rolled.factorHtml}}} {{/if}}
+
+
= {{rolled.score}}%
+
+
+ {{rolled.roll}} : {{rolled.quality}}
+
\ No newline at end of file
diff --git a/templates/chat-resultat-accorder-cauchemar.html b/templates/chat-resultat-accorder-cauchemar.html
new file mode 100644
index 00000000..0cb65da3
--- /dev/null
+++ b/templates/chat-resultat-accorder-cauchemar.html
@@ -0,0 +1,10 @@
+
+ {{alias}} s'accorde: {{entite}}
+
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
+
+{{#if rolled.isSuccess}}
+ {{alias}} s'est accordé à {{entite}}
+ {{else}}ne s'est pas accordé à {{entite}}, il pourra réessayer à sa prochaine attaque.
+ {{/if}}
+
diff --git a/templates/chat-resultat-appelchance.html b/templates/chat-resultat-appelchance.html
index 4207b101..c022da52 100644
--- a/templates/chat-resultat-appelchance.html
+++ b/templates/chat-resultat-appelchance.html
@@ -1,22 +1,7 @@
{{alias}} fait appel à la chance
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
- = {{rolled.score}}%
-{{rolled.roll}} : {{rolled.quality}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
{{~#if rolled.isSuccess}}
Un point de chance est dépensé, l'action peut être retentée!
diff --git a/templates/chat-resultat-attaque.html b/templates/chat-resultat-attaque.html
index b2158636..9ce13b37 100644
--- a/templates/chat-resultat-attaque.html
+++ b/templates/chat-resultat-attaque.html
@@ -1,24 +1,6 @@
-
- {{alias}} attaque: {{arme.name}}
- {{selectedCarac.label}} / {{competence.name}}, difficulté {{diffLibre}}
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
-
- {{#if rolled.factor}}(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
-
-{{rolled.roll}} : {{rolled.quality}}
+{{alias}} attaque: {{arme.name}}
+{{selectedCarac.label}} / {{competence.name}}, difficulté {{diffLibre}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
{{#if tactique}}
diff --git a/templates/chat-resultat-competence.html b/templates/chat-resultat-competence.html
index f870fa06..b300af95 100644
--- a/templates/chat-resultat-competence.html
+++ b/templates/chat-resultat-competence.html
@@ -1,26 +1,10 @@
- {{alias}} {{#if show.title}}{{show.title}}: {{/if}}
+ {{alias}} {{show.title}}:
{{#if selectedCarac}}{{selectedCarac.label}}
{{#if competence}} / {{competence.name}}{{/if}}
{{/if}}
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
-
- {{#if rolled.factor}}(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
-
{{rolled.roll}} : {{rolled.quality}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
{{#if rolled.ptTache}}{{rolled.ptTache}} points de tâche{{/if}}{{#if rolled.ptQualite}}{{#if rolled.ptTache}},{{/if}} ajustement Qualité {{numberFormat rolled.ptQualite decimals=0 sign=true}}{{/if}}
diff --git a/templates/chat-resultat-esquive.html b/templates/chat-resultat-esquive.html
index c46440ab..ef04c432 100644
--- a/templates/chat-resultat-esquive.html
+++ b/templates/chat-resultat-esquive.html
@@ -1,23 +1,6 @@
-
- {{alias}} esquive: {{selectedCarac.label}} / {{competence.name}}, difficulté {{diffLibre}}
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
-
- {{#if rolled.factor}}(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
-
-
{{rolled.roll}} : {{rolled.quality}}
+
{{alias}} esquive
+
{{selectedCarac.label}} / {{competence.name}} attaque à {{diffLibre}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
{{#if rolled.isSuccess}}
diff --git a/templates/chat-resultat-general.html b/templates/chat-resultat-general.html
index d8df8658..0b83a504 100644
--- a/templates/chat-resultat-general.html
+++ b/templates/chat-resultat-general.html
@@ -2,27 +2,10 @@
{{alias}} {{#if show.title}}{{show.title}}: {{/if}}
{{#if selectedCarac}}{{selectedCarac.label}}
{{#if competence}} / {{competence.name}}{{/if}}
+ à {{diffLibre}}
{{/if}}
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
- {{#if ajustements}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
- {{/if}}
-
- {{#if rolled.factor}}
(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
-
{{rolled.roll}} : {{rolled.quality}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
{{#if rolled.ptTache}}{{rolled.ptTache}} points de tâche{{/if}}{{#if rolled.ptQualite}}{{#if rolled.ptTache}},{{/if}} ajustement Qualité {{numberFormat rolled.ptQualite decimals=0 sign=true}}{{/if}}
diff --git a/templates/chat-resultat-parade.html b/templates/chat-resultat-parade.html
index b0d61ca9..b1679ec7 100644
--- a/templates/chat-resultat-parade.html
+++ b/templates/chat-resultat-parade.html
@@ -1,24 +1,6 @@
-
- {{alias}} pare: {{arme.name}}
- {{selectedCarac.label}} / {{competence.name}}, difficulté {{diffLibre}}
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
-
- {{#if rolled.factor}}(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
-
-
{{rolled.roll}} : {{rolled.quality}}
+
{{alias}} pare: {{arme.name}}
+
{{selectedCarac.label}} / {{competence.name}}, attaque à {{diffLibre}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
{{#if rolled.isSuccess}}
diff --git a/templates/chat-resultat-sort.html b/templates/chat-resultat-sort.html
index e4033a15..c6c374eb 100644
--- a/templates/chat-resultat-sort.html
+++ b/templates/chat-resultat-sort.html
@@ -1,48 +1,24 @@
- {{alias}} {{#if isSortReserve}}met en réserve{{else}}lance{{/if}} le
- {{selectedSort.data.isrituel}}rituel{{else}}sort{{/if}}
- {{selectedSort.name}} (r {{selectedSort.data.ptreve_reel}})
-
-
- {{competence.name}}: {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
-
- {{#if rolled.factor}}(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
+ {{alias}} {{#if isSortReserve}}met en réserve{{else}}lance{{/if}}
+ le {{#if selectedSort.data.isrituel}}rituel{{else}}sort{{/if}}
+ {{selectedSort.name}}
-
Pour {{selectedSort.data.ptreve_reel}} points de rêve en {{coordLabel}} ({{coord}})
-
-
{{rolled.roll}} : {{rolled.quality}}
- {{#if show.reveInsuffisant}}
Pas assez de rêve! {{/if}}
+
Pour {{selectedSort.data.ptreve_reel}} point{{~#if (gt selectedSort.data.ptreve_reel 1)}}s{{/if}} de rêve en {{coordLabel}} ({{coord}}).
+{{#if show.reveInsuffisant}}
+Pas assez de rêve!
+{{/if}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
- {{#if rolled.isETotal}}
- Echec TOTAL du sort!
- {{else if rolled.isEchec}}
- Echec du sort,
- {{else}}
- Réussite du sort,
- {{/if~}}
-
-
- {{#if (eq depenseReve 0)}}
- pas de dépense de rêve
- {{else if (eq depenseReve 1)}}
- 1 point de rêve a été dépensé
- {{else}}
- {{depenseReve}} points de rêve ont été dépensés
- {{/if}}
+ {{#if rolled.isETotal}}Echec TOTAL
+ {{else if rolled.isEchec}}Echec
+ {{else}}Réussite{{/if}}
+ du {{#if selectedSort.data.isrituel}}rituel{{else}}sort{{/if}},
+ {{#if (eq depenseReve 0)}}pas de dépense de rêve
+ {{else if (eq depenseReve 1)}}1 point de rêve a été dépensé
+ {{else}}{{depenseReve}} points de rêve ont été dépensés
+ {{~/if}}.
\ No newline at end of file
diff --git a/templates/chat-resultat-tache.html b/templates/chat-resultat-tache.html
index 87b70e8e..380a4103 100644
--- a/templates/chat-resultat-tache.html
+++ b/templates/chat-resultat-tache.html
@@ -1,28 +1,12 @@
{{alias}} travaille à sa tâche {{tache.name}}
- {{selectedCarac.label}} / {{competence.name}}
-
- {{rolled.caracValue}} à {{numberFormat rolled.finalLevel decimals=0 sign=true}}
-
-
Ajustements
- {{#each ajustements as |item key|}}
-
- {{#if item.descr}}
- {{{item.descr}}}
- {{else}}
- {{item.label}}: {{numberFormat item.value decimals=0 sign=true}}
- {{/if}}
-
- {{/each}}
-
-
- {{#if rolled.factor}}(×{{{rolled.factor}}}) {{/if}} = {{rolled.score}}%
+ {{selectedCarac.label}}/{{competence.name}}
-
{{rolled.roll}} : {{rolled.quality}}
+{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}}
- Après {{tache.data.periodicite}} vous avez obtenu {{rolled.ptTache}} points de tâche,
- votre avancement est de {{tache.data.points_de_tache_courant}} sur {{tache.data.points_de_tache}} Points de Tâche.
- {{#if tache.data.fatigue}}Vous êtes fatigué de {{tache.data.fatigue}} cases. {{/if}}
+ Après {{tache.data.periodicite}} vous avez obtenu {{rolled.ptTache}} point{{~#if (gt rolled.ptTache 1)}}s{{/if}} de tâche,
+ votre avancement est de {{tache.data.points_de_tache_courant}} sur {{tache.data.points_de_tache}} point{{~#if (gt tache.data.points_de_tache_courant 1)}}s{{/if}} de tâche.
+ {{#if tache.data.fatigue}}Vous vous êtes fatigué de {{tache.data.fatigue}} case{{~#if (gt tache.data.fatigue 1)}}s{{/if}}. {{/if}}
{{#if rolled.isETotal}}Votre échec total augmente de 1 la difficulté de la tâche! {{/if~}}