Add whack a pumpkin and best score, move games to game_info and setup_game, make a modular basegame template and build upon that, fix game settings not using the current game specific settings

This commit is contained in:
csd4ni3l
2025-11-02 21:23:09 +01:00
parent 7094603bd7
commit 0904eede95
13 changed files with 245 additions and 102 deletions

View File

@@ -13,6 +13,9 @@
<li class="nav-item">
<a class="nav-link" href="/pumpkin_memory">Pumpkin Memory</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/whack_a_pumpkin">Whack a Pumpkin</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/countdown">Countdown</a>
</li>

34
templates/gamebase.jinja2 Normal file
View File

@@ -0,0 +1,34 @@
{% extends "base.jinja2" %}
{% block nav %}
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
{% block gamenav %}{% endblock %}
<li class="nav-item">
<a class="nav-link" href="/countdown">Countdown</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/profile">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/logout">Logout</a>
</li>
{% endblock %}
{% block body %}
<div class="position-absolute top-50 start-50 translate-middle text-center">
<h1>WIP!!! Not part of this week!!</h1>
<div id="game-container">
<canvas width="1280", height="720" id="canvas"></canvas>
</div>
</div>
<script src="/static/js/gameui.js"></script>
<script src="/static/js/game.js"></script>
{% block game_js %}{% endblock %}
<script>
window.addEventListener("DOMContentLoaded", () => {
start_game();
});
</script>
{% endblock %}

View File

@@ -12,6 +12,9 @@
<li class="nav-item">
<a class="nav-link" href="/pumpkin_memory">Pumpkin Memory</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/whack_a_pumpkin">Whack a Pumpkin</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/countdown">Countdown</a>
</li>

View File

@@ -12,6 +12,9 @@
<li class="nav-item">
<a class="nav-link" href="/pumpkin_memory">Pumpkin Memory</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/whack_a_pumpkin">Whack a Pumpkin</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/countdown">Countdown</a>
</li>
@@ -33,6 +36,7 @@
{% if logged_in_account %}
<p class="mb-1">Logged in as: {{ username }}</p>
<p class="mb-1" id="pumpkin_roll_highscore">Pumpkin Roll High Score: Loading...</p>
<p class="mb-1" id="whackapumpkin_highscore">Whack a Pumpkin High Score: Loading...</p>
<p class="mb-1" id="memory_best_easy">Pumpkin Memory (Easy) Best Time: Loading...</p>
<p class="mb-1" id="memory_best_medium">Pumpkin Memory (Medium) Best Time: Loading...</p>
<p class="mb-1" id="memory_best_hard">Pumpkin Memory (Hard) Best Time: Loading...</p>
@@ -101,15 +105,22 @@
setup_pumpkin("current_pumpkin_canvas", "currentclearBtn", "currentlightBtn", "change_pattern_form", "current_pattern_field", {{ grid_size }});
setup_pumpkin("new_pumpkin_canvas", "newclearBtn", "newlightBtn", "change_pattern_form", "new_pattern_field", {{ grid_size }});
function formatTime(time) {
return time !== "None" ? `${time}s` : time;
}
pumpkin_roll_highscore = localStorage.getItem("pumpkin_roll_highscore") || "None"
whackapumpkin_highscore = localStorage.getItem("whackapumpkin_highscore") || "None"
memory_best_easy = localStorage.getItem("memory_best_easy") || "None"
memory_best_medium = localStorage.getItem("memory_best_medium") || "None"
memory_best_hard = localStorage.getItem("memory_best_hard") || "None"
memory_best_extrahard = localStorage.getItem("memory_best_extrahard") || "None"
document.getElementById("pumpkin_roll_highscore").textContent = `Pumpkin Roll High Score: ${pumpkin_roll_highscore}`
document.getElementById("memory_best_easy").textContent = `Pumpkin Memory (Easy) Best Time: ${memory_best_easy}`
document.getElementById("memory_best_medium").textContent = `Pumpkin Memory (Medium) Best Time: ${memory_best_medium}`
document.getElementById("memory_best_hard").textContent = `Pumpkin Memory (Hard) Best Time: ${memory_best_hard}`
document.getElementById("memory_best_extrahard").textContent = `Pumpkin Memory (Extra Hard) Best Time: ${memory_best_extrahard}`
document.getElementById("pumpkin_roll_highscore").textContent = `Pumpkin Roll High Score: ${formatTime(pumpkin_roll_highscore)}`;
document.getElementById("whackapumpkin_highscore").textContent = `Whack a Pumpkin High Score: ${formatTime(whackapumpkin_highscore)}`;
document.getElementById("memory_best_easy").textContent = `Pumpkin Memory (Easy) Best Time: ${formatTime(memory_best_easy)}`;
document.getElementById("memory_best_medium").textContent = `Pumpkin Memory (Medium) Best Time: ${formatTime(memory_best_medium)}`;
document.getElementById("memory_best_hard").textContent = `Pumpkin Memory (Hard) Best Time: ${formatTime(memory_best_hard)}`;
document.getElementById("memory_best_extrahard").textContent = `Pumpkin Memory (Extra Hard) Best Time: ${formatTime(memory_best_extrahard)}`;
</script>
{% endblock body %}

