Wall Walker

This commit is contained in:
Mike Bloy 2024-06-06 11:34:52 -05:00
parent 4959a380ab
commit 9ad0a23c33
2 changed files with 62 additions and 0 deletions

View File

@ -60,6 +60,7 @@ import { SummonAllyEffect } from './summon.js';
import { TelekinesisEffect } from './telekinesis.js';
import { TeleportEffect } from './teleport.js';
import { TimeStopEffect } from './timeStop.js';
import { WallWalkerEffect } from './wallWalker.js';
const PowerClasses = {
'arcane-protection': ArcaneProtectionEffect,
@ -140,6 +141,7 @@ const PowerClasses = {
telekinesis: TelekinesisEffect,
teleport: TeleportEffect,
'time-stop': TimeStopEffect,
'wall-walker': WallWalkerEffect,
};
/* ---------------------------------------------------------------- */

View 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,
},
];
}
}