@slippi/slippi-js
Version:
Official Project Slippi Javascript SDK
57 lines (53 loc) • 1.84 kB
JavaScript
;
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;