Refactored component API for rulesets with an arbitary...

...number of pieces (fixes #31)
This commit is contained in:
Ishaan Bhardwaj
2021-10-16 20:35:47 -04:00
parent 42f872a557
commit 6f4adf5aad
5 changed files with 44 additions and 24 deletions

View File

@@ -5,7 +5,7 @@ local playedReadySE = false
local playedGoSE = false
local Grid = require 'tetris.components.grid'
local Randomizer = require 'tetris.randomizers.bag7'
local Randomizer = require 'tetris.randomizers.randomizer'
local BagRandomizer = require 'tetris.randomizers.bag'
local GameMode = Object:extend()
@@ -100,13 +100,11 @@ end
function GameMode:initialize(ruleset)
-- generate next queue
self.used_randomizer = (
ruleset.pieces == self.randomizer.possible_pieces and
self.randomizer or
(
ruleset.pieces == 7 and
Randomizer() or
BagRandomizer(ruleset.pieces)
)
table.equalvalues(
table.keys(ruleset.colourscheme),
self.randomizer.possible_pieces
) and
self.randomizer or BagRandomizer(table.keys(ruleset.colourscheme))
)
self.ruleset = ruleset
for i = 1, math.max(self.next_queue_length, 1) do
@@ -700,7 +698,10 @@ end
function GameMode:drawNextQueue(ruleset)
local colourscheme
if ruleset.pieces == 7 then
if table.equalvalues(
self.used_randomizer.possible_pieces,
{"I", "J", "L", "O", "S", "T", "Z"}
) then
colourscheme = ({ruleset.colourscheme, ColourSchemes.Arika, ColourSchemes.TTC})[config.gamesettings.piece_colour]
else
colourscheme = ruleset.colourscheme