add healing

This commit is contained in:
Mike Bloy 2024-05-21 13:12:45 -05:00
parent 3062e1bfcb
commit b4fd301a4f
3 changed files with 108 additions and 0 deletions

View File

@ -56,6 +56,7 @@ export class HavocEffect extends PowerEffect {
value: 2,
id: 'greater',
epic: true,
type: 'checkbox',
effect: false,
},
);

View File

@ -0,0 +1,105 @@
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 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: '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;
}
}

View File

@ -30,6 +30,7 @@ import { FearEffect } from './fear.js';
import { FlyEffect } from './fly.js';
import { GrowthShrinkEffect } from './growthShrink.js';
import { HavocEffect } from './havoc.js';
import { HealingEffect } from './healing.js';
const PowerClasses = {
'arcane-protection': ArcaneProtectionEffect,
@ -69,6 +70,7 @@ const PowerClasses = {
'growth-shrink': GrowthShrinkEffect,
growthshrink: GrowthShrinkEffect,
havoc: HavocEffect,
healing: HealingEffect,
'lower-trait': BoostLowerTraitEffect,
shrink: GrowthShrinkEffect,
};