65 lines
1.6 KiB
JavaScript
65 lines
1.6 KiB
JavaScript
import { PowerEffect } from './basePowers.js';
|
|
|
|
export class CurseEffect extends PowerEffect {
|
|
get name() {
|
|
return 'Curse';
|
|
}
|
|
|
|
get icon() {
|
|
return 'icons/magic/control/voodoo-doll-pain-damage-purple.webp';
|
|
}
|
|
|
|
get duration() {
|
|
return 500 * 24 * 60 * 6;
|
|
}
|
|
|
|
get isTargeted() {
|
|
return true;
|
|
}
|
|
|
|
get oneTarget() {
|
|
return true;
|
|
}
|
|
|
|
get isRaisable() {
|
|
return false;
|
|
}
|
|
|
|
get basePowerPoints() {
|
|
return 5;
|
|
}
|
|
|
|
get modifiers() {
|
|
const mods = super.modifiers;
|
|
mods.push({
|
|
name: 'Turn to Stone',
|
|
type: 'checkbox',
|
|
value: 5,
|
|
id: 'turntostone',
|
|
epic: true,
|
|
effect: false,
|
|
});
|
|
return mods;
|
|
}
|
|
|
|
get description() {
|
|
let desc = super.description;
|
|
desc += `<p>The victim must defend with a Spirit roll opposed by the
|
|
caster's arcane skill roll. Failure means the victim suffers a level
|
|
of Fatigue immediately.</p>`;
|
|
if (this.data.turntostone) {
|
|
desc += `<p>On every following run the victim must make a Spirit roll
|
|
or take a level of Fatigue. When Incapacitated, the victim turns to
|
|
stone, with a Hardness equal to his Tougness.</p>`;
|
|
} else {
|
|
desc += `<p>At sunset every day, the victim suffers a level of Fatigue.
|
|
When Incapacitated by this, he makes a Vigor roll each day to avoid
|
|
death.</p>`;
|
|
}
|
|
desc += `<p><strong>Breaking the curse:</strong> The curse can be lifted by
|
|
the original caster at will, and ends if the caster is slain. Dispel at -2
|
|
also removes the curse, but each individual may only try once.</p>`;
|
|
return desc;
|
|
}
|
|
}
|