add reorged bolt effect

This commit is contained in:
Mike Bloy 2024-05-14 15:04:22 -05:00
parent eaf5b8a066
commit cf30214502
3 changed files with 96 additions and 79 deletions

View File

@ -51,7 +51,7 @@ export class BlindEffect extends PowerEffect {
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) {
const strong = this.data.mods.has('strong'); const strong = this.data.strong;
const doc = this.createEffectDocument(this.icon, `Blinded (${strong ? 'Strong, ' : ''}Raise)`, [ const doc = this.createEffectDocument(this.icon, `Blinded (${strong ? 'Strong, ' : ''}Raise)`, [
{ {
key: 'system.stats.globalMods.trait', key: 'system.stats.globalMods.trait',

94
src/module/powers/bolt.js Normal file
View File

@ -0,0 +1,94 @@
import { PowerEffect } from './basePowers.js';
export class BoltEffect extends PowerEffect {
get name() {
return 'Bolt';
}
get icon() {
return 'icons/skills/ranged/tracers-triple-orange.webp';
}
get duration() {
return 0;
}
get isTargeted() {
return true;
}
get isDamaging() {
return true;
}
get basePowerPoints() {
return 3;
}
get usePrimaryEffect() {
return false;
}
get modifiers() {
const mods = super.modifiers;
mods.push(
{
type: 'checkbox',
name: 'Damage',
value: 2,
id: 'damage',
epic: false,
effect: false,
},
{
type: 'checkbox',
name: 'Disintegrate',
value: 1,
id: 'disintigrate',
epic: true,
effect: false,
},
{
name: 'Greater Bolt',
type: 'checkbox',
value: 4,
id: 'greater',
epic: true,
effect: false,
},
{
name: 'Rate of Fire',
type: 'checkbox',
value: 2,
id: 'rof',
epic: true,
effect: false,
},
);
return mods;
}
get powerPoints() {
let total = super.powerPoints;
total += this.data.aoe === 'l' ? 1 : 0;
return total;
}
get description() {
const dmgDie = (this.data.greater ? 4 : this.data.damage ? 3 : 2) + (this.data.raise ? 1 : 0);
let desc = super.description + '<p>';
if (this.data.rof) {
desc += `Up to two bolts (RoF 2) do ${dmgDie}d6 damage each.`;
} else {
desc += `The bolt does ${dmgDie}d6 damage.`;
}
if (this.data.disintegrate) {
desc +=
'The bolt is <em>disintegrating</em>. If being used to break' +
' something, the damage dice can Ace. A creature Incapacitated by a ' +
'disintegrating bolt must make a Vigor roll or its body turns to dust';
}
desc += '</p>';
return desc;
}
}

View File

@ -7,84 +7,7 @@ import { BarrierEffect } from './barrier.js';
import { BeastFriendEffect } from './beastFriend.js'; import { BeastFriendEffect } from './beastFriend.js';
import { BlastEffect } from './blast.js'; import { BlastEffect } from './blast.js';
import { BlindEffect } from './blind.js'; import { BlindEffect } from './blind.js';
import { BoltEffect } from './bolt.js';
class BoltEffect extends PowerEffect {
get name() {
return 'Bolt';
}
get icon() {
return 'icons/magic/fire/explosion-fireball-large-red-orange.webp';
}
get duration() {
return 0;
}
get isTargeted() {
return true;
}
get isDamaging() {
return true;
}
get basePowerPoints() {
return 3;
}
get usePrimaryEffect() {
return false;
}
get modifiers() {
const mods = super.modifiers;
mods.push(
{ name: 'Damage', value: 2, id: 'damage', epic: false, effect: false },
{
name: 'Disintegrate',
value: 1,
id: 'disintigrate',
epic: true,
effect: false,
},
{
name: 'Greater Bolt',
value: 4,
id: 'greater',
epic: true,
effect: false,
},
{ name: 'Rate of Fire', value: 2, id: 'rof', epic: true, effect: false },
);
return mods;
}
get powerPoints() {
let total = super.powerPoints;
total += this.data.aoe === 'l' ? 1 : 0;
return total;
}
get description() {
const dmgDie =
(this.data.mods.has('greater') ? 4 : this.data.mods.has('damage') ? 3 : 2) + (this.data.raise ? 1 : 0);
let desc = super.description + '<p>';
if (this.data.mods.has('rof')) {
desc += `Up to two bolts (RoF 2) do ${dmgDie}d6 damage each.`;
} else {
desc += `The bolt does ${dmgDie}d6 damage.`;
}
if (this.data.mods.has('disintegrate')) {
desc +=
'The bolt is <em>disintegrating</em>. If being used to break' +
' something, the damage dice can Ace. A creature Incapacitated by a ' +
'disintegrating bolt must make a Vigor roll or its body turns to dust';
}
desc += '</p>';
return desc;
}
}
class BurrowEffect extends PowerEffect { class BurrowEffect extends PowerEffect {
get name() { get name() {