Compare commits

..

7 Commits

Author SHA1 Message Date
Ishaan Bhardwaj
d0fdaf30ab Merge pull request #81 from Tetro48/std-rs-lockpatch
Patch standard.lua to prevent midair lock
2023-10-19 04:27:06 -04:00
Aymir Dmitrievich Danilov
8062f6e3fa Patch standard.lua to prevent midair lock 2023-10-19 14:33:25 +07:00
Ishaan Bhardwaj
7c3cf0b1bd Merge pull request #79 from aur9ra/feat-save-replay-once-per-game-only
Ensure replays are only saved once per game
2023-08-25 19:28:34 -04:00
aur9ra
52ddbbc174 Ensure replays are only saved once per game 2023-08-20 22:22:36 -07:00
Ishaan Bhardwaj
5f81c35677 Merge pull request #78 from Tetro48/replay-qol
Replay frame stepping
2023-08-14 11:26:56 -04:00
Tetro48
635ef6270f Changed frame step input to rotate_left 2023-08-14 21:52:22 +07:00
Tetro48
649dd5f31d Added frame stepping for replays
`menu_decide` for frame step action is temporary
2023-08-14 21:46:00 +07:00
3 changed files with 13 additions and 1 deletions

View File

@@ -38,6 +38,7 @@ function ReplayScene:new(replay, game_mode, ruleset)
self.replay_index = 1
self.replay_speed = 1
self.show_invisible = false
self.frame_steps = 0
DiscordRPC:update({
details = "Viewing a replay",
state = self.game.name,
@@ -47,7 +48,10 @@ end
function ReplayScene:update()
local frames_left = self.replay_speed
if not self.paused then
if not self.paused or self.frame_steps > 0 then
if self.frame_steps > 0 then
self.frame_steps = self.frame_steps - 1
end
while frames_left > 0 do
frames_left = frames_left - 1
self.inputs = self.replay["inputs"][self.replay_index]["inputs"]
@@ -123,6 +127,9 @@ function ReplayScene:onInputPress(e)
self.paused = not self.paused
if self.paused then pauseBGM()
else resumeBGM() end
--frame step
elseif e.input == "rotate_left" then
self.frame_steps = self.frame_steps + 1
elseif e.input == "left" then
self.replay_speed = self.replay_speed - 1
if self.replay_speed < 1 then

View File

@@ -179,6 +179,9 @@ function GameMode:update(inputs, ruleset)
if self.game_over or self.completed then
if self.save_replay and self.game_over_frames == 0 then
self:saveReplay()
-- ensure replays are only saved once per game, incase self.game_over_frames == 0 for longer than one frame
self.save_replay = false
end
self.game_over_frames = self.game_over_frames + 1
return

View File

@@ -93,6 +93,8 @@ function SRS:onPieceMove(piece, grid)
if piece.manipulations >= SRS.MANIPULATIONS_MAX then
piece.locked = true
end
else
piece.locked = false
end
end