summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthe lemons <citrons@mondecitronne.com>2023-03-27 01:10:30 -0500
committerthe lemons <citrons@mondecitronne.com>2023-03-27 01:10:30 -0500
commit4df34ed536fc687edcb386bb3823dc43d5c8c2e8 (patch)
tree66863b55d48e6ceb77b4cc8040eacd4f5f79e252
parente04f25ecee84392a9bbcb27f82188c3722afa486 (diff)
toggleable infinity
-rw-r--r--game/init.lua16
1 files changed, 10 insertions, 6 deletions
diff --git a/game/init.lua b/game/init.lua
index 9872a4c..4cc48f2 100644
--- a/game/init.lua
+++ b/game/init.lua
@@ -28,6 +28,7 @@ function M.new(params)
new.gfx = gfx.new(new)
new.gravity_delay = 0.5
new.lock_delay = params.lock_delay or 0.5
+ new.infinity = params.infinity or false
new.bag = bag.new(pieces, {seed = os.time(), randomly_add = {
[heav_optimal_shapes.heav] = {inverse_chance = 5000},
[heav_optimal_shapes.spite_shape] = {inverse_chance = 10000},
@@ -45,17 +46,16 @@ function M:input_loop()
return loop()
end
+ local moved
if e == "keypressed" then
if key == "left" then
- self.piece:move(0, -1)
+ moved = self.piece:move(0, -1)
elseif key == "right" then
- self.piece:move(0, 1)
+ moved = self.piece:move(0, 1)
elseif key == "down" then
- self.piece:move(-1, 0)
+ moved = self.piece:move(-1, 0)
elseif key == "up" then
- if self.piece:rotate() then
- evloop.queue "game.lock_cancel"
- end
+ moved = self.piece:rotate()
elseif key == "space" then
local dropped = false
while self.piece:move(-1, 0) do
@@ -79,6 +79,10 @@ function M:input_loop()
end
end
+ if moved and self.infinity then
+ evloop.queue "game.lock_cancel"
+ end
+
return loop()
end
return loop