lingering damage helper

This commit is contained in:
Mike Bloy 2023-09-20 12:58:47 -05:00
parent 7637977018
commit 7141073a7a

View File

@ -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 { class ArcaneProtectionEffect extends TargetedPowerEffect {
get name () { get name () {
return 'Arcane Protection' return 'Arcane Protection'
@ -166,6 +192,12 @@ class ArcaneProtectionEffect extends TargetedPowerEffect {
} }
} }
class BlastEffect extends LingeringDamagePowerEffect {
get name () {
return 'Blast'
}
}
class BlindEffect extends TargetedPowerEffect { class BlindEffect extends TargetedPowerEffect {
async prepMenu (token, targets) { async prepMenu (token, targets) {
this.menuData.inputs.push({ this.menuData.inputs.push({
@ -209,6 +241,12 @@ class BlindEffect extends TargetedPowerEffect {
} }
} }
class BoltEffect extends LingeringDamagePowerEffect {
get name () {
return 'Bolt'
}
}
class BoostLowerTraitEffect extends TargetedPowerEffect { class BoostLowerTraitEffect extends TargetedPowerEffect {
get name () { get name () {
return 'Boost/Lower Trait' return 'Boost/Lower Trait'
@ -304,6 +342,12 @@ class BoostLowerTraitEffect extends TargetedPowerEffect {
} }
} }
class BurstEffect extends LingeringDamagePowerEffect {
get name () {
return 'Burst'
}
}
class ConfusionEffect extends TargetedPowerEffect { class ConfusionEffect extends TargetedPowerEffect {
get name () { get name () {
return 'Confusion' return 'Confusion'
@ -942,9 +986,12 @@ class SummonUndeadEffect extends SummonEffect {
const PowerClasses = { const PowerClasses = {
'arcane protection': ArcaneProtectionEffect, 'arcane protection': ArcaneProtectionEffect,
blast: BlastEffect,
blind: BlindEffect, blind: BlindEffect,
bolt: BoltEffect,
'boost/lower trait': BoostLowerTraitEffect, 'boost/lower trait': BoostLowerTraitEffect,
'boost trait': BoostLowerTraitEffect, 'boost trait': BoostLowerTraitEffect,
burst: BurstEffect,
confusion: ConfusionEffect, confusion: ConfusionEffect,
deflection: DeflectionEffect, deflection: DeflectionEffect,
entangle: EntangleEffect, entangle: EntangleEffect,