modify weapon data to split formula.

This commit is contained in:
IrkTheImp 2025-07-03 11:28:04 -05:00
parent b9be9b9667
commit 4d64a99bb9
6 changed files with 26 additions and 50 deletions

View file

@ -621,43 +621,15 @@ export class DHAttackAction extends DHDamageAction {
super.prepareData();
if (this.damage.includeBase && !!this.item?.system?.damage) {
const baseDamage = this.getParentDamage();
this.cleanBaseDamage(baseDamage);
this.damage.parts.unshift(new DHDamageData(baseDamage));
}
}
cleanBaseDamage(baseDamage) {
let possibleRoll = new Roll(baseDamage.value.dice);
let die = 'd6';
let modifier = 0;
let nextOperator = '+';
possibleRoll.terms.forEach(term => {
if (term instanceof DiceTerm) {
die = `d${term._faces}`;
}
if (term instanceof OperatorTerm) {
nextOperator = term.operator;
}
if (term instanceof NumericTerm) {
if (nextOperator == '+') {
modifier += term.number;
}
if (nextOperator == '-') {
modifier -= term.number;
}
}
});
return (baseDamage.value = { ...baseDamage.value, dice: die, bonus: modifier });
}
getParentDamage() {
return {
value: {
multiplier: 'prof',
dice: this.item?.system?.damage.value,
dice: this.item?.system?.damage.dice,
bonus: this.item?.system?.damage.bonus ?? 0
},
type: this.item?.system?.damage.type,

View file

@ -32,6 +32,8 @@ export default class DHWeapon extends BaseDataItem {
burden: new fields.StringField({ required: true, choices: SYSTEM.GENERAL.burden, initial: 'oneHanded' }),
//DAMAGE
damage: new fields.SchemaField({
dice: new fields.StringField({ choices: SYSTEM.GENERAL.diceTypes, initial: 'd6' }),
bonus: new fields.NumberField({ nullable: true, initial: null }),
value: new FormulaField({ initial: 'd6' }),
type: new fields.StringField({
required: true,