Archived
1
This repository has been archived on 2022-11-04. You can view files and clone it, but cannot push or open issues or pull requests.
i2_bot/lib/pokedexer/getters.go

82 lines
2.2 KiB
Go
Raw Normal View History

// i2_bot Instinct PokememBro Bot
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
package pokedexer
import (
2018-01-21 23:28:53 +04:00
"git.wtfteam.pro/fat0troll/i2_bot/lib/dbmapping"
)
// External functions
2017-10-13 03:52:04 +04:00
func (p *Pokedexer) getBestPokememes(playerID int) (map[int]*dbmapping.PokememeFull, bool) {
pokememesArray := make(map[int]*dbmapping.PokememeFull)
playerRaw, err := c.DataCache.GetPlayerByID(playerID)
2017-10-18 07:03:34 +04:00
if err != nil {
c.Log.Error(err.Error())
return pokememesArray, false
2017-10-18 07:03:34 +04:00
}
profileRaw, err := c.DataCache.GetProfileByPlayerID(playerRaw.ID)
2017-10-18 07:03:34 +04:00
if err != nil {
c.Log.Error(err.Error())
return pokememesArray, false
2017-10-18 07:03:34 +04:00
}
if playerRaw.LeagueID == 0 {
return pokememesArray, false
2017-10-18 07:03:34 +04:00
}
allPokememes := c.DataCache.GetAllPokememes()
if profileRaw.LevelID < 4 {
for i := range allPokememes {
if (allPokememes[i].Pokememe.Defence < profileRaw.Power) || (allPokememes[i].Pokememe.Purchaseable) {
if len(pokememesArray) < 5 {
if allPokememes[i].Pokememe.Grade == profileRaw.LevelID+1 {
pokememesArray[allPokememes[i].Pokememe.Attack] = allPokememes[i]
}
}
}
}
} else if profileRaw.LevelID > 8 {
// TODO: Remove it on 10th grade pokememes arrival
for i := range allPokememes {
if allPokememes[i].Pokememe.Grade == 9 {
matchLeague := false
for j := range allPokememes[i].Elements {
if allPokememes[i].Elements[j].LeagueID == playerRaw.LeagueID {
matchLeague = true
}
}
if matchLeague {
if (allPokememes[i].Pokememe.Defence < profileRaw.Power) || (allPokememes[i].Pokememe.Purchaseable) {
if len(pokememesArray) < 5 {
pokememesArray[allPokememes[i].Pokememe.Attack] = allPokememes[i]
}
}
}
}
}
} else {
for i := range allPokememes {
if allPokememes[i].Pokememe.Grade == profileRaw.LevelID+1 {
matchLeague := false
for j := range allPokememes[i].Elements {
if allPokememes[i].Elements[j].LeagueID == playerRaw.LeagueID {
matchLeague = true
}
2017-10-18 07:03:34 +04:00
}
if matchLeague {
if (allPokememes[i].Pokememe.Defence < profileRaw.Power) || (allPokememes[i].Pokememe.Purchaseable) {
if len(pokememesArray) < 5 {
pokememesArray[allPokememes[i].Pokememe.Attack] = allPokememes[i]
}
}
2017-10-18 07:03:34 +04:00
}
}
}
}
return pokememesArray, true
}