From 3e63054b9d557fb9faef6fb7b4cd747a4eacaefe Mon Sep 17 00:00:00 2001 From: fabres Date: Fri, 17 Jul 2026 22:53:27 +0200 Subject: [PATCH] =?UTF-8?q?refactor(regles):=20fusion=20des=20R=C3=A8gles?= =?UTF-8?q?=20customs=20dans=20R=C3=A8gles=20optionnelles=20->=20section?= =?UTF-8?q?=20Options=20alternatives,=20suppress=20fichiers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/item-sort.js | 5 +- module/rdd-main.js | 2 - module/settings/regles-custom.js | 75 -------------------------- module/settings/regles-optionnelles.js | 1 + templates/settings/regles-custom.hbs | 13 ----- 5 files changed, 4 insertions(+), 92 deletions(-) delete mode 100644 module/settings/regles-custom.js delete mode 100644 templates/settings/regles-custom.hbs diff --git a/module/item-sort.js b/module/item-sort.js index d3a62548..9334a017 100644 --- a/module/item-sort.js +++ b/module/item-sort.js @@ -1,9 +1,10 @@ import { Grammar } from "./grammar.js"; import { RdDItemCompetence } from "./item-competence.js"; -import { ITEM_TYPES, SYSTEM_RDD } from "./constants.js"; +import { ITEM_TYPES } from "./constants.js"; import { Misc } from "./misc.js"; import { FLEUVE_COORD, TMRUtility } from "./tmr-utility.js"; import { RdDItem } from "./item.js"; +import { ReglesOptionnelles } from "./settings/regles-optionnelles.js"; export const VOIES_DRACONIC = [ { code: 'O', label: "Voie d'Oniros", short: 'Oniros', ordre: 'a' }, @@ -189,7 +190,7 @@ export class RdDItemSort extends RdDItem { const bc = RdDItemSort.stringToBonuscases(sort.system.bonuscase) .find(search) let bonus = Number(bc?.bonus ?? 0); - if (actor && game.settings.get(SYSTEM_RDD, "rdd-custom-plafonner-bonus-case-reve")) { + if (actor && ReglesOptionnelles.isUsing("plafonner-bonus-case-reve")) { const cap = Misc.toInt(actor.system.carac?.reve?.value); if (cap) bonus = Math.min(bonus, cap); } diff --git a/module/rdd-main.js b/module/rdd-main.js index c9bd5fad..ebb277ea 100644 --- a/module/rdd-main.js +++ b/module/rdd-main.js @@ -16,7 +16,6 @@ import { ChatUtility } from "./chat-utility.js" import { StatusEffects } from "./settings/status-effects.js" import { RdDCompendiumOrganiser } from "./rdd-compendium-organiser.js" import { ReglesOptionnelles } from "./settings/regles-optionnelles.js" -import { ReglesCustom } from "./settings/regles-custom.js" import { RdDHotbar } from "./rdd-hotbar-drop.js" import { EffetsDraconiques } from "./tmr/effets-draconiques.js" import { RdDDice } from "./rdd-dice.js" @@ -156,7 +155,6 @@ export class SystemReveDeDragon { /* -------------------------------------------- */ ReglesOptionnelles.initSettings() - ReglesCustom.initSettings() OptionsAvancees.initSettings() AutoAdjustDarkness.initSettings() RdDTimestamp.initSettings() diff --git a/module/settings/regles-custom.js b/module/settings/regles-custom.js deleted file mode 100644 index bd67eaa8..00000000 --- a/module/settings/regles-custom.js +++ /dev/null @@ -1,75 +0,0 @@ -import { SYSTEM_RDD } from "../constants.js"; -import { Misc } from "../misc.js"; - -const listeReglesCustom = [ - { group: "Règles spéciales", name: "plafonner-bonus-case-reve", descr: "Plafonner le bonus de case à la carac Rêve" }, -]; - -export class ReglesCustom extends FormApplication { - static initSettings() { - for (const regle of listeReglesCustom) { - const name = regle.name; - const id = ReglesCustom._getIdRegle(name); - game.settings.register(SYSTEM_RDD, id, { name: id, scope: "world", config: false, default: false, type: Boolean }); - } - - game.settings.registerMenu(SYSTEM_RDD, "rdd-options-custom", { - name: "Choisir les règles customs", - label: "Règles customs", - hint: "Ouvre la fenêtre de sélection des règles customs", - icon: "fas fa-bars", - type: ReglesCustom - }); - } - - constructor(...args) { - super(...args); - } - - static _getIdRegle(name) { - return `rdd-custom-${name}`; - } - - static get defaultOptions() { - return foundry.utils.mergeObject(super.defaultOptions, { - id: "regles-custom", - template: "systems/foundryvtt-reve-de-dragon/templates/settings/regles-custom.hbs", - height: 300, - width: 550, - minimizable: false, - closeOnSubmit: true, - title: "Règles customs" - }, { inplace: false }) - } - - getData() { - let formData = super.getData(); - const regles = listeReglesCustom.map(it => { - it = foundry.utils.duplicate(it); - it.id = ReglesCustom._getIdRegle(it.name); - it.active = ReglesCustom.isActive(it.name); - return it; - }); - formData.regles = regles; - formData.groups = Misc.classify(regles, it => it.group); - return formData; - } - - static isActive(name) { - return game.settings.get(SYSTEM_RDD, ReglesCustom._getIdRegle(name)); - } - - activateListeners(html) { - $(html).find(".select-option").click((event) => { - if (event.currentTarget.attributes.name) { - let id = event.currentTarget.attributes.name.value; - let isChecked = event.currentTarget.checked; - game.settings.set(SYSTEM_RDD, id, isChecked); - } - }); - } - - async _updateObject(event, formData) { - this.close(); - } -} diff --git a/module/settings/regles-optionnelles.js b/module/settings/regles-optionnelles.js index 26dd897a..3a66f819 100644 --- a/module/settings/regles-optionnelles.js +++ b/module/settings/regles-optionnelles.js @@ -45,6 +45,7 @@ const listeReglesOptionnelles = [ { group: 'Options alternatives', name: 'degat-minimum-malus-libre-simple', descr: "Le malus libre d'attaque remplace une des valeurs de dés d'encaissement si elle est plus petite. Exemple : la difficulté libre de l'attaquant est de -4. Sur le jet d'encaissement, si le plus petit dé est inférieur à 4, alors il devient 4.", default: false }, { group: 'Options alternatives', name: 'degat-minimum-malus-libre', descr: "Le malus libre d'attaque remplace une valeur de dés d'encaissement si elle est plus petite. Exemple : la difficulté libre de l'attaquant est de -4. Sur le jet d'encaissement, tout résultat inférieur à 4 devient 4.", default: false }, { group: 'Options alternatives', name: 'degat-ajout-malus-libre', descr: "Le malus libre d'attaque s'ajoute au jet d'encaissement et aux autres bonus. Exemple : la difficulté libre de l'attaquant est de -4. Le jet d'encaissement est effectué à 2d10+4, plus les bonus de situation et d'armes.", default: false }, + { group: 'Options alternatives', name: 'plafonner-bonus-case-reve', descr: "Plafonner le bonus de case à la carac Rêve", default: false }, ]; const uniquementJoueur = listeReglesOptionnelles.filter(it => it.uniquementJoueur).map(it=>it.name); diff --git a/templates/settings/regles-custom.hbs b/templates/settings/regles-custom.hbs deleted file mode 100644 index f6780051..00000000 --- a/templates/settings/regles-custom.hbs +++ /dev/null @@ -1,13 +0,0 @@ -
- {{#each groups as |group key|}} -

{{key}}

- - {{/each}} -