lol-constants
Version:
League of Legends constants, functions, and types. Provides a plathera of functions to easily convert between ID, Name, and Key for champions, items, summoner spells, and runes.
80 lines (79 loc) • 3.05 kB
JavaScript
import { RuneTrees, Runes, StatRunes, StatRunesInSlot, runeKeys, runeNames, runeTreeKeys, runeTreeNames, statRuneNames, } from '../objects/generated/Runes';
/** Get a rune by its **id**, **key**, or **name**. */
export function getRune(id_key_name) {
if (typeof id_key_name == 'number')
return Runes[id_key_name];
if (isRuneKey(id_key_name))
return Runes[runeKeys[id_key_name]];
return Runes[runeNames[id_key_name]];
}
export function getStatRune(id_name, slot) {
const statRuneSlot = slot;
if (typeof id_name == 'number') {
const statRuneId = id_name;
if (statRuneSlot == null) {
return StatRunes[statRuneId];
}
else {
const x = StatRunesInSlot[statRuneId];
if (statRuneSlot in StatRunesInSlot[statRuneId])
return StatRunesInSlot[statRuneId][statRuneSlot];
console.warn(`ended up with empty object while getting stat rune`);
return {}; // should not reach
}
}
else {
const statRuneName = id_name;
if (statRuneSlot == null) {
return StatRunes[statRuneNames[statRuneName]];
}
else {
const statRuneId = statRuneNames[statRuneName];
if (statRuneSlot in StatRunesInSlot[statRuneId])
return StatRunesInSlot[statRuneId][statRuneSlot];
console.warn(`ended up with empty object while getting stat rune`);
return {}; // should not reach
}
}
}
/** Get a rune tree by its **id**, **key**, or **name**. */
export function getRuneTree(id_key_name) {
if (typeof id_key_name == 'number')
return RuneTrees[id_key_name];
if (isRuneTreeKey(id_key_name))
return RuneTrees[runeTreeKeys[id_key_name]];
return RuneTrees[runeTreeNames[id_key_name]];
}
export function isRuneId(id) {
return typeof id == 'number' && id in Runes;
}
export function isRuneKey(key) {
return typeof key == 'string' && key in runeKeys;
}
export function isRuneName(name) {
return typeof name == 'string' && name in runeNames;
}
export function isRune(id_key_name) {
return typeof id_key_name == 'number' ? isRuneId(id_key_name) : (isRuneKey(id_key_name) || isRuneName(id_key_name));
}
export function isStatRuneId(id) {
return typeof id == 'number' && id in StatRunes;
}
export function isStatRuneName(name) {
return typeof name == 'string' && name in statRuneNames;
}
export function isStatRune(id_name) {
return typeof id_name == 'number' ? isStatRuneId(id_name) : isStatRuneName(id_name);
}
export function isRuneTreeId(id) {
return typeof id == 'number' && id in RuneTrees;
}
export function isRuneTreeKey(key) {
return typeof key == 'string' && key in runeTreeKeys;
}
export function isRuneTreeName(name) {
return typeof name == 'string' && name in runeTreeNames;
}
export function isRuneTree(id_key_name) {
return typeof id_key_name == 'number' ? isRuneTreeId(id_key_name) : (isRuneTreeKey(id_key_name) || isRuneTreeName(id_key_name));
}