Width update

This commit is contained in:
Ishaan Bhardwaj 2021-01-11 15:25:15 -05:00
parent e67f431478
commit 750cb2621d
2 changed files with 60 additions and 21 deletions

View File

@ -1,6 +1,8 @@
require 'funcs'
local GameMode = require 'tetris.modes.gamemode'
local SurvivalA3Game = require 'tetris.modes.survival_a3'
local Grid = require 'tetris.components.grid'
local FourWideGame = SurvivalA3Game:extend()
@ -10,30 +12,56 @@ FourWideGame.tagline = "The board has gotten narrower! Can you survive the incre
function FourWideGame:initialize(ruleset)
self.super:initialize(ruleset)
self.grid:applyFourWide()
self.grid = Grid(4)
end
local cleared_row_levels = {1, 2, 4, 6}
function FourWideGame:onLineClear(cleared_row_count)
if not self.clear then
local new_level = self.level + cleared_row_levels[cleared_row_count]
self:updateSectionTimes(self.level, new_level)
if new_level >= 1300 or self:hitTorikan(self.level, new_level) then
self.clear = true
if new_level >= 1300 then
self.level = 1300
self.grid:clear()
self.roll_frames = -150
else
self.game_over = true
end
else
self.level = math.min(new_level, 1300)
end
self:advanceBottomRow(-cleared_row_count)
local function getLetterGrade(grade)
if grade == 0 then
return "1"
else
return "S" .. tostring(grade)
end
end
function FourWideGame:drawScoringInfo()
GameMode:drawScoringInfo()
love.graphics.setColor(1, 1, 1, 1)
local text_x = 160
love.graphics.setFont(font_3x5_2)
love.graphics.printf("GRADE", text_x, 120, 40, "left")
love.graphics.printf("SCORE", text_x, 200, 40, "left")
love.graphics.printf("LEVEL", text_x, 320, 40, "left")
local sg = self.grid:checkSecretGrade()
if sg >= 5 then
love.graphics.printf("SECRET GRADE", 240, 430, 180, "left")
end
if(self.coolregret_timer > 0) then
love.graphics.printf(self.coolregret_message, 64, 400, 160, "center")
self.coolregret_timer = self.coolregret_timer - 1
end
local current_section = math.floor(self.level / 100) + 1
self:drawSectionTimesWithSplits(current_section)
love.graphics.setFont(font_3x5_3)
if self.roll_frames > 3238 then love.graphics.setColor(1, 0.5, 0, 1)
elseif self.level >= 1300 and self.clear then love.graphics.setColor(0, 1, 0, 1) end
love.graphics.printf(getLetterGrade(math.floor(self.grade)), text_x, 140, 90, "left")
love.graphics.setColor(1, 1, 1, 1)
love.graphics.printf(self.score, text_x, 220, 90, "left")
love.graphics.printf(self.level, text_x, 340, 50, "right")
if self.clear then
love.graphics.printf(self.level, text_x, 370, 50, "right")
else
love.graphics.printf(math.floor(self.level / 100 + 1) * 100, text_x, 370, 50, "right")
end
if sg >= 5 then
love.graphics.printf(self.SGnames[sg], 240, 450, 180, "left")
end
self.grid:applyFourWide()
end
return FourWideGame

View File

@ -37,4 +37,15 @@ function BigMemeGame:onLineClear(cleared_row_count)
end
end
function BigMemeGame:advanceBottomRow(dx)
if self.level >= 500 and self.level < 1000 then
self.garbage = math.max(self.garbage + dx, 0)
if self.garbage >= self:getGarbageLimit() then
self.grid:copyBottomRow()
self.grid:copyBottomRow()
self.garbage = 0
end
end
end
return BigMemeGame