modified: app.py
new file: templates/buzzer_settings.html modified: templates/playerselect.html modified: templates/quiz_buzzer.html new file: templates/quiz_buzzer_multiplayer.html
This commit is contained in:
44
app.py
44
app.py
@@ -194,12 +194,19 @@ def quiz(playlist_id):
|
||||
all_tracks.append(track_info)
|
||||
|
||||
# Wähle das passende Template
|
||||
if buzzer_mode == '1':
|
||||
if buzzer_mode == '1' and local_multiplayer == '1':
|
||||
template_name = "quiz_buzzer_multiplayer.html"
|
||||
# Lade Spieler-Scores
|
||||
player_scores = session.get(f'player_scores_{playlist_id}', [0, 0, 0, 0])
|
||||
elif buzzer_mode == '1':
|
||||
template_name = "quiz_buzzer.html"
|
||||
player_scores = None
|
||||
elif local_multiplayer == '1':
|
||||
template_name = "quiz_multiplayer.html"
|
||||
player_scores = None
|
||||
else:
|
||||
template_name = "quiz.html"
|
||||
player_scores = None
|
||||
|
||||
return render_template(
|
||||
template_name,
|
||||
@@ -215,7 +222,8 @@ def quiz(playlist_id):
|
||||
translations=get_translations(),
|
||||
max_points=1000,
|
||||
grace_period=5,
|
||||
decay_rate=50
|
||||
decay_rate=50,
|
||||
player_scores=player_scores
|
||||
)
|
||||
|
||||
@app.route('/gamemodes/<playlist_id>')
|
||||
@@ -228,9 +236,28 @@ def gamemodes(playlist_id):
|
||||
def playerselect(playlist_id):
|
||||
"""Choose singleplayer or local multiplayer before starting the quiz."""
|
||||
game_mode = request.args.get('mode', 'artist')
|
||||
buzzer = request.args.get('buzzer', '0')
|
||||
user = session.get('user')
|
||||
|
||||
# Wenn Buzzer-Modus, redirect zu Einstellungen
|
||||
if buzzer == '1':
|
||||
return redirect(url_for('buzzer_settings', playlist_id=playlist_id, mode=game_mode))
|
||||
|
||||
return render_template('playerselect.html', playlist_id=playlist_id, game_mode=game_mode, translations=get_translations(), user=user)
|
||||
|
||||
@app.route('/buzzer_settings/<playlist_id>')
|
||||
def buzzer_settings(playlist_id):
|
||||
"""Configure buzzer mode settings before starting."""
|
||||
game_mode = request.args.get('mode', 'title')
|
||||
local_multiplayer = request.args.get('local_multiplayer', '0')
|
||||
user = session.get('user')
|
||||
return render_template('buzzer_settings.html',
|
||||
playlist_id=playlist_id,
|
||||
game_mode=game_mode,
|
||||
local_multiplayer=local_multiplayer == '1',
|
||||
translations=get_translations(),
|
||||
user=user)
|
||||
|
||||
@app.route("/search_track", methods=["POST"])
|
||||
def search_track():
|
||||
data = request.json
|
||||
@@ -324,6 +351,7 @@ def check_answer_buzzer():
|
||||
playlist_id = data.get('playlist_id')
|
||||
earned_points = data.get('earned_points', 0)
|
||||
all_tracks = data.get('all_tracks', [])
|
||||
player_id = data.get('player_id') # Für Multiplayer
|
||||
|
||||
# Originalwert für Vergleich speichern
|
||||
original_guess = guess
|
||||
@@ -340,8 +368,16 @@ def check_answer_buzzer():
|
||||
|
||||
# Score erhöhen mit Buzzer-Punkten, wenn richtig
|
||||
if is_correct and playlist_id:
|
||||
key = f'score_{playlist_id}'
|
||||
session[key] = session.get(key, 0) + earned_points
|
||||
if player_id:
|
||||
# Multiplayer: Update Spieler-Score
|
||||
key = f'player_scores_{playlist_id}'
|
||||
player_scores = session.get(key, [0, 0, 0, 0])
|
||||
player_scores[player_id - 1] += earned_points
|
||||
session[key] = player_scores
|
||||
else:
|
||||
# Singleplayer: Update Gesamt-Score
|
||||
key = f'score_{playlist_id}'
|
||||
session[key] = session.get(key, 0) + earned_points
|
||||
|
||||
# Bei falscher Antwort: Finde das eingegebene Lied in all_tracks
|
||||
guessed_track = None
|
||||
|
||||
Reference in New Issue
Block a user