refactor(regles): fusion des Règles customs dans Règles optionnelles -> section Options alternatives, suppress fichiers
This commit is contained in:
+3
-2
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
<form autocomplete="off" onsubmit="event.preventDefault();">
|
||||
{{#each groups as |group key|}}
|
||||
<h3>{{key}}</h3>
|
||||
<ul>
|
||||
{{#each group as |regle r|}}
|
||||
<li>
|
||||
<input class="select-option" type="checkbox" name="{{regle.id}}" {{#if regle.active}}checked{{/if}}/>
|
||||
<label>{{regle.descr}}</label>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/each}}
|
||||
</form>
|
||||
Reference in New Issue
Block a user