1
0

feat: add leaderboard resetting

This commit is contained in:
2026-06-06 16:39:22 +08:00
parent 9f98b2cf4e
commit 26ddf5379e
3 changed files with 26 additions and 5 deletions
@@ -15,6 +15,7 @@ Rectangle {
required property SqlLeaderboardModel leaderboard required property SqlLeaderboardModel leaderboard
required property ListModel rounds required property ListModel rounds
required property GameService gameService
property QtObject selectedRound: rounds.get(0) property QtObject selectedRound: rounds.get(0)
property bool selected: false property bool selected: false
@@ -152,9 +153,22 @@ Rectangle {
} }
} }
} }
Button {
Layout.alignment: Qt.AlignHCenter
// buttonColor: UIStyle.highlightColor
// buttonBorderColor: UIStyle.highlightBorderColor
// textColor: UIStyle.textColor
text: "Reset"
onClicked: {
root.gameService.resetScore()
leaderboard.select()
}
}
} }
Item { Layout.fillHeight: true } Item { Layout.fillHeight: true }
} }
@@ -61,6 +61,7 @@ ApplicationWindow {
leaderboard: leaderboard leaderboard: leaderboard
rounds: rounds rounds: rounds
gameService: gameService
onRoundSelected: { onRoundSelected: {
idleView.visible = false idleView.visible = false
ongoingView.start() ongoingView.start()
+9 -3
View File
@@ -8,12 +8,12 @@ from PySide6.QtCore import QObject, Signal, Slot, Property, QEnum, Qt, QCoreAppl
from PySide6.QtGui import QGuiApplication from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine, QmlElement from PySide6.QtQml import QQmlApplicationEngine, QmlElement
from PySide6.QtSql import QSqlTableModel, QSqlDatabase from PySide6.QtSql import QSqlTableModel, QSqlDatabase
from sqlalchemy import create_engine from sqlalchemy import create_engine, update
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from star_resonance_tracer.proto.enum_chit_chat_channel_type_pb2 import ChitChatChannelType from star_resonance_tracer.proto.enum_chit_chat_channel_type_pb2 import ChitChatChannelType
from inventory_wars.game import Game from inventory_wars.game import Game
from inventory_wars.models import Base, ItemShare from inventory_wars.models import Base, ItemShare, User
from inventory_wars.scoring import FirstGuess, FirstThenHighest, HighestAmount from inventory_wars.scoring import FirstGuess, FirstThenHighest, HighestAmount
from inventory_wars.state import GameOngoing, GameIdle from inventory_wars.state import GameOngoing, GameIdle
@@ -129,7 +129,13 @@ class GameService(QObject):
return self.m_revealed return self.m_revealed
@Slot() @Slot()
def end(self): def resetScore(self) -> None:
stmt = update(User).values(score=0)
session.execute(stmt)
session.commit()
@Slot()
def end(self) -> None:
self.m_game.end() self.m_game.end()
self.stateChanged.emit() self.stateChanged.emit()