diff --git a/scripts/powers.js b/scripts/powers.js index 73ad9cd..b778db2 100644 --- a/scripts/powers.js +++ b/scripts/powers.js @@ -754,6 +754,36 @@ class DarksightEffect extends PowerEffect { } } +class DeflectionEffect extends PowerEffect { + get name () { return 'Deflection' } + get icon () { return 'icons/magic/defensive/shield-barrier-deflect-teal.webp' } + get duration () { return 5 } + get basePowerPoints () { return 2 } + get isTargeted () { return true } + get hasAdditionalRecipients () { return true } + get additionalRecipientCost () { return 1 } + get menuButtons () { + const data = [ + { label: 'Melee', value: 'melee' }, + { label: 'Ranged', value: 'vulnerable' }, + { label: 'Raise (both)', value: 'raise' }, + { label: 'Cancel', value: 'cancel' }, + ] + return data + } + async parseValues () { + await super.parseValues() + this.data.affects = this.data.button === 'raise' ? 'all' : this.data.button + } + get effectName () { + return `Deflection (${this.data.affects})` + } + get description () { + return super.description + `

Attackers subtract -2 from ${this.data.affects} + attacks when targeting this creature.

` + } +} + const PowerClasses = { "arcane-protection": ArcaneProtectionEffect, banish: BanishEffect, @@ -770,6 +800,7 @@ const PowerClasses = { curse: CurseEffect, "damage-field": DamageFieldEffect, darksight: DarksightEffect, + deflection: DeflectionEffect, "lower-trait": BoostLowerTraitEffect, }