From febb5d546cd7c268dfe36d177ed2d8e932c58d8e Mon Sep 17 00:00:00 2001 From: Ishaan Bhardwaj Date: Mon, 2 Nov 2020 16:12:05 -0500 Subject: [PATCH] Score overhauls --- tetris/modes/big_a2.lua | 27 +++++++++++++------------- tetris/modes/ck.lua | 19 +++++++++--------- tetris/modes/demon_mode.lua | 19 +++++++++--------- tetris/modes/marathon_a1.lua | 34 ++++++++++++++++----------------- tetris/modes/marathon_a2.lua | 26 ++++++++++++++----------- tetris/modes/marathon_a3.lua | 23 +++++++++++----------- tetris/modes/phantom_mania.lua | 19 +++++++++--------- tetris/modes/phantom_mania2.lua | 19 +++++++++--------- tetris/modes/strategy.lua | 19 +++++++++--------- tetris/modes/survival_2020.lua | 19 +++++++++--------- tetris/modes/survival_a1.lua | 33 ++++++++++++++++---------------- tetris/modes/survival_a2.lua | 23 +++++++++++----------- tetris/modes/survival_a3.lua | 21 ++++++++++---------- tetris/modes/tgmplus.lua | 23 +++++++++++----------- 14 files changed, 170 insertions(+), 154 deletions(-) diff --git a/tetris/modes/big_a2.lua b/tetris/modes/big_a2.lua index 56fb086..2ec0a40 100755 --- a/tetris/modes/big_a2.lua +++ b/tetris/modes/big_a2.lua @@ -127,20 +127,21 @@ function MarathonA2Game:onLineClear(cleared_row_count) end function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines) - if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end - cleared_lines = cleared_lines / 2 - self:updateGrade(cleared_lines) - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo * self.bravo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + cleared_lines = cleared_lines / 2 + self:updateGrade(cleared_lines) + if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo * self.bravo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end local grade_point_bonuses = { diff --git a/tetris/modes/ck.lua b/tetris/modes/ck.lua index b9090be..ae5affa 100644 --- a/tetris/modes/ck.lua +++ b/tetris/modes/ck.lua @@ -172,16 +172,17 @@ function SurvivalCKGame:onPieceLock(piece, cleared_row_count) end function SurvivalCKGame:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) - ) - self.lines = self.lines + cleared_lines - self.combo = self.combo + cleared_lines - 1 - else + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end self.drop_bonus = 0 - self.combo = 1 end end diff --git a/tetris/modes/demon_mode.lua b/tetris/modes/demon_mode.lua index 16e7dbc..1fad30c 100644 --- a/tetris/modes/demon_mode.lua +++ b/tetris/modes/demon_mode.lua @@ -187,16 +187,17 @@ function DemonModeGame:updateSectionTimes(old_level, new_level) end function DemonModeGame:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) - ) - self.lines = self.lines + cleared_lines - self.combo = self.combo + cleared_lines - 1 - else + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end self.drop_bonus = 0 - self.combo = 1 end end diff --git a/tetris/modes/marathon_a1.lua b/tetris/modes/marathon_a1.lua index 2f6eaa8..de89917 100644 --- a/tetris/modes/marathon_a1.lua +++ b/tetris/modes/marathon_a1.lua @@ -137,30 +137,30 @@ function MarathonA1Game:onLineClear(cleared_row_count) self:checkGMRequirements(self.level, self.level + cleared_row_count) if not self.clear then local new_level = math.min(self.level + cleared_row_count, 999) - if self.level == 999 then + if new_level == 999 then self.clear = true else - self.level = new_level - end + self.level = new_level end end function MarathonA1Game:updateScore(level, drop_bonus, cleared_lines) - if self.grid:checkForBravo(cleared_lines) then - self.bravo = 4 - self.bravos = self.bravos + 1 - else self.bravo = 1 end - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo * self.bravo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + if self.grid:checkForBravo(cleared_lines) then + self.bravo = 4 + self.bravos = self.bravos + 1 + else self.bravo = 1 end + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo * self.bravo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end function MarathonA1Game:checkGMRequirements(old_level, new_level) diff --git a/tetris/modes/marathon_a2.lua b/tetris/modes/marathon_a2.lua index b54b999..a55354c 100644 --- a/tetris/modes/marathon_a2.lua +++ b/tetris/modes/marathon_a2.lua @@ -126,17 +126,21 @@ function MarathonA2Game:onPieceEnter() end end -function MarathonA2Game:onLineClear(cleared_row_count) - self:updateSectionTimes(self.level, self.level + cleared_row_count) - self.level = math.min(self.level + cleared_row_count, 999) - if self.level == 999 and not self.clear then - self.clear = true - if self:qualifiesForMRoll() then - self.grade = 32 - end - self.grid:clear() - self.roll_frames = -150 - end +function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines) + if not self.clear then + self:updateGrade(cleared_lines) + if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo * self.bravo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 + end end function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines) diff --git a/tetris/modes/marathon_a3.lua b/tetris/modes/marathon_a3.lua index d9bac3f..7470955 100644 --- a/tetris/modes/marathon_a3.lua +++ b/tetris/modes/marathon_a3.lua @@ -225,18 +225,19 @@ function MarathonA3Game:updateSectionTimes(old_level, new_level) end function MarathonA3Game:updateScore(level, drop_bonus, cleared_lines) - self:updateGrade(cleared_lines) - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + self:updateGrade(cleared_lines) + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end local grade_point_bonuses = { diff --git a/tetris/modes/phantom_mania.lua b/tetris/modes/phantom_mania.lua index bab6c9d..a83e936 100644 --- a/tetris/modes/phantom_mania.lua +++ b/tetris/modes/phantom_mania.lua @@ -117,16 +117,17 @@ function PhantomManiaGame:onLineClear(cleared_row_count) end function PhantomManiaGame:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) - ) - self.lines = self.lines + cleared_lines - self.combo = self.combo + cleared_lines - 1 - else + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end self.drop_bonus = 0 - self.combo = 1 end end diff --git a/tetris/modes/phantom_mania2.lua b/tetris/modes/phantom_mania2.lua index ff01659..b0fb1b9 100644 --- a/tetris/modes/phantom_mania2.lua +++ b/tetris/modes/phantom_mania2.lua @@ -181,16 +181,17 @@ function PhantomMania2Game:onHold() end function PhantomMania2Game:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) - ) - self.lines = self.lines + cleared_lines - self.combo = self.combo + cleared_lines - 1 - else + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end self.drop_bonus = 0 - self.combo = 1 end end diff --git a/tetris/modes/strategy.lua b/tetris/modes/strategy.lua index 70578b7..20e4e59 100644 --- a/tetris/modes/strategy.lua +++ b/tetris/modes/strategy.lua @@ -99,16 +99,17 @@ function StrategyGame:onLineClear(cleared_row_count) end function StrategyGame:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) - ) - self.lines = self.lines + cleared_lines - self.combo = self.combo + cleared_lines - 1 - else + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end self.drop_bonus = 0 - self.combo = 1 end end diff --git a/tetris/modes/survival_2020.lua b/tetris/modes/survival_2020.lua index d15860a..8db03fb 100644 --- a/tetris/modes/survival_2020.lua +++ b/tetris/modes/survival_2020.lua @@ -174,16 +174,17 @@ function Survival2020Game:onLineClear(cleared_row_count) end function Survival2020Game:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) - ) - self.lines = self.lines + cleared_lines - self.combo = self.combo + cleared_lines - 1 - else + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end self.drop_bonus = 0 - self.combo = 1 end end diff --git a/tetris/modes/survival_a1.lua b/tetris/modes/survival_a1.lua index 3a0224c..f978a49 100644 --- a/tetris/modes/survival_a1.lua +++ b/tetris/modes/survival_a1.lua @@ -109,30 +109,31 @@ function SurvivalA1Game:onLineClear(cleared_row_count) self:checkGMRequirements(self.level, self.level + cleared_row_count) if not self.clear then local new_level = math.min(self.level + cleared_row_count, 999) - if self.level == 999 then + if new_level == 999 then self.clear = true else - self.level = new_level + self.level = new_level end end end function SurvivalA1Game:updateScore(level, drop_bonus, cleared_lines) - if self.grid:checkForBravo(cleared_lines) then - self.bravo = 4 - self.bravos = self.bravos + 1 - else self.bravo = 1 end - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo * self.bravo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + if self.grid:checkForBravo(cleared_lines) then + self.bravo = 4 + self.bravos = self.bravos + 1 + else self.bravo = 1 end + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo * self.bravo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end function SurvivalA1Game:checkGMRequirements(old_level, new_level) diff --git a/tetris/modes/survival_a2.lua b/tetris/modes/survival_a2.lua index fbd13db..8f6fec2 100644 --- a/tetris/modes/survival_a2.lua +++ b/tetris/modes/survival_a2.lua @@ -108,18 +108,19 @@ function SurvivalA2Game:onLineClear(cleared_row_count) end function SurvivalA2Game:updateScore(level, drop_bonus, cleared_lines) - if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo * self.bravo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo * self.bravo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end function SurvivalA2Game:getLetterGrade() diff --git a/tetris/modes/survival_a3.lua b/tetris/modes/survival_a3.lua index 106c2b8..c298797 100644 --- a/tetris/modes/survival_a3.lua +++ b/tetris/modes/survival_a3.lua @@ -166,17 +166,18 @@ function SurvivalA3Game:onPieceLock(piece, cleared_row_count) end function SurvivalA3Game:updateScore(level, drop_bonus, cleared_lines) - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end function SurvivalA3Game:updateSectionTimes(old_level, new_level) diff --git a/tetris/modes/tgmplus.lua b/tetris/modes/tgmplus.lua index c7f77a6..a91e652 100644 --- a/tetris/modes/tgmplus.lua +++ b/tetris/modes/tgmplus.lua @@ -137,18 +137,19 @@ function TGMPlusGame:advanceBottomRow() end function TGMPlusGame:updateScore(level, drop_bonus, cleared_lines) - if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end - if cleared_lines > 0 then - self.combo = self.combo + (cleared_lines - 1) * 2 - self.score = self.score + ( - (math.ceil((level + cleared_lines) / 4) + drop_bonus) * - cleared_lines * self.combo * self.bravo - ) - self.lines = self.lines + cleared_lines - else - self.combo = 1 + if not self.clear then + if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end + if cleared_lines > 0 then + self.combo = self.combo + (cleared_lines - 1) * 2 + self.score = self.score + ( + (math.ceil((level + cleared_lines) / 4) + drop_bonus) * + cleared_lines * self.combo * self.bravo + ) + else + self.combo = 1 + end + self.drop_bonus = 0 end - self.drop_bonus = 0 end function TGMPlusGame:drawGrid(ruleset)