cambridge-modpack/tetris/modes/big_meme.lua

55 lines
1.3 KiB
Lua

require 'funcs'
local SurvivalA3Game = require 'tetris.modes.survival_a3'
local BigMemeGame = SurvivalA3Game:extend()
BigMemeGame.name = "Big Survival A3"
BigMemeGame.hash = "BigA3"
BigMemeGame.tagline = "The blocks are bigger and the speeds are faster!"
function BigMemeGame:new()
SurvivalA3Game:new()
end
function BigMemeGame:initialize(ruleset)
self.super:initialize(ruleset)
self.big_mode = true
end
local cleared_row_levels = {1, 2, 4, 6}
function BigMemeGame:onLineClear(cleared_row_count)
cleared_row_count = cleared_row_count / 2
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.big_mode = true
self.roll_frames = -150
else
self.game_over = true
end
else
self.level = math.min(new_level, 1300)
end
self:advanceBottomRow(-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