- backend: add summoner spells - backend: add build variants - backend: builds are now storing full tree with runes (keystones) - backend: build trees are split on starter items and merged on runes - frontend: computing core tree now - frontend: variant selectors
94 lines
1.8 KiB
TypeScript
94 lines
1.8 KiB
TypeScript
declare global {
|
|
/**
|
|
* Represents an item in the build tree
|
|
*/
|
|
interface ItemTree {
|
|
count: number
|
|
data: number
|
|
children: ItemTree[]
|
|
}
|
|
|
|
/**
|
|
* Represents a complete build with runes and items
|
|
*/
|
|
interface Build {
|
|
runeKeystone: number
|
|
runes: Rune[]
|
|
items: ItemTree
|
|
bootsFirst: number
|
|
count: number
|
|
boots: Array<{ count: number; data: number }>
|
|
suppItems: Array<{ count: number; data: number }>
|
|
startItems: Array<{ count: number; data: number }>
|
|
pickrate: number
|
|
}
|
|
|
|
/**
|
|
* Represents champion build information (array of builds)
|
|
*/
|
|
type Builds = Array<Build>
|
|
|
|
/**
|
|
* Represents a rune configuration
|
|
*/
|
|
interface Rune {
|
|
count: number
|
|
primaryStyle: number
|
|
secondaryStyle: number
|
|
selections: number[]
|
|
pickrate: number
|
|
}
|
|
|
|
/**
|
|
* Represents counter data for a champion
|
|
*/
|
|
interface MatchupData {
|
|
championId: number
|
|
winrate: number
|
|
games: number
|
|
championName: string
|
|
championAlias: string
|
|
}
|
|
|
|
/**
|
|
* Represents lane-specific champion data
|
|
*/
|
|
interface LaneData {
|
|
data: string
|
|
count: number
|
|
winningMatches: number
|
|
losingMatches: number
|
|
winrate: number
|
|
pickrate: number
|
|
builds?: Builds
|
|
summonerSpells: Array<{ id: number; count: number; pickrate: number }>
|
|
matchups?: MatchupData[]
|
|
}
|
|
|
|
/**
|
|
* Represents complete champion data
|
|
*/
|
|
interface ChampionData {
|
|
id: number
|
|
name: string
|
|
alias: string
|
|
gameCount: number
|
|
winrate: number
|
|
pickrate: number
|
|
lanes: LaneData[]
|
|
}
|
|
|
|
/**
|
|
* Champion summary from CDragon
|
|
*/
|
|
interface ChampionSummary {
|
|
id: number
|
|
name: string
|
|
alias: string
|
|
squarePortraitPath: string
|
|
// Add other relevant fields as needed
|
|
}
|
|
}
|
|
|
|
export {}
|