diff --git a/src/module/powers/blind.js b/src/module/powers/blind.js index f3b6508..60b7167 100644 --- a/src/module/powers/blind.js +++ b/src/module/powers/blind.js @@ -51,7 +51,7 @@ export class BlindEffect extends PowerEffect { async createSecondaryEffects(maintId) { const docs = await super.createSecondaryEffects(maintId); if (this.data.raise) { - const strong = this.data.mods.has('strong'); + const strong = this.data.strong; const doc = this.createEffectDocument(this.icon, `Blinded (${strong ? 'Strong, ' : ''}Raise)`, [ { key: 'system.stats.globalMods.trait', diff --git a/src/module/powers/bolt.js b/src/module/powers/bolt.js new file mode 100644 index 0000000..bf93481 --- /dev/null +++ b/src/module/powers/bolt.js @@ -0,0 +1,94 @@ +import { PowerEffect } from './basePowers.js'; + +export class BoltEffect extends PowerEffect { + get name() { + return 'Bolt'; + } + + get icon() { + return 'icons/skills/ranged/tracers-triple-orange.webp'; + } + + get duration() { + return 0; + } + + get isTargeted() { + return true; + } + + get isDamaging() { + return true; + } + + get basePowerPoints() { + return 3; + } + + get usePrimaryEffect() { + return false; + } + + get modifiers() { + const mods = super.modifiers; + mods.push( + { + type: 'checkbox', + name: 'Damage', + value: 2, + id: 'damage', + epic: false, + effect: false, + }, + { + type: 'checkbox', + name: 'Disintegrate', + value: 1, + id: 'disintigrate', + epic: true, + effect: false, + }, + { + name: 'Greater Bolt', + type: 'checkbox', + value: 4, + id: 'greater', + epic: true, + effect: false, + }, + { + name: 'Rate of Fire', + type: 'checkbox', + value: 2, + id: 'rof', + epic: true, + effect: false, + }, + ); + return mods; + } + + get powerPoints() { + let total = super.powerPoints; + total += this.data.aoe === 'l' ? 1 : 0; + return total; + } + + get description() { + const dmgDie = (this.data.greater ? 4 : this.data.damage ? 3 : 2) + (this.data.raise ? 1 : 0); + let desc = super.description + '
'; + if (this.data.rof) { + desc += `Up to two bolts (RoF 2) do ${dmgDie}d6 damage each.`; + } else { + desc += `The bolt does ${dmgDie}d6 damage.`; + } + if (this.data.disintegrate) { + desc += + 'The bolt is disintegrating. If being used to break' + + ' something, the damage dice can Ace. A creature Incapacitated by a ' + + 'disintegrating bolt must make a Vigor roll or its body turns to dust'; + } + desc += '
'; + return desc; + } +} diff --git a/src/module/powers/powers.js b/src/module/powers/powers.js index b07c77d..c402c15 100644 --- a/src/module/powers/powers.js +++ b/src/module/powers/powers.js @@ -7,84 +7,7 @@ import { BarrierEffect } from './barrier.js'; import { BeastFriendEffect } from './beastFriend.js'; import { BlastEffect } from './blast.js'; import { BlindEffect } from './blind.js'; - -class BoltEffect extends PowerEffect { - get name() { - return 'Bolt'; - } - - get icon() { - return 'icons/magic/fire/explosion-fireball-large-red-orange.webp'; - } - - get duration() { - return 0; - } - - get isTargeted() { - return true; - } - - get isDamaging() { - return true; - } - - get basePowerPoints() { - return 3; - } - - get usePrimaryEffect() { - return false; - } - - get modifiers() { - const mods = super.modifiers; - mods.push( - { name: 'Damage', value: 2, id: 'damage', epic: false, effect: false }, - { - name: 'Disintegrate', - value: 1, - id: 'disintigrate', - epic: true, - effect: false, - }, - { - name: 'Greater Bolt', - value: 4, - id: 'greater', - epic: true, - effect: false, - }, - { name: 'Rate of Fire', value: 2, id: 'rof', epic: true, effect: false }, - ); - return mods; - } - - get powerPoints() { - let total = super.powerPoints; - total += this.data.aoe === 'l' ? 1 : 0; - return total; - } - - get description() { - const dmgDie = - (this.data.mods.has('greater') ? 4 : this.data.mods.has('damage') ? 3 : 2) + (this.data.raise ? 1 : 0); - let desc = super.description + ''; - if (this.data.mods.has('rof')) { - desc += `Up to two bolts (RoF 2) do ${dmgDie}d6 damage each.`; - } else { - desc += `The bolt does ${dmgDie}d6 damage.`; - } - if (this.data.mods.has('disintegrate')) { - desc += - 'The bolt is disintegrating. If being used to break' + - ' something, the damage dice can Ace. A creature Incapacitated by a ' + - 'disintegrating bolt must make a Vigor roll or its body turns to dust'; - } - desc += '
'; - return desc; - } -} +import { BoltEffect } from './bolt.js'; class BurrowEffect extends PowerEffect { get name() {