diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs index 78964720..05659982 100644 --- a/module/data/actor/adversary.mjs +++ b/module/data/actor/adversary.mjs @@ -86,7 +86,8 @@ export default class DhpAdversary extends DhCreature { amount: 1 }, roll: { - type: 'attack' + type: 'attack', + isStandardAttack: true }, damage: { parts: [ @@ -405,4 +406,10 @@ export default class DhpAdversary extends DhCreature { return result; } + + static migrateData(source) { + if (!source.attack.roll.isStandardAttack) source.attack.roll.isStandardAttack = true; + + return super.migrateData(source); + } } diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index efad726c..6439344b 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -165,7 +165,8 @@ export default class DamageField extends fields.SchemaField { if (data.hasRoll && part.resultBased && data.roll.result.duality === -1) return part.valueAlt; const isAdversary = this.actor.type === 'adversary'; - if (isAdversary && this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { + const isHorde = this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id; + if (isAdversary && isHorde && this.roll?.isStandardAttack) { const hasHordeDamage = this.actor.effects.find(x => x.type === 'horde'); if (hasHordeDamage && !hasHordeDamage.disabled) return part.valueAlt; } diff --git a/module/data/fields/action/rollField.mjs b/module/data/fields/action/rollField.mjs index 63d48990..0d6f746b 100644 --- a/module/data/fields/action/rollField.mjs +++ b/module/data/fields/action/rollField.mjs @@ -11,6 +11,11 @@ export class DHActionRollData extends foundry.abstract.DataModel { choices: CONFIG.DH.ACTOR.abilities, label: 'DAGGERHEART.GENERAL.Trait.single' }), + isStandardAttack: new fields.BooleanField({ + required: true, + nullable: false, + initial: false + }), difficulty: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }), bonus: new fields.NumberField({ nullable: true, initial: null, integer: true }), advState: new fields.StringField({