2017-11-24 00:16:22 +04:00
|
|
|
|
// i2_bot – Instinct PokememBro Bot
|
|
|
|
|
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
|
|
|
|
|
|
|
|
|
|
package statistics
|
|
|
|
|
|
|
|
|
|
import (
|
2018-02-13 22:05:32 +04:00
|
|
|
|
"source.wtfteam.pro/i2_bot/i2_bot/lib/dbmapping"
|
2017-11-24 00:16:22 +04:00
|
|
|
|
"strconv"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// SquadStatictics generates statistics message snippet. Public due to usage in chats list
|
|
|
|
|
func (s *Statistics) SquadStatictics(squadID int) string {
|
|
|
|
|
squadMembersWithInformation := []dbmapping.SquadPlayerFull{}
|
|
|
|
|
squadMembers := []dbmapping.SquadPlayer{}
|
|
|
|
|
|
2018-02-17 07:03:58 +04:00
|
|
|
|
squad, err := c.DataCache.GetSquadByID(squadID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
c.Log.Error(err.Error())
|
2017-11-24 00:16:22 +04:00
|
|
|
|
return "Невозможно получить информацию о данном отряде. Возможно, он пуст или произошла ошибка."
|
|
|
|
|
}
|
|
|
|
|
|
2018-02-17 07:03:58 +04:00
|
|
|
|
err = c.Db.Select(&squadMembers, c.Db.Rebind("SELECT * FROM squads_players WHERE squad_id=?"), squadID)
|
2017-11-24 00:16:22 +04:00
|
|
|
|
if err != nil {
|
|
|
|
|
c.Log.Error(err.Error())
|
|
|
|
|
return "Невозможно получить информацию о данном отряде. Возможно, он пуст или произошла ошибка."
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for i := range squadMembers {
|
|
|
|
|
fullInfo := dbmapping.SquadPlayerFull{}
|
|
|
|
|
|
2018-01-29 23:50:25 +04:00
|
|
|
|
playerRaw, err := c.DataCache.GetPlayerByID(squadMembers[i].PlayerID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
c.Log.Error(err.Error())
|
2018-02-06 13:53:19 +04:00
|
|
|
|
continue
|
2018-01-29 23:50:25 +04:00
|
|
|
|
}
|
|
|
|
|
profileRaw, err := c.DataCache.GetProfileByPlayerID(playerRaw.ID)
|
|
|
|
|
if err != nil {
|
|
|
|
|
c.Log.Error(err.Error())
|
2018-02-06 13:53:19 +04:00
|
|
|
|
continue
|
2018-01-29 23:50:25 +04:00
|
|
|
|
}
|
2017-11-24 00:16:22 +04:00
|
|
|
|
|
2018-02-17 07:03:58 +04:00
|
|
|
|
fullInfo.Squad = *squad
|
2018-01-29 23:50:25 +04:00
|
|
|
|
fullInfo.Player = *playerRaw
|
|
|
|
|
fullInfo.Profile = *profileRaw
|
2017-11-24 00:16:22 +04:00
|
|
|
|
|
|
|
|
|
squadMembersWithInformation = append(squadMembersWithInformation, fullInfo)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message := "Количество человек в отряде: " + strconv.Itoa(len(squadMembersWithInformation)) + "\n"
|
|
|
|
|
|
|
|
|
|
summAttack := 0
|
|
|
|
|
for i := range squadMembersWithInformation {
|
|
|
|
|
summAttack += squadMembersWithInformation[i].Profile.Power
|
|
|
|
|
}
|
|
|
|
|
message += "Суммарная атака: " + strconv.Itoa(summAttack) + " очков.\n"
|
|
|
|
|
|
|
|
|
|
return message
|
|
|
|
|
}
|