feat: set summoner role to jungle in live tab if he has a smite

This commit is contained in:
Valentin Kaelin 2020-06-12 23:58:09 +02:00
parent 93a46d3a9e
commit b335b53869
2 changed files with 18 additions and 4 deletions

View file

@ -142,13 +142,18 @@ class RoleIdentificationService {
* Get roles for the 5 players of a team
* @param championPositions
* @param composition
* @param jungle
*/
getRoles (championPositions, composition) {
getRoles (championPositions, composition, jungle = null) {
const identified = {}
let positions = {}
let secondaryPositions = null
let secondaryMetric = -Infinity
if(jungle) {
identified['JUNGLE'] = jungle
}
while (Object.keys(identified).length < composition.length - 1) {
let { bestPositions, bestMetric: metric, secondBestPositions: sbp } =
this._getPositions(championPositions, composition,

View file

@ -23,6 +23,13 @@ class LiveMatchTransformer extends MatchTransformer {
return participant
}
_getTeamRoles(team) {
const teamJunglers = team.filter(p => p.jungle)
const jungle = teamJunglers.length === 1 ? teamJunglers[0].champion : null
return RoleIdentificationService.getRoles(this.championRoles, team.map(p => p.champion), jungle)
}
/**
* Transform raw data from Riot API
* @param match data from Riot API, one live match
@ -37,10 +44,12 @@ class LiveMatchTransformer extends MatchTransformer {
let redRoles = []
if (this.championRoles) {
match.participants.map(p => {
p.teamId === 100 ? blueTeam.push(p.championId) : redTeam.push(p.championId)
const playerRole = { champion: p.championId, jungle: p.spell1Id === 11 || p.spell2Id === 11 }
p.teamId === 100 ? blueTeam.push(playerRole) : redTeam.push(playerRole)
})
blueRoles = RoleIdentificationService.getRoles(this.championRoles, blueTeam)
redRoles = RoleIdentificationService.getRoles(this.championRoles, redTeam)
blueRoles = this._getTeamRoles(blueTeam)
redRoles = this._getTeamRoles(redTeam)
}
for (const participant of match.participants) {