cambridge-modpack/tetris/rulesets/cultris.lua
2023-04-04 13:53:02 +07:00

43 lines
885 B
Lua

local SRS = require 'tetris.rulesets.standard_ace'
local Cultris = SRS:extend()
Cultris.name = "Cultris II"
Cultris.hash = "Cultris"
Cultris.colourscheme = {
I = "G",
L = "M",
J = "B",
S = "C",
Z = "W",
O = "Y",
T = "R",
}
Cultris.wallkicks = {
{x=-1, y=0}, {x=1, y=0}, {x=0, y=1}, {x=-1, y=1}, {x=1, y=1}, {x=-2, y=0}, {x=2, y=0}
}
function Cultris:attemptWallkicks(piece, new_piece, rot_dir, grid)
local kicks = Cultris.wallkicks
assert(piece.rotation ~= new_piece.rotation)
for idx, offset in pairs(kicks) do
kicked_piece = new_piece:withOffset(offset)
if grid:canPlacePiece(kicked_piece) then
self:onPieceRotate(piece, grid)
piece:setRelativeRotation(rot_dir)
piece:setOffset(offset)
return
end
end
end
function Cultris:onPieceMove() end
function Cultris:onPieceRotate() end
function Cultris:get180RotationValue() return 2 end
return Cultris