Fixed a few issues in KRS
parent
021ac90a71
commit
4a83f71fe2
|
@ -61,7 +61,6 @@ KRS.wallkicks_line = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function KRS:onPieceCreate(piece)
|
function KRS:onPieceCreate(piece)
|
||||||
piece.das_kicked = false
|
|
||||||
piece.recovery_frames = self.game:getLockDelay() * 15
|
piece.recovery_frames = self.game:getLockDelay() * 15
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -81,15 +80,10 @@ function KRS:onPieceRotate(piece)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function KRS:canPieceMove(piece)
|
function KRS:canPieceMove(piece) return true end
|
||||||
return not piece.das_kicked
|
|
||||||
end
|
|
||||||
|
|
||||||
function KRS:canPieceRotate(piece) return true end
|
function KRS:canPieceRotate(piece) return true end
|
||||||
|
|
||||||
function KRS:attemptRotate(new_inputs, piece, grid, initial)
|
function KRS:attemptRotate(new_inputs, piece, grid, initial)
|
||||||
piece.das_kicked = false
|
|
||||||
|
|
||||||
local rot_dir = 0
|
local rot_dir = 0
|
||||||
|
|
||||||
if (new_inputs["rotate_left"] or new_inputs["rotate_left2"]) then
|
if (new_inputs["rotate_left"] or new_inputs["rotate_left2"]) then
|
||||||
|
@ -113,37 +107,28 @@ function KRS:attemptRotate(new_inputs, piece, grid, initial)
|
||||||
self:onPieceRotate(piece)
|
self:onPieceRotate(piece)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
self:attemptWallkicks(piece, new_piece, rot_dir, grid, new_inputs)
|
self:attemptWallkicks(piece, new_piece, rot_dir, grid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function KRS:attemptWallkicks(piece, new_piece, rot_dir, grid, new_inputs)
|
function KRS:attemptWallkicks(piece, new_piece, rot_dir, grid)
|
||||||
local kicks = (
|
local kicks = (
|
||||||
piece.shape == "I" and
|
piece.shape == "I" and
|
||||||
KRS.wallkicks_line[piece.rotation][new_piece.rotation] or
|
KRS.wallkicks_line[piece.rotation][new_piece.rotation] or
|
||||||
KRS.wallkicks_3x3[piece.rotation][new_piece.rotation]
|
KRS.wallkicks_3x3[piece.rotation][new_piece.rotation]
|
||||||
)
|
)
|
||||||
local priority = 0
|
local priority = 0
|
||||||
|
local das_charged = (
|
||||||
|
self.game.das.frames >= self.game:getDasLimit() - self.game:getARR()
|
||||||
|
)
|
||||||
if (
|
if (
|
||||||
(new_inputs["left"]) or
|
|
||||||
(
|
|
||||||
self.game.das.direction == "left" and
|
self.game.das.direction == "left" and
|
||||||
(
|
(das_charged or piece:isMoveBlocked(grid, {x=-1, y=0}))
|
||||||
self.game.das.frames >= self.game:getDasLimit() - self.game:getARR() or
|
|
||||||
piece:isMoveBlocked(grid, {x=-1, y=0})
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) then
|
) then
|
||||||
priority = -1
|
priority = -1
|
||||||
elseif (
|
elseif (
|
||||||
(new_inputs["right"]) or
|
|
||||||
(
|
|
||||||
self.game.das.direction == "right" and
|
self.game.das.direction == "right" and
|
||||||
(
|
(das_charged or piece:isMoveBlocked(grid, {x=1, y=0}))
|
||||||
self.game.das.frames >= self.game:getDasLimit() - self.game:getARR() or
|
|
||||||
piece:isMoveBlocked(grid, {x=1, y=0})
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) then
|
) then
|
||||||
priority = 1
|
priority = 1
|
||||||
end
|
end
|
||||||
|
@ -153,7 +138,6 @@ function KRS:attemptWallkicks(piece, new_piece, rot_dir, grid, new_inputs)
|
||||||
piece:setRelativeRotation(rot_dir)
|
piece:setRelativeRotation(rot_dir)
|
||||||
piece:setOffset({x=priority, y=0})
|
piece:setOffset({x=priority, y=0})
|
||||||
self:onPieceRotate(piece)
|
self:onPieceRotate(piece)
|
||||||
piece.das_kicked = priority ~= 0
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -164,7 +148,6 @@ function KRS:attemptWallkicks(piece, new_piece, rot_dir, grid, new_inputs)
|
||||||
piece:setRelativeRotation(rot_dir)
|
piece:setRelativeRotation(rot_dir)
|
||||||
piece:setOffset({x=offset[1]+priority, y=offset[2]})
|
piece:setOffset({x=offset[1]+priority, y=offset[2]})
|
||||||
self:onPieceRotate(piece)
|
self:onPieceRotate(piece)
|
||||||
piece.das_kicked = priority ~= 0
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue