From 82f870db059cf26d3be00c0f74a89de1a2ac2ccb Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 13 Nov 2025 01:12:59 +0100 Subject: [PATCH] =?UTF-8?q?Bouton=20pour=20jet=20de=20r=C3=A9sistance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout d'un bouton à côté de la carac rêve --- assets/ui/resistance.svg | 110 ++++++++++++++++++++++++ changelog.md | 1 + css/foundryvtt-reve-de-dragon.css | 9 ++ less/roll-dialog.less | 9 ++ module/actor-sheet.js | 3 +- module/roll/roll-dialog.mjs | 2 + module/roll/roll-part-resistance.mjs | 12 +++ templates/actor/header-compteurs.hbs | 3 + templates/roll/roll-part-resistance.hbs | 4 + 9 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 assets/ui/resistance.svg create mode 100644 module/roll/roll-part-resistance.mjs create mode 100644 templates/roll/roll-part-resistance.hbs diff --git a/assets/ui/resistance.svg b/assets/ui/resistance.svg new file mode 100644 index 00000000..cdcd3768 --- /dev/null +++ b/assets/ui/resistance.svg @@ -0,0 +1,110 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/changelog.md b/changelog.md index 3893558d..67c4db44 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,7 @@ ## 13.0.19 - L'introspection d'Illysis +- Ajout d'un bouton pour les jets de résistance sous rêve actuel - Fenêtre de jet v2 - restrictions au propriétaire du personnage - ouverture de la fenêtre de jets diff --git a/css/foundryvtt-reve-de-dragon.css b/css/foundryvtt-reve-de-dragon.css index ed6aebc0..02953e4a 100644 --- a/css/foundryvtt-reve-de-dragon.css +++ b/css/foundryvtt-reve-de-dragon.css @@ -593,6 +593,9 @@ select, font-size: 1.2rem; font-weight: bold; } +.system-foundryvtt-reve-de-dragon .roll-dialog roll-action roll-section[name="resistance"] { + align-items: flex-end; +} .system-foundryvtt-reve-de-dragon .roll-dialog roll-action roll-section { display: flex; flex-direction: row; @@ -607,6 +610,12 @@ select, margin: 0 1rem; padding: 0; } +.system-foundryvtt-reve-de-dragon .roll-dialog roll-action roll-section img.flag-resistance { + max-width: 1.5rem; + max-height: 1.5rem; + text-align: right; + filter: invert(0.6); +} .system-foundryvtt-reve-de-dragon .roll-dialog roll-conditions { display: flex; flex-direction: column; diff --git a/less/roll-dialog.less b/less/roll-dialog.less index cb995f33..e05b3d4b 100644 --- a/less/roll-dialog.less +++ b/less/roll-dialog.less @@ -160,6 +160,9 @@ font-size: 1.2rem; font-weight: bold; + roll-section[name="resistance"] { + align-items: flex-end; + } roll-section { display: flex; flex-direction: row; @@ -174,6 +177,12 @@ margin: 0 1rem; padding: 0; } + img.flag-resistance { + max-width: 1.5rem; + max-height: 1.5rem; + text-align: right; + filter: invert(0.6); + } } } diff --git a/module/actor-sheet.js b/module/actor-sheet.js index deb55a18..ae01d989 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -208,7 +208,8 @@ export class RdDActorSheet extends RdDBaseActorSangSheet { } // Points de reve actuel - this.html.find('.roll-reve-actuel').click(async event => await this.actor.rollReveActuel({ resistance: true })) + this.html.find('.roll-reve-actuel').click(async event => await this.actor.rollReveActuel({ resistance: false })) + this.html.find('.button-reve-resistance').click(async event => await this.actor.rollReveActuel({ diff: -8, resistance: true })) this.html.find('.action-empoignade').click(async event => await RdDEmpoignade.onAttaqueEmpoignadeFromItem(RdDSheetUtility.getItem(event, this.actor))) this.html.find('.roll-arme').click(async event => { diff --git a/module/roll/roll-dialog.mjs b/module/roll/roll-dialog.mjs index 7eef0991..b179bb9e 100644 --- a/module/roll/roll-dialog.mjs +++ b/module/roll/roll-dialog.mjs @@ -47,6 +47,7 @@ import { ActorImpacts } from "../technical/actor-impacts.mjs"; import { RollPartEmpoignade } from "./roll-part-empoignade.mjs"; import { RollPartEmpoignadeTaille } from "./roll-part-empoignade-taille.mjs"; import { RollPartEcailles } from "./roll-part-ecailles.mjs"; +import { RollPartResistance } from "./roll-part-resistance.mjs"; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api @@ -69,6 +70,7 @@ const ROLL_PARTS = [ new RollPartActor(), new RollPartAction(), new RollPartOpponent(), + new RollPartResistance(), new RollPartCarac(), new RollPartComp(), diff --git a/module/roll/roll-part-resistance.mjs b/module/roll/roll-part-resistance.mjs new file mode 100644 index 00000000..eaf6ffcd --- /dev/null +++ b/module/roll/roll-part-resistance.mjs @@ -0,0 +1,12 @@ +import { ROLLDIALOG_SECTION, RollPart } from "./roll-part.mjs" + +export const PART_RESISTANCE = "resistance" + +export class RollPartResistance extends RollPart { + + get code() { return PART_RESISTANCE } + get section() { return ROLLDIALOG_SECTION.ACTION } + + isValid(rollData) { return rollData.type.resistance == true } + title(rollData) { return "de résistance" } +} diff --git a/templates/actor/header-compteurs.hbs b/templates/actor/header-compteurs.hbs index 8d86aa34..65912cb9 100644 --- a/templates/actor/header-compteurs.hbs +++ b/templates/actor/header-compteurs.hbs @@ -35,6 +35,9 @@
  • diff --git a/templates/roll/roll-part-resistance.hbs b/templates/roll/roll-part-resistance.hbs new file mode 100644 index 00000000..fd448aa4 --- /dev/null +++ b/templates/roll/roll-part-resistance.hbs @@ -0,0 +1,4 @@ +de résistance +