diff --git a/tetris/modes/gamemode.lua b/tetris/modes/gamemode.lua index dac9e3b..99434b2 100644 --- a/tetris/modes/gamemode.lua +++ b/tetris/modes/gamemode.lua @@ -279,6 +279,14 @@ function GameMode:processDelays(inputs, ruleset, drop_speed) end elseif self.are > 0 then self.are = self.are - 1 + if ruleset.are_cancel and + self.prev_inputs["up"] and + (inputs["left"] or inputs["right"] or + inputs["rotate_left"] or inputs["rotate_left2"] or + inputs["rotate_right"] or inputs["rotate_right2"] or + inputs["rotate_180"]) then + self.are = 0 + end if self.are == 0 then self:initializeOrHold(inputs, ruleset) end diff --git a/tetris/rulesets/ruleset.lua b/tetris/rulesets/ruleset.lua index 4b10480..7c11c10 100644 --- a/tetris/rulesets/ruleset.lua +++ b/tetris/rulesets/ruleset.lua @@ -21,6 +21,7 @@ Ruleset.softdrop_lock = true Ruleset.harddrop_lock = false Ruleset.enable_IRS_wallkicks = false +Ruleset.are_cancel = false -- Component functions.