summaryrefslogtreecommitdiff
path: root/game/modes/40lines.lua
diff options
context:
space:
mode:
Diffstat (limited to 'game/modes/40lines.lua')
-rw-r--r--game/modes/40lines.lua30
1 files changed, 30 insertions, 0 deletions
diff --git a/game/modes/40lines.lua b/game/modes/40lines.lua
new file mode 100644
index 0000000..faf8cb5
--- /dev/null
+++ b/game/modes/40lines.lua
@@ -0,0 +1,30 @@
+local game = require "game"
+local text_events = require "game.text_events"
+
+local M = {}
+M.__index = M
+
+function M.new(assets)
+ local new = {}
+ setmetatable(new, M)
+
+ new.game = game.new(assets, {})
+
+ table.insert(new.game.gfx.text_sidebar, {text="40 lines mode."})
+ table.insert(new.game.gfx.text_sidebar, text_events.pieces(new.game))
+ table.insert(new.game.gfx.text_sidebar, text_events.lines(new.game, 40))
+ table.insert(new.game.gfx.text_sidebar, text_events.time(new.game))
+
+ new.game.loop:wrap(function()
+ while true do
+ new.game.loop.poll("game.line_clear")
+ if new.game.stats.lines >= 40 then
+ new.game:win()
+ end
+ end
+ end)
+
+ return new.game, new
+end
+
+return M \ No newline at end of file