71 lines
1.4 KiB
JavaScript
71 lines
1.4 KiB
JavaScript
import { PowerEffect } from './basePowers.js';
|
|
|
|
export class BlastEffect extends PowerEffect {
|
|
get name() {
|
|
return 'Blast';
|
|
}
|
|
|
|
get icon() {
|
|
return 'icons/magic/fire/explosion-fireball-large-red-orange.webp';
|
|
}
|
|
|
|
get duration() {
|
|
return 0;
|
|
}
|
|
|
|
get isTargeted() {
|
|
return true;
|
|
}
|
|
|
|
get usePrimaryEffect() {
|
|
return false;
|
|
}
|
|
|
|
get isDamaging() {
|
|
return true;
|
|
}
|
|
|
|
get basePowerPoints() {
|
|
return 3;
|
|
}
|
|
|
|
get hasAoe() {
|
|
return true;
|
|
}
|
|
|
|
get modifiers() {
|
|
const mods = super.modifiers;
|
|
mods.push(
|
|
{
|
|
name: 'Area of Effect',
|
|
id: 'aoe',
|
|
type: 'select',
|
|
default: 'mbt',
|
|
choices: {
|
|
sbt: 'Small Blast Template',
|
|
mbt: 'Medium Blast Template',
|
|
lbt: 'Large Blast Template',
|
|
},
|
|
effects: { sbt: null, mbt: null, lbt: null },
|
|
values: { sbt: 0, mbt: 0, lbt: 1 },
|
|
epic: false,
|
|
},
|
|
{ name: 'Damage', value: 2, id: 'damage', epic: false, effect: false },
|
|
{
|
|
name: 'Greater Blast',
|
|
value: 4,
|
|
id: 'greater',
|
|
epic: true,
|
|
effect: false,
|
|
},
|
|
);
|
|
return mods;
|
|
}
|
|
|
|
get description() {
|
|
const dmgDie = (this.data.greater ? 4 : this.data.damage ? 3 : 2) + (this.data.raise ? 1 : 0);
|
|
const size = this.data.aoe.toUpperCase();
|
|
return super.description + `<p>The blast covers a ${size} and does ${dmgDie}d6 damage</p>`;
|
|
}
|
|
}
|