106 lines
2.3 KiB
JavaScript
106 lines
2.3 KiB
JavaScript
import { PowerEffect } from './basePowers.js';
|
|
|
|
export class HealingEffect extends PowerEffect {
|
|
get name() {
|
|
return 'Healing';
|
|
}
|
|
|
|
get icon() {
|
|
return 'icons/magic/life/heart-cross-strong-flame-purple-orange.webp';
|
|
}
|
|
|
|
get duration() {
|
|
return 0;
|
|
}
|
|
|
|
get isTargeted() {
|
|
return true;
|
|
}
|
|
|
|
get usePrimaryEffect() {
|
|
return false;
|
|
}
|
|
|
|
get isDamaging() {
|
|
return false;
|
|
}
|
|
|
|
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: 'none',
|
|
choices: {
|
|
none: 'None',
|
|
mbt: '⭐ Medium Blast Template',
|
|
lbt: '⭐ Large Blast Template',
|
|
},
|
|
effects: { none: null, mbt: null, lbt: null },
|
|
values: { none: 0, mbt: 2, lbt: 3 },
|
|
epic: false,
|
|
},
|
|
{
|
|
name: 'Neutralize Poison or Disease',
|
|
value: 1,
|
|
id: 'poison',
|
|
epic: false,
|
|
type: 'checkbox',
|
|
effect: false,
|
|
},
|
|
{
|
|
name: 'Crippling Injuries',
|
|
value: 15,
|
|
id: 'crippling',
|
|
epic: false,
|
|
type: 'checkbox',
|
|
effect: false,
|
|
},
|
|
{
|
|
name: 'Greater Healing',
|
|
value: 10,
|
|
id: 'greater',
|
|
epic: false,
|
|
type: 'checkbox',
|
|
effect: false,
|
|
},
|
|
);
|
|
return mods;
|
|
}
|
|
|
|
get description() {
|
|
const size =
|
|
this.data.aoe !== 'none'
|
|
? `all allies within a ${this.data.aoe.toUpperCase()} centered on the caster`
|
|
: 'a single subject';
|
|
let text =
|
|
super.description +
|
|
`
|
|
<p>Heal ${size} of ${this.data.raise ? '2 Wounds' : '1 Wound'}
|
|
${this.data.greater ? 'of any age' : 'sustained in the last hour'}.
|
|
`;
|
|
if (this.data.crippling) {
|
|
text += `This casting is the only one possible for this Crippling Injury by this
|
|
caster, and preparation took an hour. If successful, the subject is
|
|
Exhausted for 24 hours.
|
|
`;
|
|
}
|
|
if (this.data.poison) {
|
|
text += `Negate any poison or disease, taking into account the affects of
|
|
any penalty from the poison or disease on the arcane skill roll.`;
|
|
}
|
|
text += '</p>';
|
|
return text;
|
|
}
|
|
}
|