Moved DamageTypes to roll.options

This commit is contained in:
WBHarry 2026-07-17 14:10:06 +02:00
parent 124c4749db
commit fbcb9e4572
6 changed files with 72 additions and 76 deletions

View file

@ -140,9 +140,9 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel {
const update = { system: { damage: { types: {} } } };
for (const key of Object.keys(this.damage.types)) {
const type = this.damage.types[key];
const reroll = await type.roll.reroll();
const reroll = await type.reroll();
rerolls.push(reroll);
update.system.damage.types[key] = { roll: reroll.toJSON() };
update.system.damage.types[key] = reroll.toJSON();
}
await triggerChatRollFx(rerolls);
@ -192,10 +192,15 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel {
source.damage = {
types: Object.keys(source.damage).reduce((acc, key) => {
const damageData = source.damage[key];
acc[key] = {
roll: damageData.parts[0]?.roll ?? null,
damageTypes: damageData.parts[0]?.damageTypes ?? []
};
const oldRoll = damageData.parts[0]?.roll;
acc[key] = oldRoll ? {
...oldRoll,
options: {
...oldRoll.options,
damageTypes: damageData.parts[0].damageTypes ?? []
}
} : null;
return acc;
}, {})
};

View file

@ -11,10 +11,7 @@ export class ChatDamageData extends foundry.abstract.DataModel {
const fields = foundry.data.fields;
return {
types: new fields.TypedObjectField(new fields.SchemaField({
roll: new fields.JSONField({validate: ChatDamageData.#validateRoll}),
damageTypes: new fields.ArrayField(new fields.StringField({ choices: CONFIG.DH.GENERAL.damageTypes }))
}))
types: new fields.TypedObjectField(new fields.JSONField({validate: ChatDamageData.#validateRoll}))
};
}
@ -31,14 +28,14 @@ export class ChatDamageData extends foundry.abstract.DataModel {
for (const key of Object.keys(this.types)) {
const type = this.types[key];
try {
type.roll = Roll.fromData(type.roll);
type.roll.modifierTotal = CONFIG.Dice.daggerheart.DHRoll.calculateTotalModifiers(type.roll);
this.types[key] = Roll.fromData(type);
this.types[key].options.modifierTotal = CONFIG.Dice.daggerheart.DHRoll.calculateTotalModifiers(type);
} catch {}
}
}
async rerollDamageDie(damageType, dice, resultIndex) {
const reroll = this.types[damageType].roll;
const reroll = this.types[damageType];
const rerollDice = reroll.dice[dice];
await rerollDice.rerollResult(resultIndex);
await reroll._evaluate();