2024-05-23 17:04:29 -05:00

82 lines
1.7 KiB
JavaScript

import { PowerEffect } from './basePowers.js';
export class MindLinkEffect extends PowerEffect {
get name() {
return 'Mind Link';
}
get duration() {
return 50;
}
get icon() {
return 'icons/skills/social/diplomacy-unity-alliance.webp';
}
get hasAdditionalRecipients() {
return true;
}
get additionalRecipientCost() {
return 1;
}
get isTargeted() {
return true;
}
get basePowerPoints() {
return 1;
}
get modifiers() {
return [
...super.modifiers,
{
name: 'Broadcast',
id: 'broadcast',
value: 2,
type: 'checkbox',
default: false,
epic: true,
effect: false,
},
{
name: 'Long Distance Link',
id: 'longlink',
value: 3,
type: 'checkbox',
default: false,
epic: true,
effect: false,
},
];
}
get additionalRecipientCount() {
return Math.max(0, this.targets.length - 2);
}
get description() {
let text = super.description;
if (this.data.broadcast) {
text += `<p>The caster can broadcast a short message to everyone within
Smarts ✕${this.data.raise ? 8 : 4}.</p>`;
} else {
text += `<p>Create a telepathic link that functions like speach between
two minds.
`;
if (this.data.longlink) {
text += `The ends of the link may be anywhere on the same plane. `;
} else {
text += `Once activated, Range between linked minds is
${this.data.raise ? 'five miles' : 'one mile'}. `;
}
text += `</p><p>
If a linked character suffers a Wound, all others in the link must make
a Smarts roll or be Shaken (this can't cause a Wound).</p>`;
}
return text;
}
}