add timestop
This commit is contained in:
parent
f4bfa13cab
commit
ba99dc08e2
@ -607,7 +607,7 @@ export class PowerEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async apply() {
|
async apply() {
|
||||||
const maintId = randomID();
|
const maintId = foundry.utils.randomID();
|
||||||
const secondaryDocs = await this.createSecondaryEffects(maintId);
|
const secondaryDocs = await this.createSecondaryEffects(maintId);
|
||||||
const primaryDoc = await this.createPrimaryEffect(maintId);
|
const primaryDoc = await this.createPrimaryEffect(maintId);
|
||||||
const maintainDoc = await this.createMaintainEffect(maintId);
|
const maintainDoc = await this.createMaintainEffect(maintId);
|
||||||
@ -873,7 +873,7 @@ export class ActorFolderEffect extends PowerEffect {
|
|||||||
|
|
||||||
async parseValues() {
|
async parseValues() {
|
||||||
await super.parseValues();
|
await super.parseValues();
|
||||||
this.data.maintId = randomID();
|
this.data.maintId = foundry.utils.randomID();
|
||||||
this.targetActor = await game.actors.get(this.data.actorId);
|
this.targetActor = await game.actors.get(this.data.actorId);
|
||||||
this.targetTokenDoc = await this.targetActor.getTokenDocument();
|
this.targetTokenDoc = await this.targetActor.getTokenDocument();
|
||||||
const sourceUpdates = {
|
const sourceUpdates = {
|
||||||
|
|||||||
@ -59,6 +59,7 @@ import { StunEffect } from './stun.js';
|
|||||||
import { SummonAllyEffect } from './summon.js';
|
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';
|
||||||
|
|
||||||
const PowerClasses = {
|
const PowerClasses = {
|
||||||
'arcane-protection': ArcaneProtectionEffect,
|
'arcane-protection': ArcaneProtectionEffect,
|
||||||
@ -138,6 +139,7 @@ const PowerClasses = {
|
|||||||
'summon-ally': SummonAllyEffect,
|
'summon-ally': SummonAllyEffect,
|
||||||
telekinesis: TelekinesisEffect,
|
telekinesis: TelekinesisEffect,
|
||||||
teleport: TeleportEffect,
|
teleport: TeleportEffect,
|
||||||
|
'time-stop': TimeStopEffect,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
|
|||||||
42
src/module/powers/timeStop.js
Normal file
42
src/module/powers/timeStop.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import { PowerEffect } from './basePowers.js';
|
||||||
|
|
||||||
|
export class TimeStopEffect extends PowerEffect {
|
||||||
|
get name() {
|
||||||
|
return 'Time Stop';
|
||||||
|
}
|
||||||
|
|
||||||
|
get icon() {
|
||||||
|
return 'icons/magic/time/hourglass-tilted-gray.webp';
|
||||||
|
}
|
||||||
|
|
||||||
|
get duration() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
get isTargeted() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
get isRaisable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
get basePowerPoints() {
|
||||||
|
return 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
get description() {
|
||||||
|
let desc = super.description;
|
||||||
|
desc += `<p>Stop time for all but the caster, granting [[/r 1d4+1]] new turns
|
||||||
|
immediately after this one. During these turns the caster may act as normal
|
||||||
|
on their current Action Card.
|
||||||
|
`;
|
||||||
|
if (this.data.raise) {
|
||||||
|
desc += `With the raise, the caster may choose to draw a new Action Card each turn.
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
desc += `</p><p><em>Time stop</em> ends if any of the caster's action affect
|
||||||
|
another character or creature.</p>`;
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user