From c223a306834809c987eb62deb31deaa287042d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soup=C3=A9?= Date: Sat, 4 Nov 2023 01:46:22 +0100 Subject: [PATCH 1/4] fix #47 --- modules/applications/CheckBuilder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/applications/CheckBuilder.js b/modules/applications/CheckBuilder.js index 67c5970..81913e9 100644 --- a/modules/applications/CheckBuilder.js +++ b/modules/applications/CheckBuilder.js @@ -529,7 +529,7 @@ export default class CheckBuilder extends FormApplication ChatMessage.create(chatOptions); } - else if(this.roll.data.combat) { + else if(this.roll.data?.combat) { const currentCombatantId = this.roll.data.combat.combatant?.id; const encounterType = html.find('.encounter-type input:checked').val(); const initiativeCharacteristic = encounterType === "social" ? "fellowship" : "agility"; @@ -623,7 +623,7 @@ export default class CheckBuilder extends FormApplication if(this.roll?.sound) AudioHelper.play({src: this.roll.sound}, true); - if(this.roll.data.actor.type === "creature") + if(this.roll.data?.actor.type === "creature") Object.keys(CONFIG.WFRP3e.attributes).forEach((attribute) => { const attributeDiceAmount = this.dicePool["creatures" + (attribute[0].toUpperCase() + attribute.slice(1, attribute.length)) + "Dice"]; From a13b9102521a9bb13541912446533dfef59b045d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soup=C3=A9?= Date: Sat, 4 Nov 2023 01:51:19 +0100 Subject: [PATCH 2/4] fix #49 --- lang/en-EN.json | 1 + lang/fr-FR.json | 1 + modules/config.js | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/lang/en-EN.json b/lang/en-EN.json index a794468..eb99bce 100644 --- a/lang/en-EN.json +++ b/lang/en-EN.json @@ -259,6 +259,7 @@ "ROLL.CHALLENGELEVEL.Average": "Average", "ROLL.CHALLENGELEVEL.Hard": "Hard", "ROLL.CHALLENGELEVEL.Daunting": "Daunting", + "ROLL.CHALLENGELEVEL.Heroic": "Heroic", "ROLL.CHECKBUILDER.AggressionDice": "Aggression Dice", "ROLL.CHECKBUILDER.ChallengeLevel": "Challenge Level", "ROLL.CHECKBUILDER.Characteristic": "Characteristic", diff --git a/lang/fr-FR.json b/lang/fr-FR.json index 350496c..dbee69e 100644 --- a/lang/fr-FR.json +++ b/lang/fr-FR.json @@ -259,6 +259,7 @@ "ROLL.CHALLENGELEVEL.Average": "Average", "ROLL.CHALLENGELEVEL.Hard": "Hard", "ROLL.CHALLENGELEVEL.Daunting": "Daunting", + "ROLL.CHALLENGELEVEL.Heroic": "Heroic", "ROLL.CHECKBUILDER.AggressionDice": "Aggression Dice", "ROLL.CHECKBUILDER.ChallengeLevel": "Challenge Level", "ROLL.CHECKBUILDER.Characteristic": "Caractéristique", diff --git a/modules/config.js b/modules/config.js index dbf6cf5..6abe60d 100644 --- a/modules/config.js +++ b/modules/config.js @@ -76,6 +76,10 @@ export const WFRP3e = { daunting: { challengeDice: 4, name: "ROLL.CHALLENGELEVEL.Daunting" + }, + heroic: { + challengeDice: 5, + name: "ROLL.CHALLENGELEVEL.Heroic" } }, conditionDurations: { From 6a97e3ac14ec0a3af62bb3a6b3bea810e1fdb501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soup=C3=A9?= Date: Sat, 4 Nov 2023 01:51:31 +0100 Subject: [PATCH 3/4] Preparing 0.5.1 --- system.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system.json b/system.json index 95949e8..881d40a 100644 --- a/system.json +++ b/system.json @@ -1,7 +1,7 @@ { "title": "Warhammer Fantasy Roleplay - 3rd Edition", "description": "

A game system for Warhammer Fantasy Roleplay - 3rd Edition in the Foundry Virtual Tabletop environment.

