diff --git a/scripts/powerEffects.js b/scripts/powerEffects.js index baea0ed..21caf61 100644 --- a/scripts/powerEffects.js +++ b/scripts/powerEffects.js @@ -141,6 +141,32 @@ class TargetedPowerEffect extends PowerEffect { } } +class LingeringDamagePowerEffect extends TargetedPowerEffect { + get baseDurationRounds () { + return 1 + } + + async prepMenu () { + this.menuData.inputs.splice(this.menuData.inputs.length - 1, 0, { + type: 'checkbox', label: 'Lingering Damage (+2)' + }) + } + + globalModifierEffects () { + super.globalModifierEffects() + this.inputIndex += 1 + if (this.inputs[7]) { // lingering damage + const doc = shim.createEffectDocument( + 'icons/magic/death/skull-poison-green.webp', + `Lingering Damage (${this.name})`, + 1 + ) + doc.flags.swade.expiration = CONST.SWADE.STATUS_EFFECT_EXPIRATION.StartOfTurnPrompt + this.effectDocs.push(doc) + } + } +} + class ArcaneProtectionEffect extends TargetedPowerEffect { get name () { return 'Arcane Protection' @@ -166,6 +192,12 @@ class ArcaneProtectionEffect extends TargetedPowerEffect { } } +class BlastEffect extends LingeringDamagePowerEffect { + get name () { + return 'Blast' + } +} + class BlindEffect extends TargetedPowerEffect { async prepMenu (token, targets) { this.menuData.inputs.push({ @@ -209,6 +241,12 @@ class BlindEffect extends TargetedPowerEffect { } } +class BoltEffect extends LingeringDamagePowerEffect { + get name () { + return 'Bolt' + } +} + class BoostLowerTraitEffect extends TargetedPowerEffect { get name () { return 'Boost/Lower Trait' @@ -304,6 +342,12 @@ class BoostLowerTraitEffect extends TargetedPowerEffect { } } +class BurstEffect extends LingeringDamagePowerEffect { + get name () { + return 'Burst' + } +} + class ConfusionEffect extends TargetedPowerEffect { get name () { return 'Confusion' @@ -942,9 +986,12 @@ class SummonUndeadEffect extends SummonEffect { const PowerClasses = { 'arcane protection': ArcaneProtectionEffect, + blast: BlastEffect, blind: BlindEffect, + bolt: BoltEffect, 'boost/lower trait': BoostLowerTraitEffect, 'boost trait': BoostLowerTraitEffect, + burst: BurstEffect, confusion: ConfusionEffect, deflection: DeflectionEffect, entangle: EntangleEffect,