global leaderboard added
@ -113,6 +113,8 @@
|
||||
#global-leaderboard-iframe {
|
||||
height: 629px;
|
||||
width: 160px;
|
||||
overflow: hidden;
|
||||
// overflow: hidden;
|
||||
// overflow-y: scroll;
|
||||
// overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
@ -7,13 +7,14 @@
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.rowa {
|
||||
background-color: #563EAB;
|
||||
background-color: #348feb;
|
||||
}
|
||||
.rowb {
|
||||
background-color: #6B0047;
|
||||
background-color: #536DFE;
|
||||
}
|
||||
|
||||
.glb-position {
|
||||
@ -30,6 +31,7 @@
|
||||
width: 160px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
border-bottom: 4px solid #3455eb;
|
||||
}
|
||||
|
||||
.glb-main-info {
|
||||
@ -65,6 +67,15 @@
|
||||
}
|
||||
|
||||
.glb-rank-icon {
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.glb-beaten {
|
||||
color: #62eb4d;
|
||||
}
|
||||
|
||||
.glb-golds {
|
||||
color: #fcba03;
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 20 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/10.png
Normal file
|
After Width: | Height: | Size: 784 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/2.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/3.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/4.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/5.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/6.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/7.png
Normal file
|
After Width: | Height: | Size: 466 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/8.png
Normal file
|
After Width: | Height: | Size: 497 KiB |
BIN
app/bloonsa_game/static/bloonsa_game/img/ranks/9.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
@ -4,7 +4,7 @@
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="{% static 'bloonsa_game/css/append.css' %}"/>
|
||||
<div id="glb-global">
|
||||
{% for player in players %}
|
||||
<div class="rowa glb-entry">
|
||||
<div class="{% if forloop.counter|divisibleby:2 %}rowa{% else %}rowb{% endif %} glb-entry">
|
||||
<div class="glb-avatar-box">
|
||||
<img class="glb-avatar" src="{{ player.avatar.url }}" height=48px width=48px>
|
||||
</div>
|
||||
@ -18,13 +18,13 @@
|
||||
<object data="{% static 'bloonsa_game/img/levelinfo/wins.svg' %}"
|
||||
class="filter-orange glb-wins-img"
|
||||
type="image/svg+xml"></object>
|
||||
<span>{{ player.bloonsa_levels_beaten_count }}</span>
|
||||
<span class="glb-beaten">{{ player.bloonsa_levels_beaten_count }}</span>
|
||||
</div>
|
||||
<div class="glb-gdarts-box">
|
||||
<object data="{% static 'bloonsa_game/img/levelinfo/dart.svg' %}"
|
||||
class="filter-orange glb-darts-img"
|
||||
type="image/svg+xml"></object>
|
||||
<span>{{ player.bloonsa_dart_glitch_count }}</span>
|
||||
<span class="glb-golds">{{ player.bloonsa_dart_glitch_count }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glb-rank-box">
|
||||
|
||||
@ -4,6 +4,7 @@ from django.shortcuts import render
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from bloonsa_game.models import Level
|
||||
from settings.settings import DEBUG
|
||||
from users.models import Player
|
||||
from users.util import bloonsa_util, actions
|
||||
|
||||
@ -39,6 +40,7 @@ class GameView(TemplateView):
|
||||
|
||||
r = render(request, "bloonsa_game/game.html",
|
||||
context={"total_levels": total_levels,})
|
||||
if DEBUG:
|
||||
r["x-frame-options"] = "sameorigin"
|
||||
return r
|
||||
|
||||
@ -52,12 +54,12 @@ class LeaderboardGlobalView(TemplateView):
|
||||
golds=Count(F("bloonsa_level_scores__dart_glitch_ever"))
|
||||
).annotate(
|
||||
volforce=F("clears") + F("golds")
|
||||
).order_by("-volforce")[:100]
|
||||
for player in players:
|
||||
print(player.bloonsa_volforce_rating)
|
||||
).order_by("-volforce")[:10]
|
||||
|
||||
r = render(request, "bloonsa_game/modules/leaderboard_global.html",
|
||||
context={
|
||||
"players": players
|
||||
})
|
||||
if DEBUG:
|
||||
r["x-frame-options"] = "sameorigin"
|
||||
return r
|
||||
|
||||
@ -58,23 +58,21 @@ class Player(models.Model):
|
||||
|
||||
@property
|
||||
def bloonsa_volforce_rating(self):
|
||||
# TODO dont hardcode this
|
||||
total_levels = 66396
|
||||
beaten_levels = self.bloonsa_levels_beaten_count
|
||||
gold_levels = self.bloonsa_dart_glitch_count
|
||||
|
||||
estimated_limit = total_levels + ((total_levels / 100) * 20)
|
||||
estimated_max_rank = 80.00
|
||||
estimated_max_rank = 40.00
|
||||
player_score = beaten_levels + gold_levels
|
||||
player_volforce = player_score * (estimated_max_rank / estimated_limit)
|
||||
|
||||
import random
|
||||
player_volforce = random.randint(100, 2700) / 100
|
||||
|
||||
return "{:.2f}".format(player_volforce)
|
||||
|
||||
@property
|
||||
def bloonsa_rank(self):
|
||||
return math.floor(float(self.bloonsa_volforce_rating) / 100) + 1
|
||||
return math.floor(float(self.bloonsa_volforce_rating) / 4) + 1
|
||||
|
||||
|
||||
def __str__(self):
|
||||
|
||||