Joker now has a 21-tall board, Tengen added
parent
86c3006962
commit
ccb032ad4c
|
@ -1,6 +1,7 @@
|
||||||
require 'funcs'
|
require 'funcs'
|
||||||
|
|
||||||
local GameMode = require 'tetris.modes.gamemode'
|
local GameMode = require 'tetris.modes.gamemode'
|
||||||
|
local Grid = require 'tetris.components.grid'
|
||||||
local Piece = require 'tetris.components.piece'
|
local Piece = require 'tetris.components.piece'
|
||||||
|
|
||||||
local DTETRandomizer = require 'tetris.randomizers.dtet'
|
local DTETRandomizer = require 'tetris.randomizers.dtet'
|
||||||
|
@ -16,6 +17,7 @@ JokerGame.tagline = "One of the hardest modes! Can you retain your stock to leve
|
||||||
function JokerGame:new()
|
function JokerGame:new()
|
||||||
self.super:new()
|
self.super:new()
|
||||||
|
|
||||||
|
self.grid = Grid(10, 25)
|
||||||
self.randomizer = DTETRandomizer()
|
self.randomizer = DTETRandomizer()
|
||||||
|
|
||||||
self.level = 50
|
self.level = 50
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
local Piece = require 'tetris.components.piece'
|
||||||
|
local Ruleset = require 'tetris.rulesets.ruleset'
|
||||||
|
|
||||||
|
local Tengen = Ruleset:extend()
|
||||||
|
|
||||||
|
Tengen.name = "Tengen"
|
||||||
|
Tengen.hash = "Tengen"
|
||||||
|
Tengen.colourscheme = {
|
||||||
|
I = "R",
|
||||||
|
J = "O",
|
||||||
|
L = "M",
|
||||||
|
O = "B",
|
||||||
|
S = "G",
|
||||||
|
T = "Y",
|
||||||
|
Z = "C"
|
||||||
|
}
|
||||||
|
|
||||||
|
Tengen.spawn_positions = {
|
||||||
|
I = { x=3, y=4 },
|
||||||
|
J = { x=4, y=5 },
|
||||||
|
L = { x=4, y=5 },
|
||||||
|
O = { x=4, y=5 },
|
||||||
|
S = { x=4, y=5 },
|
||||||
|
T = { x=4, y=5 },
|
||||||
|
Z = { x=4, y=5 },
|
||||||
|
}
|
||||||
|
|
||||||
|
Tengen.big_spawn_positions = {
|
||||||
|
I = { x=1, y=2 },
|
||||||
|
J = { x=2, y=3 },
|
||||||
|
L = { x=2, y=3 },
|
||||||
|
O = { x=2, y=3 },
|
||||||
|
S = { x=2, y=3 },
|
||||||
|
T = { x=2, y=3 },
|
||||||
|
Z = { x=2, y=3 },
|
||||||
|
}
|
||||||
|
|
||||||
|
Tengen.block_offsets = {
|
||||||
|
I={
|
||||||
|
{ {x=0, y=0}, {x=1, y=0}, {x=2, y=0}, {x=3, y=0} },
|
||||||
|
{ {x=1, y=0}, {x=1, y=1}, {x=1, y=2}, {x=1, y=3} },
|
||||||
|
{ {x=0, y=0}, {x=1, y=0}, {x=2, y=0}, {x=3, y=0} },
|
||||||
|
{ {x=1, y=0}, {x=1, y=1}, {x=1, y=2}, {x=1, y=3} },
|
||||||
|
},
|
||||||
|
J={
|
||||||
|
{ {x=-1, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=-1, y=0}, {x=-1, y=1} },
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=1, y=-1}, {x=1, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=0, y=0}, {x=-1, y=1}, {x=0, y=1} },
|
||||||
|
},
|
||||||
|
L={
|
||||||
|
{ {x=1, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=-1, y=-1}, {x=-1, y=0}, {x=-1, y=1}, {x=0, y=1} },
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=1, y=-1}, {x=-1, y=0} },
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=0, y=0}, {x=0, y=1} },
|
||||||
|
},
|
||||||
|
O={
|
||||||
|
{ {x=0, y=-1}, {x=1, y=-1}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=1, y=-1}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=1, y=-1}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=1, y=-1}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
},
|
||||||
|
S={
|
||||||
|
{ {x=0, y=-1}, {x=1, y=-1}, {x=-1, y=0}, {x=0, y=0} },
|
||||||
|
{ {x=-1, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=0, y=1} },
|
||||||
|
{ {x=0, y=-1}, {x=1, y=-1}, {x=-1, y=0}, {x=0, y=0} },
|
||||||
|
{ {x=-1, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=0, y=1} },
|
||||||
|
},
|
||||||
|
T={
|
||||||
|
{ {x=0, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=-1, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=-1, y=1} },
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=1, y=-1}, {x=0, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=0, y=1} },
|
||||||
|
},
|
||||||
|
Z={
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=-1, y=1} },
|
||||||
|
{ {x=-1, y=-1}, {x=0, y=-1}, {x=0, y=0}, {x=1, y=0} },
|
||||||
|
{ {x=0, y=-1}, {x=-1, y=0}, {x=0, y=0}, {x=-1, y=1} },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- Component functions.
|
||||||
|
|
||||||
|
function Tengen:attemptWallkicks(piece, new_piece, rot_dir, grid)
|
||||||
|
|
||||||
|
-- O doesn't kick
|
||||||
|
if (piece.shape == "O") then return end
|
||||||
|
|
||||||
|
if (grid:canPlacePiece(new_piece:withOffset({x=-1, y=0}))) then
|
||||||
|
piece:setRelativeRotation(rot_dir):setOffset({x=-1, y=0})
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function Tengen:onPieceDrop(piece, grid)
|
||||||
|
piece.lock_delay = 0 -- step reset
|
||||||
|
end
|
||||||
|
|
||||||
|
function Tengen:get180RotationValue()
|
||||||
|
return 3
|
||||||
|
end
|
||||||
|
|
||||||
|
function Tengen:getDefaultOrientation() return 3 end -- downward facing pieces by default
|
||||||
|
|
||||||
|
return Tengen
|
Loading…
Reference in New Issue