Score overhauls

This commit is contained in:
Ishaan Bhardwaj 2020-11-02 16:12:05 -05:00
parent c6482c423e
commit febb5d546c
14 changed files with 170 additions and 154 deletions

View File

@ -127,20 +127,21 @@ function MarathonA2Game:onLineClear(cleared_row_count)
end end
function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines) function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines)
if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end if not self.clear then
cleared_lines = cleared_lines / 2 cleared_lines = cleared_lines / 2
self:updateGrade(cleared_lines) self:updateGrade(cleared_lines)
if cleared_lines > 0 then if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo * self.bravo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo * self.bravo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
local grade_point_bonuses = { local grade_point_bonuses = {

View File

@ -172,16 +172,17 @@ function SurvivalCKGame:onPieceLock(piece, cleared_row_count)
end end
function SurvivalCKGame:updateScore(level, drop_bonus, cleared_lines) function SurvivalCKGame:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.score = self.score + ( if cleared_lines > 0 then
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.combo = self.combo + (cleared_lines - 1) * 2
cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) self.score = self.score + (
) (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.lines = self.lines + cleared_lines cleared_lines * self.combo
self.combo = self.combo + cleared_lines - 1 )
else else
self.combo = 1
end
self.drop_bonus = 0 self.drop_bonus = 0
self.combo = 1
end end
end end

View File

@ -187,16 +187,17 @@ function DemonModeGame:updateSectionTimes(old_level, new_level)
end end
function DemonModeGame:updateScore(level, drop_bonus, cleared_lines) function DemonModeGame:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.score = self.score + ( if cleared_lines > 0 then
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.combo = self.combo + (cleared_lines - 1) * 2
cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) self.score = self.score + (
) (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.lines = self.lines + cleared_lines cleared_lines * self.combo
self.combo = self.combo + cleared_lines - 1 )
else else
self.combo = 1
end
self.drop_bonus = 0 self.drop_bonus = 0
self.combo = 1
end end
end end

View File

@ -137,30 +137,30 @@ function MarathonA1Game:onLineClear(cleared_row_count)
self:checkGMRequirements(self.level, self.level + cleared_row_count) self:checkGMRequirements(self.level, self.level + cleared_row_count)
if not self.clear then if not self.clear then
local new_level = math.min(self.level + cleared_row_count, 999) local new_level = math.min(self.level + cleared_row_count, 999)
if self.level == 999 then if new_level == 999 then
self.clear = true self.clear = true
else else
self.level = new_level self.level = new_level
end
end end
end end
function MarathonA1Game:updateScore(level, drop_bonus, cleared_lines) function MarathonA1Game:updateScore(level, drop_bonus, cleared_lines)
if self.grid:checkForBravo(cleared_lines) then if not self.clear then
self.bravo = 4 if self.grid:checkForBravo(cleared_lines) then
self.bravos = self.bravos + 1 self.bravo = 4
else self.bravo = 1 end self.bravos = self.bravos + 1
if cleared_lines > 0 then else self.bravo = 1 end
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo * self.bravo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo * self.bravo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
function MarathonA1Game:checkGMRequirements(old_level, new_level) function MarathonA1Game:checkGMRequirements(old_level, new_level)

View File

@ -126,17 +126,21 @@ function MarathonA2Game:onPieceEnter()
end end
end end
function MarathonA2Game:onLineClear(cleared_row_count) function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines)
self:updateSectionTimes(self.level, self.level + cleared_row_count) if not self.clear then
self.level = math.min(self.level + cleared_row_count, 999) self:updateGrade(cleared_lines)
if self.level == 999 and not self.clear then if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end
self.clear = true if cleared_lines > 0 then
if self:qualifiesForMRoll() then self.combo = self.combo + (cleared_lines - 1) * 2
self.grade = 32 self.score = self.score + (
end (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.grid:clear() cleared_lines * self.combo * self.bravo
self.roll_frames = -150 )
end else
self.combo = 1
end
self.drop_bonus = 0
end
end end
function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines) function MarathonA2Game:updateScore(level, drop_bonus, cleared_lines)

View File

@ -225,18 +225,19 @@ function MarathonA3Game:updateSectionTimes(old_level, new_level)
end end
function MarathonA3Game:updateScore(level, drop_bonus, cleared_lines) function MarathonA3Game:updateScore(level, drop_bonus, cleared_lines)
self:updateGrade(cleared_lines) if not self.clear then
if cleared_lines > 0 then self:updateGrade(cleared_lines)
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
local grade_point_bonuses = { local grade_point_bonuses = {

View File

@ -117,16 +117,17 @@ function PhantomManiaGame:onLineClear(cleared_row_count)
end end
function PhantomManiaGame:updateScore(level, drop_bonus, cleared_lines) function PhantomManiaGame:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.score = self.score + ( if cleared_lines > 0 then
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.combo = self.combo + (cleared_lines - 1) * 2
cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) self.score = self.score + (
) (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.lines = self.lines + cleared_lines cleared_lines * self.combo
self.combo = self.combo + cleared_lines - 1 )
else else
self.combo = 1
end
self.drop_bonus = 0 self.drop_bonus = 0
self.combo = 1
end end
end end

View File

@ -181,16 +181,17 @@ function PhantomMania2Game:onHold()
end end
function PhantomMania2Game:updateScore(level, drop_bonus, cleared_lines) function PhantomMania2Game:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.score = self.score + ( if cleared_lines > 0 then
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.combo = self.combo + (cleared_lines - 1) * 2
cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) self.score = self.score + (
) (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.lines = self.lines + cleared_lines cleared_lines * self.combo
self.combo = self.combo + cleared_lines - 1 )
else else
self.combo = 1
end
self.drop_bonus = 0 self.drop_bonus = 0
self.combo = 1
end end
end end

View File

@ -99,16 +99,17 @@ function StrategyGame:onLineClear(cleared_row_count)
end end
function StrategyGame:updateScore(level, drop_bonus, cleared_lines) function StrategyGame:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.score = self.score + ( if cleared_lines > 0 then
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.combo = self.combo + (cleared_lines - 1) * 2
cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) self.score = self.score + (
) (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.lines = self.lines + cleared_lines cleared_lines * self.combo
self.combo = self.combo + cleared_lines - 1 )
else else
self.combo = 1
end
self.drop_bonus = 0 self.drop_bonus = 0
self.combo = 1
end end
end end

View File

@ -174,16 +174,17 @@ function Survival2020Game:onLineClear(cleared_row_count)
end end
function Survival2020Game:updateScore(level, drop_bonus, cleared_lines) function Survival2020Game:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.score = self.score + ( if cleared_lines > 0 then
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.combo = self.combo + (cleared_lines - 1) * 2
cleared_lines * (cleared_lines * 2 - 1) * (self.combo * 2 - 1) self.score = self.score + (
) (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
self.lines = self.lines + cleared_lines cleared_lines * self.combo
self.combo = self.combo + cleared_lines - 1 )
else else
self.combo = 1
end
self.drop_bonus = 0 self.drop_bonus = 0
self.combo = 1
end end
end end

View File

@ -109,30 +109,31 @@ function SurvivalA1Game:onLineClear(cleared_row_count)
self:checkGMRequirements(self.level, self.level + cleared_row_count) self:checkGMRequirements(self.level, self.level + cleared_row_count)
if not self.clear then if not self.clear then
local new_level = math.min(self.level + cleared_row_count, 999) local new_level = math.min(self.level + cleared_row_count, 999)
if self.level == 999 then if new_level == 999 then
self.clear = true self.clear = true
else else
self.level = new_level self.level = new_level
end end
end end
end end
function SurvivalA1Game:updateScore(level, drop_bonus, cleared_lines) function SurvivalA1Game:updateScore(level, drop_bonus, cleared_lines)
if self.grid:checkForBravo(cleared_lines) then if not self.clear then
self.bravo = 4 if self.grid:checkForBravo(cleared_lines) then
self.bravos = self.bravos + 1 self.bravo = 4
else self.bravo = 1 end self.bravos = self.bravos + 1
if cleared_lines > 0 then else self.bravo = 1 end
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo * self.bravo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo * self.bravo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
function SurvivalA1Game:checkGMRequirements(old_level, new_level) function SurvivalA1Game:checkGMRequirements(old_level, new_level)

View File

@ -108,18 +108,19 @@ function SurvivalA2Game:onLineClear(cleared_row_count)
end end
function SurvivalA2Game:updateScore(level, drop_bonus, cleared_lines) function SurvivalA2Game:updateScore(level, drop_bonus, cleared_lines)
if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end if not self.clear then
if cleared_lines > 0 then if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo * self.bravo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo * self.bravo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
function SurvivalA2Game:getLetterGrade() function SurvivalA2Game:getLetterGrade()

View File

@ -166,17 +166,18 @@ function SurvivalA3Game:onPieceLock(piece, cleared_row_count)
end end
function SurvivalA3Game:updateScore(level, drop_bonus, cleared_lines) function SurvivalA3Game:updateScore(level, drop_bonus, cleared_lines)
if cleared_lines > 0 then if not self.clear then
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
function SurvivalA3Game:updateSectionTimes(old_level, new_level) function SurvivalA3Game:updateSectionTimes(old_level, new_level)

View File

@ -137,18 +137,19 @@ function TGMPlusGame:advanceBottomRow()
end end
function TGMPlusGame:updateScore(level, drop_bonus, cleared_lines) function TGMPlusGame:updateScore(level, drop_bonus, cleared_lines)
if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end if not self.clear then
if cleared_lines > 0 then if self.grid:checkForBravo(cleared_lines) then self.bravo = 4 else self.bravo = 1 end
self.combo = self.combo + (cleared_lines - 1) * 2 if cleared_lines > 0 then
self.score = self.score + ( self.combo = self.combo + (cleared_lines - 1) * 2
(math.ceil((level + cleared_lines) / 4) + drop_bonus) * self.score = self.score + (
cleared_lines * self.combo * self.bravo (math.ceil((level + cleared_lines) / 4) + drop_bonus) *
) cleared_lines * self.combo * self.bravo
self.lines = self.lines + cleared_lines )
else else
self.combo = 1 self.combo = 1
end
self.drop_bonus = 0
end end
self.drop_bonus = 0
end end
function TGMPlusGame:drawGrid(ruleset) function TGMPlusGame:drawGrid(ruleset)