Fix chat message display; start moving towards supporting Hope and Fear for Fate roll

This commit is contained in:
Chris Ryan 2025-12-03 21:27:47 +10:00
parent fda1581c51
commit bfd8031ecf
4 changed files with 81 additions and 54 deletions

View file

@ -119,6 +119,7 @@ export default class DualityRoll extends D20Roll {
/** @inheritDoc */ /** @inheritDoc */
static fromData(data) { static fromData(data) {
console.log("data", data);
data.terms[0].class = foundry.dice.terms.Die.name; data.terms[0].class = foundry.dice.terms.Die.name;
data.terms[2].class = foundry.dice.terms.Die.name; data.terms[2].class = foundry.dice.terms.Die.name;
return super.fromData(data); return super.fromData(data);
@ -174,6 +175,9 @@ export default class DualityRoll extends D20Roll {
static async buildEvaluate(roll, config = {}, message = {}) { static async buildEvaluate(roll, config = {}, message = {}) {
await super.buildEvaluate(roll, config, message); await super.buildEvaluate(roll, config, message);
console.log("roll", config);
console.log("config", config);
console.log("message", message);
await setDiceSoNiceForDualityRoll( await setDiceSoNiceForDualityRoll(
roll, roll,

View file

@ -45,6 +45,7 @@ export default class FateRoll extends D20Roll {
/** @inheritDoc */ /** @inheritDoc */
static fromData(data) { static fromData(data) {
console.log("data", data);
data.terms[0].class = foundry.dice.terms.Die.name; data.terms[0].class = foundry.dice.terms.Die.name;
return super.fromData(data); return super.fromData(data);
} }
@ -59,19 +60,23 @@ export default class FateRoll extends D20Roll {
static async buildEvaluate(roll, config = {}, message = {}) { static async buildEvaluate(roll, config = {}, message = {}) {
await super.buildEvaluate(roll, config, message); await super.buildEvaluate(roll, config, message);
console.log("roll", config);
console.log("config", config);
console.log("message", message);
await setDiceSoNiceForFateRoll( await setDiceSoNiceForFateRoll(
roll, roll,
config.roll.hope.dice config.roll.fate.dice
); );
} }
static postEvaluate(roll, config = {}) { static postEvaluate(roll, config = {}) {
const data = super.postEvaluate(roll, config); const data = super.postEvaluate(roll, config);
data.hope = { data.fate = {
dice: roll.dHope.denomination, dice: roll.dHope.denomination,
value: roll.dHope.total, value: roll.dHope.total,
fateDie: roll.fateDie
}; };
return data; return data;

View file

@ -19,7 +19,6 @@ function getFateMessage(roll, flavor) {
data-title="${label}" data-title="${label}"
data-label="${dataLabel}" data-label="${dataLabel}"
data-hope="${roll?.hope ?? 'd12'}" data-hope="${roll?.hope ?? 'd12'}"
data-fear="${roll?.fear ?? 'd12'}"
${label} ${label}
</button> </button>
`; `;

View file

@ -29,6 +29,24 @@
<div class="dice-tooltip"> <div class="dice-tooltip">
<div class="wrapper"> <div class="wrapper">
<div class="roll-dice"> <div class="roll-dice">
{{#if roll.fate}}
{{#if (eq roll.fate.fateDie "Hope")}}
<div class="roll-die">
<label>{{localize "DAGGERHEART.GENERAL.hope"}}</label>
<div class="dice {{roll.fate.dice}} color-hope" data-die-index="0" data-type="hope">
{{roll.fate.value}}
</div>
</div>
{{/if}}
{{#if (eq roll.fate.fateDie "Fear")}}
<div class="roll-die">
<label>{{localize "DAGGERHEART.GENERAL.fear"}}</label>
<div class="dice {{roll.fate.dice}} color-fear" data-die-index="0" data-type="fear">
{{roll.fate.value}}
</div>
</div>
{{/if}}
{{else}}
{{#if roll.hope}} {{#if roll.hope}}
<div class="roll-die"> <div class="roll-die">
<label>{{localize "DAGGERHEART.GENERAL.hope"}}</label> <label>{{localize "DAGGERHEART.GENERAL.hope"}}</label>
@ -82,6 +100,7 @@
{{/each}} {{/each}}
{{/each}} {{/each}}
{{/if}} {{/if}}
{{/if}}
</div> </div>
</div> </div>
<div class="roll-formula">{{roll.formula}}</div> <div class="roll-formula">{{roll.formula}}</div>