Wall Walker
This commit is contained in:
parent
4959a380ab
commit
9ad0a23c33
@ -60,6 +60,7 @@ import { SummonAllyEffect } from './summon.js';
|
|||||||
import { TelekinesisEffect } from './telekinesis.js';
|
import { TelekinesisEffect } from './telekinesis.js';
|
||||||
import { TeleportEffect } from './teleport.js';
|
import { TeleportEffect } from './teleport.js';
|
||||||
import { TimeStopEffect } from './timeStop.js';
|
import { TimeStopEffect } from './timeStop.js';
|
||||||
|
import { WallWalkerEffect } from './wallWalker.js';
|
||||||
|
|
||||||
const PowerClasses = {
|
const PowerClasses = {
|
||||||
'arcane-protection': ArcaneProtectionEffect,
|
'arcane-protection': ArcaneProtectionEffect,
|
||||||
@ -140,6 +141,7 @@ const PowerClasses = {
|
|||||||
telekinesis: TelekinesisEffect,
|
telekinesis: TelekinesisEffect,
|
||||||
teleport: TeleportEffect,
|
teleport: TeleportEffect,
|
||||||
'time-stop': TimeStopEffect,
|
'time-stop': TimeStopEffect,
|
||||||
|
'wall-walker': WallWalkerEffect,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
|
|||||||
60
src/module/powers/wallWalker.js
Normal file
60
src/module/powers/wallWalker.js
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
import { PowerEffect } from './basePowers.js';
|
||||||
|
|
||||||
|
export class WallWalkerEffect extends PowerEffect {
|
||||||
|
get name() {
|
||||||
|
return 'WallWalker';
|
||||||
|
}
|
||||||
|
|
||||||
|
get duration() {
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
get icon() {
|
||||||
|
return 'icons/creatures/invertebrates/bug-sixlegged-gray.webp';
|
||||||
|
}
|
||||||
|
|
||||||
|
get hasAdditionalRecipients() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
get additionalRecipientCost() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
get basePowerPoints() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
get isTargeted() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
get effectName() {
|
||||||
|
return `${this.name} (${this.data.raise ? 'full' : 'half'} pace)`;
|
||||||
|
}
|
||||||
|
|
||||||
|
get description() {
|
||||||
|
let text =
|
||||||
|
super.description +
|
||||||
|
`<p>Walk along vertical or horizontal surfaces. Move at ${this.data.raise ? 'full' : 'half'}
|
||||||
|
pace. May${this.data.raise ? '' : ' not'} run.
|
||||||
|
</p><p>If an athletics check is needed to climb or stay on the surface, it is at +4.
|
||||||
|
</p>`;
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
get primaryEffectButtons() {
|
||||||
|
const mods = [{ label: 'Wall Walker', value: 4 }];
|
||||||
|
return [
|
||||||
|
...super.primaryEffectButtons,
|
||||||
|
{
|
||||||
|
label: 'Athletics +4 (to climb or stay on a surface)',
|
||||||
|
type: 'trait',
|
||||||
|
rollType: 'skill',
|
||||||
|
rollDesc: 'Athletics',
|
||||||
|
flavor: 'Hanging on to the surface',
|
||||||
|
mods,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user