View File

@@ -1,11 +1,6 @@
{% extends "base.jinja2" %}
{% extends "gamebase.jinja2" %}
{% block title %}Pumpkin Memory{% endblock title %}
{% block nav %}
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
{% block gamenav %}
<li class="nav-item">
<a class="nav-link" href="/pumpkin_roll">Pumpkin Roll</a>
</li>
@@ -13,30 +8,10 @@
<a class="nav-link active" aria-current="page" href="/pumpkin_memory">Pumpkin Memory</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/countdown">Countdown</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/profile">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/logout">Logout</a>
<a class="nav-link" href="/whack_a_pumpkin">Whack a Pumpkin</a>
</li>
{% endblock %}
{% block body %}
{% block title %}Pumpkin Memory{% endblock title %}
<div class="position-absolute top-50 start-50 translate-middle text-center">
<h1>WIP!!! Not part of this week!!</h1>
<div id="game-container">
<canvas width="1280", height="720" id="canvas"></canvas>
</div>
</div>
<script src="/static/js/gameui.js"></script>
<script src="/static/js/game.js"></script>
<script src="/static/js/pumpkin_memory.js"></script>
<script>
window.addEventListener("DOMContentLoaded", () => {
start_game();
});
</script>
{% endblock %}
{% block game_js %}<script src="/static/js/pumpkin_memory.js"></script>{% endblock %}

View File

@@ -1,11 +1,6 @@
{% extends "base.jinja2" %}
{% extends "gamebase.jinja2" %}
{% block title %}Pumpkin Roll{% endblock title %}
{% block nav %}
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
</li>
{% block gamenav %}
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/pumpkin_roll">Pumpkin Roll</a>
</li>
@@ -13,29 +8,10 @@
<a class="nav-link" href="/pumpkin_memory">Pumpkin Memory</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/countdown">Countdown</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/profile">Profile</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/logout">Logout</a>
<a class="nav-link" href="/whack_a_pumpkin">Whack a Pumpkin</a>
</li>
{% endblock %}
{% block body %}
<div class="position-absolute top-50 start-50 translate-middle text-center">
<h1>WIP!!! Not part of this week!!</h1>
<div id="game-container">
<canvas width="1280", height="720" id="canvas"></canvas>
</div>
</div>
<script src="/static/js/gameui.js"></script>
<script src="/static/js/game.js"></script>
<script src="/static/js/pumpkin_roll.js"></script>
<script>
window.addEventListener("DOMContentLoaded", () => {
start_game();
});
</script>
{% endblock %}
{% block title %}Pumpkin Roll{% endblock title %}
{% block game_js %}<script src="/static/js/pumpkin_roll.js"></script>{% endblock %}

View File

@@ -0,0 +1,17 @@
{% extends "gamebase.jinja2" %}
{% block gamenav %}
<li class="nav-item">
<a class="nav-link" href="/pumpkin_roll">Pumpkin Roll</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/pumpkin_memory">Pumpkin Memory</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/whack_a_pumpkin">Whack a Pumpkin</a>
</li>
{% endblock %}
{% block title %}Whack a Pumpkin{% endblock title %}
{% block game_js %}<script src="/static/js/whack_a_pumpkin.js"></script>{% endblock %}