Modifications suite beta 2

This commit is contained in:
2026-05-11 00:03:41 +02:00
parent 7542890232
commit 122cd29041
14 changed files with 159 additions and 34 deletions
+28 -2
View File
@@ -24,6 +24,8 @@ export class ChiaroscuroDiceDialog extends FormApplication {
useAspectPoint: false,
aspectType: "solar",
useAssistance: false,
skillsList: [],
arcaneBonus: 0,
};
static get defaultOptions() {
@@ -82,9 +84,17 @@ export class ChiaroscuroDiceDialog extends FormApplication {
this.ringId = ringId;
// Skill
if (options.skillId) {
if (options.skillsList?.length > 0) {
this.object.skillsList = options.skillsList;
this.skillId = options.skillsList[0];
} else if (options.skillId) {
this.skillId = options.skillId;
}
// Arcane bonus
if (options.arcaneBonus) {
this.object.arcaneBonus = parseInt(options.arcaneBonus) || 0;
}
}
/**
@@ -139,6 +149,14 @@ export class ChiaroscuroDiceDialog extends FormApplication {
aspectsList,
isVoidRing: this.object.ring.id === "void",
quickInfo: this._actor?.system?.quick_info ?? "",
hasMultipleSkills: this.object.skillsList.length > 1,
skillsChoices: this.object.skillsList.map((id) => {
const catId = CONFIG.l5r5e.skills.get(id.toLowerCase());
return {
id,
label: catId ? game.i18n.localize(`l5r5e.skills.${catId}.${id}`) : id,
};
}),
};
}
@@ -182,6 +200,12 @@ export class ChiaroscuroDiceDialog extends FormApplication {
this.render(false);
});
// Skill selector (arcane)
html.find("select[name='skill.id']").on("change", (event) => {
this.skillId = event.target.value;
this.render(false);
});
// Roll button — explicit submit trigger
html.find("button[name='roll']").on("click", (event) => {
event.preventDefault();
@@ -207,8 +231,9 @@ export class ChiaroscuroDiceDialog extends FormApplication {
const wasAdjusted = diceAdjustedFlags.some(Boolean);
// Compute total
const arcaneBonus = this.object.arcaneBonus || 0;
const rawSum = adjustedResults.reduce((a, b) => a + b, 0);
const total = rawSum + skillBonus + flatModifier;
const total = rawSum + skillBonus + flatModifier + arcaneBonus;
const success = total >= difficultyValue;
const bonus = success ? total - difficultyValue : 0;
@@ -228,6 +253,7 @@ export class ChiaroscuroDiceDialog extends FormApplication {
total,
skillBonus,
flatModifier,
arcaneBonus,
difficulty: difficultyObj,
success,
bonus,