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/statistics/squads.go

60 lines
1.9 KiB
Go
Raw Normal View History

2017-11-24 00:16:22 +04:00
// i2_bot Instinct PokememBro Bot
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
package statistics
import (
"strconv"
2018-05-02 07:25:39 +04:00
2018-05-19 12:14:25 +04:00
"github.com/fat0troll/i2_bot/lib/dbmapping"
2017-11-24 00:16:22 +04:00
)
// 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{}
squad, err := c.DataCache.GetSquadByID(squadID)
if err != nil {
c.Log.Error(err.Error())
2017-11-24 00:16:22 +04:00
return "Невозможно получить информацию о данном отряде. Возможно, он пуст или произошла ошибка."
}
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{}
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
}
profileRaw, err := c.DataCache.GetProfileByPlayerID(playerRaw.ID)
if err != nil {
c.Log.Error(err.Error())
2018-02-06 13:53:19 +04:00
continue
}
2017-11-24 00:16:22 +04:00
fullInfo.Squad = *squad
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
}