mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
* Restructured all the files * Moved build/daggerheart.js to ./daggerheart.js. Changed rollup to use the css file instead of the less * Restored build/ folder * Mvoed config out form under application * Moved roll.mjs to module/dice and renamed to dhRolls.mjs * Update module/canvas/placeables/_module.mjs Co-authored-by: joaquinpereyra98 <24190917+joaquinpereyra98@users.noreply.github.com> * Le massive export update * Removed unncessary import --------- Co-authored-by: joaquinpereyra98 <24190917+joaquinpereyra98@users.noreply.github.com>
38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
import DHBaseAction from './baseAction.mjs';
|
|
|
|
export default class DHDamageAction extends DHBaseAction {
|
|
static extraSchemas = ['damage', 'target', 'effects'];
|
|
|
|
getFormulaValue(part, data) {
|
|
let formulaValue = part.value;
|
|
if (this.hasRoll && part.resultBased && data.system.roll.result.duality === -1) return part.valueAlt;
|
|
return formulaValue;
|
|
}
|
|
|
|
async rollDamage(event, data) {
|
|
let formula = this.damage.parts.map(p => this.getFormulaValue(p, data).getFormula(this.actor)).join(' + ');
|
|
|
|
if (!formula || formula == '') return;
|
|
let roll = { formula: formula, total: formula },
|
|
bonusDamage = [];
|
|
|
|
if (isNaN(formula)) formula = Roll.replaceFormulaData(formula, this.getRollData(data.system ?? data));
|
|
|
|
const config = {
|
|
title: game.i18n.format('DAGGERHEART.Chat.DamageRoll.Title', { damage: this.name }),
|
|
roll: { formula },
|
|
targets: data.system?.targets.filter(t => t.hit) ?? data.targets,
|
|
hasSave: this.hasSave,
|
|
isCritical: data.system?.roll?.isCritical ?? false,
|
|
source: data.system?.source,
|
|
event
|
|
};
|
|
if (this.hasSave) config.onSave = this.save.damageMod;
|
|
if (data.system) {
|
|
config.source.message = data._id;
|
|
config.directDamage = false;
|
|
}
|
|
|
|
roll = CONFIG.Dice.daggerheart.DamageRoll.build(config);
|
|
}
|
|
}
|