WCB shuffles colors every 50 pieces

pull/4/head
Ishaan Bhardwaj 2021-01-09 12:07:37 -05:00
parent 8d77fd6400
commit f42f28f9f2
1 changed files with 18 additions and 3 deletions

View File

@ -11,12 +11,14 @@ MarathonWCBGame.name = "Marathon WCB"
MarathonWCBGame.hash = "MarathonWCB"
MarathonWCBGame.tagline = "When all the pieces slip right to their destinations... can you keep up?"
local slow = false
function MarathonWCBGame:new()
MarathonWCBGame.super:new()
self.pieces = 0
self.randomizer = History6RollsRandomizer()
self.colour_changed = true
self.lock_drop = true
self.lock_hard_drop = true
@ -40,7 +42,7 @@ function MarathonWCBGame:getDropSpeed()
end
function MarathonWCBGame:getARR()
return 0
return slow and 1 or 0
end
function MarathonWCBGame:getARE()
@ -52,7 +54,7 @@ function MarathonWCBGame:getLineARE()
end
function MarathonWCBGame:getDasLimit()
return 0
return slow and 15 or 0
end
function MarathonWCBGame:getLineClearDelay()
@ -67,9 +69,21 @@ function MarathonWCBGame:getGravity()
return self.piece_is_active and 20 or 0
end
function MarathonWCBGame:advanceOneFrame()
function MarathonWCBGame:advanceOneFrame(inputs, ruleset)
if self.ready_frames == 0 then
self.frames = self.frames + 1
slow = inputs.hold
if self.pieces % 50 == 0 and not self.colour_changed then
local colours = copy(ruleset.colourscheme)
local pieces = {}
for k, v in pairs(ruleset.colourscheme) do
table.insert(pieces, k)
end
for k, v in pairs(ruleset.colourscheme) do
ruleset.colourscheme[k] = colours[table.remove(pieces, math.random(#pieces))]
end
self.colour_changed = true
end
end
return true
end
@ -89,6 +103,7 @@ end
function MarathonWCBGame:onPieceLock()
self.super:onPieceLock()
self.piece_is_active = false
self.colour_changed = false
self.pieces = self.pieces + 1
end