From 750cb2621d7fc7601556fe8b9b984bcd6fc2d07c Mon Sep 17 00:00:00 2001 From: Ishaan Bhardwaj Date: Mon, 11 Jan 2021 15:25:15 -0500 Subject: [PATCH] Width update --- tetris/modes/4wide.lua | 70 +++++++++++++++++++++++++++------------ tetris/modes/big_meme.lua | 11 ++++++ 2 files changed, 60 insertions(+), 21 deletions(-) diff --git a/tetris/modes/4wide.lua b/tetris/modes/4wide.lua index 3680d0b..01159db 100644 --- a/tetris/modes/4wide.lua +++ b/tetris/modes/4wide.lua @@ -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 diff --git a/tetris/modes/big_meme.lua b/tetris/modes/big_meme.lua index bc6bdf4..848109e 100644 --- a/tetris/modes/big_meme.lua +++ b/tetris/modes/big_meme.lua @@ -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 \ No newline at end of file