stats in-game

This commit is contained in:
2025-03-28 21:00:46 +01:00
parent be071bd606
commit 0f026635f6
11 changed files with 164 additions and 39 deletions

View File

@@ -13,6 +13,8 @@ GameParameters::GameParameters(Gamemode gamemode, const Player& controls) :
void GameParameters::reset() {
this->clearedLines = 0;
this->grade = 0;
switch (this->gamemode) {
// lowest gravity
case SPRINT : {this->level = 1; break;}
@@ -30,13 +32,13 @@ void GameParameters::reset() {
this->updateStats();
}
void GameParameters::clearLines(int lineNumber) {
void GameParameters::lockedPiece(const LineClear& lineClear) {
switch (this->gamemode) {
// modes where level increases
case MARATHON :
case MASTER : {
int previousLines = this->clearedLines;
this->clearedLines += lineNumber;
this->clearedLines += lineClear.lines;
// level increments every 10 lines, stats only changes on level up
if (previousLines / 10 < this->clearedLines / 10) {
@@ -46,7 +48,11 @@ void GameParameters::clearLines(int lineNumber) {
break;
}
// other modes
default : this->clearedLines += lineNumber;
default : this->clearedLines += lineClear.lines;
}
if (!((lineClear.lines == 0) && ((this->grade % 100) == 99))) {
this->grade += (1 + lineClear.lines);
}
}
@@ -210,6 +216,10 @@ int GameParameters::getLevel() const {
return this->level;
}
int GameParameters::getGrade() const {
return this->grade;
}
int GameParameters::getNextQueueLength() const {
return this->nextQueueLength;
}