add scrying, and buttons to blind and boost/lower

This commit is contained in:
Mike Bloy 2024-05-26 23:26:27 -05:00
parent 267e892f27
commit 06306d8959
4 changed files with 85 additions and 0 deletions

View File

@ -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) {
const docs = await super.createSecondaryEffects(maintId);
if (this.data.raise) {

View File

@ -118,6 +118,25 @@ export class BoostLowerTraitEffect extends PowerEffect {
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() {
const mods = super.modifiers;
let traitOptions = ['Agility', 'Smarts', 'Spirit', 'Strength', 'Vigor'];

View File

@ -47,6 +47,7 @@ import { PuppetEffect } from './puppet.js';
import { ReliefEffect } from './relief.js';
import { ResurrectionEffect } from './resurrection.js';
import { SanctuaryEffect } from './sanctuary.js';
import { ScryingEffect } from './scrying.js';
const PowerClasses = {
'arcane-protection': ArcaneProtectionEffect,
@ -107,6 +108,7 @@ const PowerClasses = {
relief: ReliefEffect,
resurrection: ResurrectionEffect,
sanctuary: SanctuaryEffect,
scrying: ScryingEffect,
shrink: GrowthShrinkEffect,
};

View 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)' : ''}`;
}
}