82 lines
1.7 KiB
JavaScript
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;
|
|
}
|
|
}
|