add scrying, and buttons to blind and boost/lower
This commit is contained in:
parent
267e892f27
commit
06306d8959
@ -48,6 +48,23 @@ export class BlindEffect extends PowerEffect {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get primaryEffectButtons() {
|
||||||
|
const buttons = super.primaryEffectButtons;
|
||||||
|
const mods = [];
|
||||||
|
if (this.data.strong) {
|
||||||
|
mods.push({ label: 'Strong', value: -2 });
|
||||||
|
}
|
||||||
|
buttons.push({
|
||||||
|
label: `Shake off (Vigor${this.data.strong ? ' -2' : ''})`,
|
||||||
|
type: 'trait',
|
||||||
|
rollType: 'attribute',
|
||||||
|
rollDesc: 'Vigor',
|
||||||
|
flavor: 'Success shakes off one level, Raise shakes off two',
|
||||||
|
mods,
|
||||||
|
});
|
||||||
|
return buttons;
|
||||||
|
}
|
||||||
|
|
||||||
async createSecondaryEffects(maintId) {
|
async createSecondaryEffects(maintId) {
|
||||||
const docs = await super.createSecondaryEffects(maintId);
|
const docs = await super.createSecondaryEffects(maintId);
|
||||||
if (this.data.raise) {
|
if (this.data.raise) {
|
||||||
|
|||||||
@ -118,6 +118,25 @@ export class BoostLowerTraitEffect extends PowerEffect {
|
|||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get primaryEffectButtons() {
|
||||||
|
const buttons = super.primaryEffectButtons;
|
||||||
|
if (this.data.direction === 'Lower') {
|
||||||
|
const mods = [];
|
||||||
|
if (this.data.strong) {
|
||||||
|
mods.push({ label: 'Strong', value: -2 });
|
||||||
|
}
|
||||||
|
buttons.push({
|
||||||
|
label: `Shake off (Spirit${this.data.strong ? ' -2' : ''})`,
|
||||||
|
type: 'trait',
|
||||||
|
rollType: 'attribute',
|
||||||
|
rollDesc: 'Spirit',
|
||||||
|
flavor: 'Success shakes off one level, Raise shakes off two',
|
||||||
|
mods,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return buttons;
|
||||||
|
}
|
||||||
|
|
||||||
get modifiers() {
|
get modifiers() {
|
||||||
const mods = super.modifiers;
|
const mods = super.modifiers;
|
||||||
let traitOptions = ['Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor'];
|
let traitOptions = ['Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor'];
|
||||||
|
|||||||
@ -47,6 +47,7 @@ import { PuppetEffect } from './puppet.js';
|
|||||||
import { ReliefEffect } from './relief.js';
|
import { ReliefEffect } from './relief.js';
|
||||||
import { ResurrectionEffect } from './resurrection.js';
|
import { ResurrectionEffect } from './resurrection.js';
|
||||||
import { SanctuaryEffect } from './sanctuary.js';
|
import { SanctuaryEffect } from './sanctuary.js';
|
||||||
|
import { ScryingEffect } from './scrying.js';
|
||||||
|
|
||||||
const PowerClasses = {
|
const PowerClasses = {
|
||||||
'arcane-protection': ArcaneProtectionEffect,
|
'arcane-protection': ArcaneProtectionEffect,
|
||||||
@ -107,6 +108,7 @@ const PowerClasses = {
|
|||||||
relief: ReliefEffect,
|
relief: ReliefEffect,
|
||||||
resurrection: ResurrectionEffect,
|
resurrection: ResurrectionEffect,
|
||||||
sanctuary: SanctuaryEffect,
|
sanctuary: SanctuaryEffect,
|
||||||
|
scrying: ScryingEffect,
|
||||||
shrink: GrowthShrinkEffect,
|
shrink: GrowthShrinkEffect,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
47
src/module/powers/scrying.js
Normal file
47
src/module/powers/scrying.js
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import { PowerEffect } from './basePowers.js';
|
||||||
|
|
||||||
|
export class ScryingEffect extends PowerEffect {
|
||||||
|
get name() {
|
||||||
|
return 'Scrying';
|
||||||
|
}
|
||||||
|
|
||||||
|
get basePowerPoints() {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
get duration() {
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
get icon() {
|
||||||
|
return 'icons/magic/perception/orb-crystal-ball-scrying.webp';
|
||||||
|
}
|
||||||
|
|
||||||
|
get modifiers() {
|
||||||
|
const mods = super.modifiers;
|
||||||
|
mods.push({
|
||||||
|
name: 'Group Sight',
|
||||||
|
id: 'group',
|
||||||
|
value: 2,
|
||||||
|
type: 'checkbox',
|
||||||
|
default: false,
|
||||||
|
epic: false,
|
||||||
|
effect: false,
|
||||||
|
});
|
||||||
|
return mods;
|
||||||
|
}
|
||||||
|
|
||||||
|
get description() {
|
||||||
|
let text = super.description;
|
||||||
|
text += `<p>Opposed by the subject's spirit. If the target wins, he knows
|
||||||
|
he is being spied upon. If the caster wins, he can see and hear the target
|
||||||
|
and the area around it. With a raise, he can move his perspective as well.
|
||||||
|
</p>${this.data.group ? '<p>The caster may share perception with nearby allies.</p>' : ''}
|
||||||
|
`;
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
get effectName() {
|
||||||
|
return `${this.name}${this.data.group ? ' (Group Sight)' : ''}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user