[C# .Net] APIs oficiais da SuperCell
Você sabia que a SuperCell, desenvolvedora de jogos para celular, disponibiliza apis oficiais e gratuitas para leitura de dados dos jogos BrawlStars, Clash Royale e Clash of Clans?
Fiquei curioso um dia, mas precisamente em 20/02/2022, e fui procurar alguma api para ler informações do jogo que estava jogando bastante na época, o BrawlStars.
Achei alguns apis não-oficiais, contudo, achei também essa página: https://developer.brawlstars.com/
Ao acessar, verifiquei que a documentação era simples, mas era o que eu precisava.
Criei meu token de acesso para autenticar na api, e fiz uma pequena aplicação, para monitorar alguns estatiscas do jogo, durante uma sessão de gameplay.
A aplicação rodando pode ser vista nesse video: https://www.youtube.com/watch?v=jExhvY8x7h8
Ela é essa barra amarela na parte inferior da tela.
Quando a aplicação inicia é armazendo em uma variável o total de troféus, por exemplo, e a cada 5 segundos a aplicação consulta a api novamente. Verificando o número atual de troféus e subtraindo da variavel inicial.
Isso também é feito para indicar o total de vitórias e o saldo de vitórias obtido durante a sessão de gameplay.
O código e relativamente simples, e parte principal é essa abaixo.
private int vitorias = 0;
private int derrotas = 0;
private int trofeus = 0;
private int vitoriasInicio = 0;
private int trofeusInicio = 0;
private void Player()
{
var client = new RestClient("https://api.brawlstars.com/v1/players/[gamertag]");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer .....");
IRestResponse response = client.Execute(request);
PlayerRequest resultPlayer = JsonConvert.DeserializeObject<PlayerRequest>(response.Content);
if (vitoriasInicio <= 0)
{
vitoriasInicio = resultPlayer.SoloVictories + resultPlayer.DuoVictories + resultPlayer._3vs3Victories;
}
vitorias = resultPlayer.SoloVictories + resultPlayer.DuoVictories + resultPlayer._3vs3Victories;
if (trofeusInicio <= 0)
{
trofeusInicio = resultPlayer.Trophies;
}
trofeus = resultPlayer.Trophies;
lbVitoria.Text = "Total de vitórias: " + vitorias;
lbTrofeus.Text = "Total de Troféus: " + trofeus;
lbVitoriasSaldo.Text = "Saldo de vitórias: " + (vitorias - vitoriasInicio);
lbTrofeusSaldo.Text = "Saldo de troféus: " + (trofeus - trofeusInicio);
}
É um código em C# relativamente simples, e pretendo liberar um vídeo depois comentando esse código.
Um grande abs.
Pessoal, Hoje lancei um vídeo mostrando essa implementação.
Caraca, que legal! Joguei Clash Royale por muito tempo (quando o jogo utilizava as cartas raízes Rsrs, agora acho que o jogo perdeu a essência de um Game Mobile).
Mas gostei muito da sua dica! Daria para desenvolver uma aplicação com algum Framework para praticar conceitos de UX e até mesmo para pôr em práticas conceitos do próprio framework consultando estatísticas reais da API.
Fica aí a sugestão para quem está aprendendo um novo Framework como Angular ou React, ou qualquer outro: consumir APIs como essas para criar projetos reais.
Cara estou tentando descobrir como usar imagem aqui no Tab. Já cliquei no ícone de ajuda mas não estou entendendo. Pode me ajudar?
Se alguem quiser ver o projeto todo, o codigo está aqui, contudo vai ter que alterar o token se quiser colocar o projeto pra rodar.
Pessoal, boa tarde. Hoje lancei um vídeo mostrando essa implementação.