add slumber
This commit is contained in:
parent
140381e1d1
commit
d6581e16d4
@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
|
|||||||
73
src/module/powers/slumber.js
Normal file
73
src/module/powers/slumber.js
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user