O Django Wars foi idealizado e desenvolvido no Django 1.4. Algumas funcionalidades aqui descritas podem não funcionar ou funcionar de forma diferente em outras versões do Django
Pra fechar toda a parte de programação de views, vamos fazer um ranking.
A essa altura do campeonato vocês já devem achar isso trivial, mas não custa nada.
Primeiro, adicionamos a entrada no urls.py
url(r'^rank/$', djangowars.views.player.rank, name='pagina_do_rank'),
Como o rank é uma lista de jogadores, a view estará dentro do aquivo de views dos players, views/players.py:
# pagina rank def rank(request): if not request.user.is_authenticated(): return redirect('pagina_de_login') #da um refrash no hp, energia e raiva do player jogador = request.user.get_profile() jogador.refresh() jogador.save() #pega a lista de 50 jogadores ordenado pelo xp rank = Player.objects.all().order_by("-experiencia")[:50] return render_to_response("rank.html", {"player": jogador, "vida": jogador.vida * 10, "rank": rank})
Por fim, só nos resta fazer um template bem bonitnho para listar os top players (rank.html).
<div class="container"> <p> Informações do usuário: Nível {{ player.nivel }} | Energia {{ player.energia_atual }}/{{ player.energia }} | Raiva {{ player.raiva_atual }}/{{ player.raiva }} HP: {{ player.hp }}/{{ vida }} | Carteira {{ player.carteira }} </p> {% if player.raiva > 0 %} <!--lista de rank com possibilidade de atacar os n00bs--> {% for alvo in rank %} <p>{{ alvo.user.username }} - Level {{ alvo.nivel }} - <a href="atacar/{{ alvo.id }}">ATACAR!!!</a></p> {% endfor %} {% else %} {% for alvo in rank %} <p>{{ alvo.user.username }} - Level {{ alvo.nivel }} - <a href="atacar/{{ alvo.id }}">ATACAR!!!</a></p> {% endfor %} {% endif %} </div> <!-- /container -->
Eitcha, esse template é o template de alvos modificado…
Mas ninguém precisa saber 😀
Senhores (e senhoras), gostaria de informá-los que esta foi a última vez que programamos Python nesse projeto.
Agora só falta a gente dar um tapa no visual pra ficar legalzinho e colocar no ar.
TA ACABANDO
AEEEEEEEEE!!!
Código fonte encontra-se em:
https://github.com/frenetic/django-wars