Merge branch 'development' into feature/death-moves

This commit is contained in:
WBHarry 2026-01-13 21:00:46 +01:00
commit ee28fb3b9c
4 changed files with 11 additions and 7 deletions

View file

@ -87,7 +87,7 @@ export class DHActionRollData extends foundry.abstract.DataModel {
if (this.type === CONFIG.DH.GENERAL.rollTypes.attack.id)
modifiers.push({
label: 'Bonus to Hit',
value: this.bonus ?? this.parent.actor.system.attack.roll.bonus
value: this.bonus ?? this.parent.actor.system.attack.roll.bonus ?? 0
});
break;
default:

View file

@ -35,7 +35,9 @@ export default class D20Roll extends DHRoll {
get isCritical() {
if (!this.d20._evaluated) return;
return this.d20.total >= this.data.system.criticalThreshold;
const criticalThreshold = this.options.actionType === 'reaction' ? 20 : this.data.system.criticalThreshold;
return this.d20.total >= criticalThreshold;
}
get hasAdvantage() {

View file

@ -133,11 +133,13 @@ export default class DualityRoll extends D20Roll {
return;
}
const { defaultHopeDice, defaultFearDice } = this.data.rules.dualityRoll;
this.terms[0] = new foundry.dice.terms.Die({ faces: defaultHopeDice });
this.terms[0] = new foundry.dice.terms.Die({
faces: this.data.rules.dualityRoll?.defaultHopeDice ?? 12
});
this.terms[1] = new foundry.dice.terms.OperatorTerm({ operator: '+' });
this.terms[2] = new foundry.dice.terms.Die({ faces: defaultFearDice });
this.terms[2] = new foundry.dice.terms.Die({
faces: this.data.rules.dualityRoll?.defaultFearDice ?? 12
});
}
applyAdvantage() {

View file

@ -101,7 +101,7 @@ export const enrichedDualityRoll = async (
await target.diceRoll(config);
} else {
// For no target, call DualityRoll directly with basic data
config.data = { experiences: {}, traits: {} };
config.data = { experiences: {}, traits: {}, rules: {} };
config.source = { actor: null };
await CONFIG.Dice.daggerheart.DualityRoll.build(config);
}