diff --git a/app/bloonsa_game/models.py b/app/bloonsa_game/models.py
index 2cc4e24..ab32376 100644
--- a/app/bloonsa_game/models.py
+++ b/app/bloonsa_game/models.py
@@ -64,5 +64,5 @@ class LevelScore(models.Model):
def __str__(self):
clearState = "✅" if self.clear else "❌"
- return (f"{self.player.user.username}'s {clearState} @ {self.level.title}"
- f"[🎈{self.pops} | 🎯{self.darts_left}]")
\ No newline at end of file
+ return (f"{self.player.user.username}'s {clearState} @ {self.level.title}: "
+ f"🎈{self.pops} | 🎯{self.darts_left}")
\ No newline at end of file
diff --git a/app/bloonsa_game/static/bloonsa_game/css/append.css b/app/bloonsa_game/static/bloonsa_game/css/append.css
index a52b493..67b67ce 100644
--- a/app/bloonsa_game/static/bloonsa_game/css/append.css
+++ b/app/bloonsa_game/static/bloonsa_game/css/append.css
@@ -22,4 +22,8 @@
margin: 10px;
height: 90px;
width: 244px;
+}
+
+.wide.centered {
+ white-space: nowrap;
}
\ No newline at end of file
diff --git a/app/bloonsa_game/static/bloonsa_game/js/flash_handler.js b/app/bloonsa_game/static/bloonsa_game/js/flash_handler.js
index 715dd29..3d42abd 100644
--- a/app/bloonsa_game/static/bloonsa_game/js/flash_handler.js
+++ b/app/bloonsa_game/static/bloonsa_game/js/flash_handler.js
@@ -1,3 +1,7 @@
-function as3_new_level_started(id) {
- console.log(id)
+function bloonsa_new_level_started(id) {
+ console.log("new level started! id=" + id)
+}
+
+function bloonsa_level_completed(id) {
+ console.log("level completed! id=" + id)
}
\ No newline at end of file
diff --git a/app/bloonsa_game/static/bloonsa_game/misc/bloons_unlimited.swf b/app/bloonsa_game/static/bloonsa_game/misc/bloons_unlimited.swf
index bc156f3..5d0c062 100644
Binary files a/app/bloonsa_game/static/bloonsa_game/misc/bloons_unlimited.swf and b/app/bloonsa_game/static/bloonsa_game/misc/bloons_unlimited.swf differ
diff --git a/app/bloonsa_game/templates/bloonsa_game/base.html b/app/bloonsa_game/templates/bloonsa_game/base.html
index b43dcb7..95287d8 100644
--- a/app/bloonsa_game/templates/bloonsa_game/base.html
+++ b/app/bloonsa_game/templates/bloonsa_game/base.html
@@ -68,11 +68,13 @@
{% block content %}{% endblock content %}
-
+
diff --git a/app/bloonsa_game/templates/bloonsa_game/profilebox.html b/app/bloonsa_game/templates/bloonsa_game/profilebox.html
index 2402b81..bf3ce7f 100644
--- a/app/bloonsa_game/templates/bloonsa_game/profilebox.html
+++ b/app/bloonsa_game/templates/bloonsa_game/profilebox.html
@@ -2,6 +2,6 @@
{{ user }}
Levels played: {{ player.levels_played }}
- Levels beaten: {{ player.levels_beaten }} / {{ player.total_levels }}
+ Levels beaten: {{ player.levels_beaten }} / {{ total_levels }}
\ No newline at end of file
diff --git a/app/bloonsa_game/views.py b/app/bloonsa_game/views.py
index ed404f5..e944af6 100644
--- a/app/bloonsa_game/views.py
+++ b/app/bloonsa_game/views.py
@@ -23,7 +23,7 @@ class GameView(TemplateView):
bloonsa_util.tag_player(request=request)
# This init is for accounts made with 'createsuperuser' or originating from bloonsb
player = bloonsa_util.init_player(request=request)
- # TODO get player object here with init_player to use in html template03.3.005
+ total_levels = Level.objects.count()
if type(kwargs.get("pk")) is int:
level = Level.objects.get(id=kwargs["pk"])
@@ -33,11 +33,14 @@ class GameView(TemplateView):
note=level)
return render(request, "bloonsa_game/level.html", context={
"player": player,
+ "total_levels": total_levels,
"flashVars": level.getFlashVars(seperator="&"),
"levelTitle": level.title,
"levelAuthor": level.author,
})
- return render(request, "bloonsa_game/game.html", context={"player": player})
+ return render(request, "bloonsa_game/game.html",
+ context={"player": player,
+ "total_levels": total_levels,})
class WIPView(TemplateView):
diff --git a/app/users/models.py b/app/users/models.py
index d571387..bf03b1b 100644
--- a/app/users/models.py
+++ b/app/users/models.py
@@ -4,10 +4,6 @@ from django.contrib.auth.models import User
class Player(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True, related_name="player")
- # Savedata
- #bloonsa_levelsPlayed = models.ManyToManyField(Level, blank=True, related_name="player")
- #bloonsa_level_scores = models.ManyToManyField(LevelScore, blank=True, related_name="player")
- #bloonsa_levelRatings = models.ManyToManyField(LevelRating, blank=True, related_name="player")
# Logging
creationIP = models.GenericIPAddressField()
latestIP = models.GenericIPAddressField()
diff --git a/app/users/util.py b/app/users/util.py
index f1fea98..4849c54 100644
--- a/app/users/util.py
+++ b/app/users/util.py
@@ -41,7 +41,7 @@ class BloonsaUtil:
return
player = Player.objects.filter(user=request.user).first()
if not player:
- self.init_player(request=request)
+ player = self.init_player(request=request)
if player.banned:
# TODO message popup?
logout(request)
@@ -51,11 +51,11 @@ class BloonsaUtil:
player.latestIP = self.get_ip(request=request)
player.save()
- def log(self, action, note, player=None, request=None):
+ def log(self, action, note=None, player=None, request=None):
if not self.tracking:
return
if not player:
- if not request and not request.user.is_authenticated:
+ if not request or not request.user.is_authenticated:
return
player = self.init_player(request=request)
item = Log(player=player,