add slumber

This commit is contained in:
Mike Bloy 2024-06-02 00:16:41 -05:00
parent 140381e1d1
commit d6581e16d4
2 changed files with 75 additions and 0 deletions

View File

@ -50,6 +50,7 @@ import { SanctuaryEffect } from './sanctuary.js';
import { ScryingEffect } from './scrying.js'; import { ScryingEffect } from './scrying.js';
import { ShapeChangeEffect } from './shapeChange.js'; import { ShapeChangeEffect } from './shapeChange.js';
import { SlothSpeedEffect } from './slothSpeed.js'; import { SlothSpeedEffect } from './slothSpeed.js';
import { SlumberEffect } from './slumber.js';
const PowerClasses = { const PowerClasses = {
'arcane-protection': ArcaneProtectionEffect, 'arcane-protection': ArcaneProtectionEffect,
@ -117,6 +118,7 @@ const PowerClasses = {
'sloth-speed': SlothSpeedEffect, 'sloth-speed': SlothSpeedEffect,
sloth: SlothSpeedEffect, sloth: SlothSpeedEffect,
speed: SlothSpeedEffect, speed: SlothSpeedEffect,
slumber: SlumberEffect,
}; };
/* ---------------------------------------------------------------- */ /* ---------------------------------------------------------------- */

View File

@ -0,0 +1,73 @@
import { moduleName } from '../globals.js';
import { PowerEffect } from './basePowers.js';
export class SlumberEffect extends PowerEffect {
get name() {
return 'Slumber';
}
get icon() {
return 'icons/magic/control/sleep-bubble-purple.webp';
}
get duration() {
return 600;
}
get isTargeted() {
return true;
}
get hasAoe() {
return true;
}
get basePowerPoints() {
return 2;
}
get modifiers() {
const mods = super.modifiers;
mods.push({
type: 'select',
default: 'none',
name: 'Area of Effect',
id: 'aoe',
epic: false,
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 },
});
return mods;
}
get description() {
return (
super.description +
`<p>The subject(s) fall into a deep and restful sleep if they fail a
Spirit${this.data.raise ? ' -2' : ''} roll. Very loud noises or attempts
to physically wake a sleeper grant another roll.</p>`
);
}
get primaryEffectButtons() {
const buttons = super.primaryEffectButtons;
const mods = [];
if (this.data.raise) {
mods.push({ label: 'Raise on the arcane roll', value: -2 });
}
buttons.push({
label: `Shake off (Spirit${this.data.raise ? ' -2' : ''})`,
type: 'trait',
rollType: 'attribute',
rollDesc: 'Spirit',
flavor: 'Wake up if successful',
mods,
});
return buttons;
}
}