UNPKG

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
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)); }