", - "version": "0.5", + "version": "0.5.1", "compatibility": { "minimum": "11", "verified": "11.314", @@ -44,8 +44,8 @@ "primaryTokenAttribute": "wounds", "secondaryTokenAttribute": "fortune", "url": "https://github.com/McGregor777/wfrp3e", - "manifest": "https://raw.githubusercontent.com/McGregor777/wfrp3e/0.5/system.json", - "download": "https://github.com/McGregor777/wfrp3e/archive/refs/tags/0.5.zip", + "manifest": "https://raw.githubusercontent.com/McGregor777/wfrp3e/0.5.1/system.json", + "download": "https://github.com/McGregor777/wfrp3e/archive/refs/tags/0.5.1.zip", "background": "systems/wfrp3e/assets/background.jpg", "id": "wfrp3e" } \ No newline at end of file From de63329a49be7605c34bbe31030ef664165f4f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soup=C3=A9?= Date: Mon, 6 Nov 2023 02:10:49 +0100 Subject: [PATCH 4/4] fix #50 --- modules/WFRP3eRoll.js | 30 ++++++++++++------------ styles/less/components/roll_message.less | 4 ++++ styles/wfrp3e.css | 3 +++ templates/chatmessages/roll.hbs | 12 +++++----- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/modules/WFRP3eRoll.js b/modules/WFRP3eRoll.js index d7a6548..9fde976 100644 --- a/modules/WFRP3eRoll.js +++ b/modules/WFRP3eRoll.js @@ -17,7 +17,7 @@ export default class WFRP3eRoll extends Roll this.symbols = { ...Object.values(CONFIG.WFRP3e.symbols).reduce((object, symbol) => { - object[symbol.plural] = +dicePool[symbol.plural] ?? 0; + object[symbol.plural] = isNaN(dicePool[symbol.plural]) ? 0 : +dicePool[symbol.plural]; return object; }, {}) }; @@ -57,7 +57,8 @@ export default class WFRP3eRoll extends Roll /** @inheritDoc */ evaluate({minimize = false, maximize = false} = {}) { - if(this._evaluated) throw new Error("This Roll object has already been rolled."); + if(this._evaluated) + throw new Error("This Roll object has already been rolled."); // Step 1 - evaluate any inner Rolls and recompile the formula let hasInner = false; @@ -79,9 +80,17 @@ export default class WFRP3eRoll extends Roll this.terms = this._identifyTerms(formula); } - // Step 3 - evaluate any remaining terms and return any non-FFG dialogs to the total. + // Step 3 - evaluate any remaining terms and return any non-special dialogs to the total. this.results = this.terms.map((term) => { - if(!game.symbols.diceterms.includes(term.constructor)) { + if(game.symbols.diceterms.includes(term.constructor)) { + if(term.evaluate) + term.evaluate({minimize, maximize}); + + this.hasSpecialDice = true; + + return 0; + } + else { if(term.evaluate) { if(!(term instanceof OperatorTerm)) this.hasStandardDice = true; @@ -91,14 +100,6 @@ export default class WFRP3eRoll extends Roll else return term; } - else { - if(term.evaluate) - term.evaluate({minimize, maximize}); - - this.hasSpecialDice = true; - - return 0; - } }); // Step 4 - safely evaluate the final total @@ -239,7 +240,7 @@ export default class WFRP3eRoll extends Roll }; }), hasSpecialDice: this.hasSpecialDice, - hasStandard: this.hasStandardDice, + hasStandardDice: this.hasStandardDice, hasSuccess: this.dice.length > 0, data: this.data, addedResults: this.addedResults, @@ -262,7 +263,6 @@ export default class WFRP3eRoll extends Roll if(["gmroll", "blindroll"].includes(rMode)) messageData.whisper = ChatMessage.getWhisperRecipients("GM"); - if(rMode === "blindroll") messageData.blind = true; if(rMode === "selfroll") @@ -295,7 +295,7 @@ export default class WFRP3eRoll extends Roll json.symbols = this.symbols; json.hasSpecialDice = this.hasSpecialDice; - json.hasStandard = this.hasStandardDice; + json.hasStandardDice = this.hasStandardDice; json.data = this.data; json.addedResults = this.addedResults; json.flavor = this.flavor; diff --git a/styles/less/components/roll_message.less b/styles/less/components/roll_message.less index f5fe116..e5ffda0 100644 --- a/styles/less/components/roll_message.less +++ b/styles/less/components/roll_message.less @@ -42,6 +42,10 @@ } } +.dice-total:not(:last-child) { + margin-bottom: 0.25rem; +} + .roll-effects { & > h5 { margin: 0; diff --git a/styles/wfrp3e.css b/styles/wfrp3e.css index 89b299e..0b4ee2d 100644 --- a/styles/wfrp3e.css +++ b/styles/wfrp3e.css @@ -1450,6 +1450,9 @@ .dice-tooltip .dice-rolls .roll > .special-die { width: 44px; } +.dice-total:not(:last-child) { + margin-bottom: 0.25rem; +} .roll-effects > h5 { margin: 0; } diff --git a/templates/chatmessages/roll.hbs b/templates/chatmessages/roll.hbs index 7b539c1..14ccb5a 100644 --- a/templates/chatmessages/roll.hbs +++ b/templates/chatmessages/roll.hbs @@ -3,12 +3,16 @@
{{data.additionalFlavourText}}
{{/if}} - {{#if publicRoll }} + {{#if publicRoll}}
- {{#if hasStandard}} + {{#if hasStandardDice}}
{{formula}}
{{/if}} + {{#if hasStandardDice}} +

{{total}}

+ {{/if}} + {{#if hasSpecialDice}}
    @@ -33,10 +37,6 @@ {{{tooltip}}} - {{#if hasStandard}} -

    {{total}}

    - {{/if}} - {{#if hasSpecialDice}}
      {{#if hasSuccess}}