@plokkke/sw-rune
Version:
Library defining all utils for summoners war rune handling
50 lines • 1.76 kB
TypeScript
import { RUNE_QUALITIES, RUNE_SETS, RUNE_EFFECTS } from './constants';
export type RuneSlot = 1 | 2 | 3 | 4 | 5 | 6;
export type RuneGrade = 1 | 2 | 3 | 4 | 5 | 6;
export type RuneSetId = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 99;
export type RuneSet = (typeof RUNE_SETS)[number];
export type RuneEffectId = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12;
export type RuneEffect = (typeof RUNE_EFFECTS)[number];
export type RuneQualityId = 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | 14 | 15;
export type RuneQuality = (typeof RUNE_QUALITIES)[number];
export type RuneStat = {
effect: RuneEffect;
value: number;
};
export type Rune = {
isAncient: boolean;
isEquipped?: boolean;
slot: RuneSlot;
grade: RuneGrade;
quality: RuneQuality;
set: RuneSet;
level: number;
mainStat: RuneStat;
innateStat: RuneStat | null;
subStats: RuneStat[];
};
export type SWRune = {
class: RuneGrade;
extra: RuneQualityId;
set_id: RuneSetId;
slot_no: RuneSlot;
upgrade_curr: number;
pri_eff: [RuneEffectId, number];
prefix_eff: [RuneEffectId | 0, number];
sec_eff: [RuneEffectId, number][];
occupied_id: number;
};
export type RuneGenerationParams = {
isAncient?: boolean;
set?: RuneSet;
slot?: RuneSlot;
grade?: RuneGrade;
quality?: RuneQuality;
mainEffect?: RuneEffect;
innateEffect?: boolean | RuneEffect;
};
export declare function generate(options?: RuneGenerationParams): Rune;
export declare function upgrade(rune: Rune): Rune;
export declare function runeFromSW(rune: SWRune): Rune;
export declare function statFromSW([effectId, value]: [RuneEffectId, number]): RuneStat;
//# sourceMappingURL=index.d.ts.map