warframe-worldstate-parser
Version:
An Open parser for Warframe's Worldstate in Javascript
58 lines (49 loc) • 1.55 kB
JavaScript
import { missionType, node, sortieModDesc, sortieModifier, insist } from 'warframe-worldstate-data/utilities';
import mdConfig from '../supporting/MarkdownSettings.js';
/**
* Represents a sortie variant
* @class
*/
export default class SortieVariant {
/**
* Make the SortieVariant
* @class
* @param {object} data Sortie variant data
* @param {object} deps Dependencies
* @param {string} deps.locale Locale to use for translations
*/
constructor(data, { locale = 'en' } = { locale: 'en' }) {
insist(data);
/**
* The variant's mission type
* @type {string}
*/
this.missionType = missionType(data.missionType, locale);
this.missionTypeKey = missionType(data.missionType, 'en');
/**
* The variant's modifier
* @type {string}
*/
this.modifier = sortieModifier(data.modifierType, locale);
/**
* The variant's modifier description
* @type {string}
*/
this.modifierDescription = sortieModDesc(data.modifierType, locale);
/**
* The node where the variant takes place
* @type {string}
*/
this.node = node(data.node, locale);
this.nodeKey = node(data.node, 'en');
}
/**
* Returns a string representation of the sortie variant
* @returns {string} string representation
*/
toString() {
return this.modifier
? `${this.node.padEnd(25, ' ')} | ${this.modifier.padEnd(20, ' ')} | ${this.missionType}${mdConfig.lineEnd}`
: `${this.node.padEnd(25, ' ')} | ${this.missionType}${mdConfig.lineEnd}`;
}
}