import { PowerEffect } from './basePowers.js'; export class TelekinesisEffect extends PowerEffect { get name() { return 'Telekinesis'; } get duration() { return 5; } get icon() { return 'icons/magic/movement/trail-streak-zigzag-yellow.webp'; } get basePowerPoints() { return 5; } get isTargeted() { return false; } get usePrimaryEffect() { return false; } get modifiers() { const mods = super.modifiers; mods.push({ name: 'Power', type: 'checkbox', id: 'power', value: 3, epic: false, effect: false, }); return mods; } get effectName() { return `${this.data.raise ? 'major' : 'minor'} ${this.name} ${this.data.power ? '[Power] ' : ''}`; } get description() { let desc = super.description; let str = 'd10'; if (this.data.power && this.data.raise) { str = 'd12+2'; } else if (this.data.power || this.data.raise) { str = 'd12'; } desc += `

Move objects with will alone. The power has a Strength of ${str}. Resisted by an opposed arcane roll vs the target's Spirit when first targeted and at the start of each of the target's turns thereafter.

Uses:

`; return desc; } get maintEffectButtons() { let str = 'd10x'; if (this.data.power && this.data.raise) { str = 'd12x+2'; } else if (this.data.power || this.data.raise) { str = 'd12x'; } let traitFormula = `1${str}[Strength]`; if (this.source.actor.system.wildcard) { traitFormula = `{${traitFormula},1d6x[Wild Die]}kh`; } return [ ...super.primaryEffectButtons, { label: `Strength (${str.replace('x', '')})`, type: 'roll', formula: traitFormula, flavor: 'Telekinesis Strength', }, { label: 'Damage (Str+d6)', type: 'damage', formula: `1${str}[Strength]+1d6x`, flavor: 'Telekinesis Bash Damage', }, ]; } }