diff --git a/src/module/powers/darksight.js b/src/module/powers/darksight.js new file mode 100644 index 0000000..0df12a7 --- /dev/null +++ b/src/module/powers/darksight.js @@ -0,0 +1,69 @@ +import { PowerEffect } from './basePowers.js'; + +export class DarksightEffect extends PowerEffect { + get name() { + return 'Darksight'; + } + + get icon() { + return 'icons/magic/perception/eye-ringed-glow-angry-small-teal.webp'; + } + + get duration() { + return 600; + } + + get basePowerPoints() { + return 1; + } + + get isTargeted() { + return true; + } + + get hasAdditionalRecipients() { + return true; + } + + get additionalRecipientCost() { + return 1; + } + + get modifiers() { + const mods = super.modifiers; + mods.push({ + name: 'Greater Darksight', + type: 'checkbox', + value: 2, + id: 'greater', + epic: true, + effect: false, + }); + return mods; + } + + get description() { + let desc = super.description; + desc += '

'; + if (this.data.greater) { + desc += `Can see in all darkness, ignoring all illumination penalties and + 4 points of penalties from invisible creatures`; + } else if (this.data.raise) { + desc += 'Can see in Pitch Darkness and ignore up to 6 points of illumination penalties'; + } else { + desc += 'Can see in darkness and ignore 4 points of illumination penalties'; + } + desc += '

'; + return desc; + } + + get effectName() { + if (this.data.greater) { + return 'Greater Darksight'; + } else if (this.data.raise) { + return 'Major Darksight'; + } else { + return 'Darksignt'; + } + } +} diff --git a/src/module/powers/powers.js b/src/module/powers/powers.js index c7d6c0b..90ca075 100644 --- a/src/module/powers/powers.js +++ b/src/module/powers/powers.js @@ -14,73 +14,7 @@ import { BurstEffect } from './burst.js'; import { ConfusionEffect } from './confusion.js'; import { CurseEffect } from './curse.js'; import { DamageFieldEffect } from './damageField.js'; - -class DarksightEffect extends PowerEffect { - get name() { - return 'Darksight'; - } - - get icon() { - return 'icons/magic/perception/eye-ringed-glow-angry-small-teal.webp'; - } - - get duration() { - return 600; - } - - get basePowerPoints() { - return 1; - } - - get isTargeted() { - return true; - } - - get hasAdditionalRecipients() { - return true; - } - - get additionalRecipientCost() { - return 1; - } - - get modifiers() { - const mods = super.modifiers; - mods.push({ - name: 'Greater Darksight', - value: 2, - id: 'greater', - epic: true, - effect: false, - }); - return mods; - } - - get description() { - let desc = super.description; - desc += '

'; - if (this.data.mods.has('greater')) { - desc += `Can see in all darkness, ignoring all illumination penalties and - 4 points of penalties from invisible creatures`; - } else if (this.data.raise) { - desc += 'Can see in Pitch Darkness and ignore up to 6 points of illumination penalties'; - } else { - desc += 'Can see in darkness and ignore 4 points of illumination penalties'; - } - desc += '

'; - return desc; - } - - get effectName() { - if (this.data.mods.has('greater')) { - return 'Greater Darksight'; - } else if (this.data.raise) { - return 'Major Darksight'; - } else { - return 'Darksignt'; - } - } -} +import { DarksightEffect } from './darksight.js'; class DeflectionEffect extends PowerEffect { get name() {