feat: add leaderboard resetting
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user