UNPKG

@slippi/slippi-js

Version:
57 lines (53 loc) 1.84 kB
'use strict'; var characters = require('./characters.json.cjs'); const DEFAULT_COLOR = "Default"; const UnknownCharacter = { id: -1, name: "Unknown Character", shortName: "Unknown", colors: [DEFAULT_COLOR], }; function generateCharacterInfo(id, info) { var _a, _b; if (!info) { return UnknownCharacter; } return { id, name: info.name, shortName: (_a = info.shortName) !== null && _a !== void 0 ? _a : info.name, colors: [DEFAULT_COLOR, ...((_b = info.colors) !== null && _b !== void 0 ? _b : [])], }; } function getAllCharacters() { return Object.entries(characters.default) .map(([id, data]) => generateCharacterInfo(parseInt(id, 10), data)) .sort((a, b) => a.id - b.id); } function getCharacterInfo(externalCharacterId) { const data = characters.default[externalCharacterId.toString()]; return generateCharacterInfo(externalCharacterId, data); } function getCharacterShortName(externalCharacterId) { const character = getCharacterInfo(externalCharacterId); return character.shortName; } function getCharacterName(externalCharacterId) { const character = getCharacterInfo(externalCharacterId); return character.name; } // Return a human-readable color from a characterCode. function getCharacterColorName(externalCharacterId, characterColor) { const character = getCharacterInfo(externalCharacterId); const color = character.colors[characterColor]; if (color) { return color; } return DEFAULT_COLOR; } exports.UnknownCharacter = UnknownCharacter; exports.getAllCharacters = getAllCharacters; exports.getCharacterColorName = getCharacterColorName; exports.getCharacterInfo = getCharacterInfo; exports.getCharacterName = getCharacterName; exports.getCharacterShortName = getCharacterShortName;