Rework fiches, jets de dés et CSS

This commit is contained in:
2026-04-03 16:22:51 +02:00
parent e001ec0dc9
commit 1fb80f6abe
21 changed files with 3091 additions and 1316 deletions

View File

@@ -28,7 +28,7 @@ export class MournbladeCYD2RollDialog {
return foundry.applications.api.DialogV2.wait({
window: { title: "Test de Capacité", icon: "fa-solid fa-dice-d20" },
classes: ["mournblade-cyd2-roll-dialog"],
position: { width: 360 },
position: { width: 470 },
modal: false,
content,
buttons: [
@@ -38,8 +38,8 @@ export class MournbladeCYD2RollDialog {
icon: "fa-solid fa-dice-d10",
default: true,
callback: (event, button, dialog) => {
MournbladeCYD2RollDialog._updateRollDataFromForm(rollData, button.form.elements, actor);
rollData.mainDice = "1d10";
MournbladeCYD2RollDialog._updateRollDataFromForm(rollData, button.form, actor);
rollData.mainDice = "d10";
MournbladeCYD2Utility.rollMournbladeCYD2(rollData);
}
},
@@ -48,8 +48,8 @@ export class MournbladeCYD2RollDialog {
label: "Lancer 1d20",
icon: "fa-solid fa-dice-d20",
callback: (event, button, dialog) => {
MournbladeCYD2RollDialog._updateRollDataFromForm(rollData, button.form.elements, actor);
rollData.mainDice = "1d20";
MournbladeCYD2RollDialog._updateRollDataFromForm(rollData, button.form, actor);
rollData.mainDice = "d20";
MournbladeCYD2Utility.rollMournbladeCYD2(rollData);
}
},
@@ -63,19 +63,47 @@ export class MournbladeCYD2RollDialog {
}
/* -------------------------------------------- */
static _updateRollDataFromForm(rollData, elements, actor) {
if (elements.modificateur) rollData.modificateur = Number(elements.modificateur.value);
if (elements.difficulte) rollData.difficulte = Number(elements.difficulte.value);
if (elements.attrKey) rollData.attrKey = String(elements.attrKey.value);
if (elements.attrKey2) rollData.attrKey2 = String(elements.attrKey2.value);
if (elements["select-maitrise"]) rollData.maitriseId = String(elements["select-maitrise"].value);
if (elements["competence-talents"]) {
const sel = elements["competence-talents"];
static _updateRollDataFromForm(rollData, form, actor) {
const el = form.elements;
const getVal = (name) => el[name]?.value;
const getChecked = (name) => {
const e = form.querySelector(`#${name}`);
return e ? e.checked : false;
};
if (el.modificateur) rollData.modificateur = Number(getVal("modificateur"));
if (el["bonus-malus-context"]) rollData.bonusMalusContext = Number(getVal("bonus-malus-context"));
if (el.difficulte) rollData.difficulte = Number(getVal("difficulte"));
if (el.attrKey) rollData.attrKey = String(getVal("attrKey"));
if (el.attrKey2) rollData.attrKey2 = String(getVal("attrKey2"));
if (el["select-maitrise"]) rollData.maitriseId = String(getVal("select-maitrise"));
if (el["competence-talents"]) {
const sel = el["competence-talents"];
rollData.selectedTalents = Array.from(sel.selectedOptions).map(o => o.value);
}
if (elements["taille-cible"]) rollData.tailleCible = String(elements["taille-cible"].value);
if (elements["tireur-deplacement"]) rollData.tireurDeplacement = String(elements["tireur-deplacement"].value);
if (elements["cible-couvert"]) rollData.cibleCouvert = String(elements["cible-couvert"].value);
if (elements["distance-tir"]) rollData.distanceTir = String(elements["distance-tir"].value);
if (el["taille-cible"]) rollData.tailleCible = String(getVal("taille-cible"));
if (el["tireur-deplacement"]) rollData.tireurDeplacement = String(getVal("tireur-deplacement"));
if (el["cible-couvert"]) rollData.cibleCouvert = String(getVal("cible-couvert"));
if (el["distance-tir"]) rollData.distanceTir = String(getVal("distance-tir"));
if (el["soutiens"]) rollData.soutiens = Number(getVal("soutiens"));
if (el["runemode"]) rollData.runemode = String(getVal("runemode"));
if (el["runeame"]) rollData.runeame = Number(getVal("runeame"));
rollData.defenseurAuSol = getChecked("defenseur-au-sol");
rollData.defenseurAveugle = getChecked("defenseur-aveugle");
rollData.defenseurDeDos = getChecked("defenseur-de-dos");
rollData.defenseurRestreint = getChecked("defenseur-restreint");
rollData.defenseurImmobilise = getChecked("defenseur-immobilise");
rollData.attaquantsMultiples = getChecked("attaquants-multiple");
rollData.ambidextre1 = getChecked("ambidextre-1");
rollData.ambidextre2 = getChecked("ambidextre-2");
rollData.feinte = getChecked("feinte");
rollData.attaqueCharge = getChecked("attaque-charge");
rollData.chargeCavalerie = getChecked("charge-cavalerie");
rollData.contenir = getChecked("contenir");
rollData.attaqueDesarme = getChecked("attaque-desarme");
rollData.cibleDeplace = getChecked("tireur-cible-deplace");
rollData.cibleCaC = getChecked("cible-cac");
rollData.cibleconsciente = getChecked("cibleconsciente");
}
}

View File

@@ -113,7 +113,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
const dataType = target.dataset.dtype;
const value = dataType === "Number" ? Number(target.value) : target.value;
const item = this.document.items.get(itemId);
if (item) await item.update({ [itemField]: value });
if (item) await item.update({ [`system.${itemField}`]: value });
});
});