fortunes_foundation/state_gameround.lua

75 lines
1.9 KiB
Lua
Raw Permalink Normal View History

2024-02-11 01:44:38 +00:00
state_gameround=klass()
2024-02-11 03:42:38 +00:00
function state_gameround:init(watcher,ruleset)
self.board=board:new(watcher,ruleset)
2024-02-11 06:01:05 +00:00
self.outcome=nil
2024-02-14 23:55:00 +00:00
self.grab_frames=0
2024-02-11 05:41:48 +00:00
self.restart_frames=0
2024-02-14 23:55:00 +00:00
self.picking_up=false
2024-02-11 01:44:38 +00:00
end
2024-02-12 04:40:30 +00:00
function state_gameround:enter() self:add_menu() end
function state_gameround:exit() self:remove_menu() end
function state_gameround:reenter() self:add_menu() end
function state_gameround:suspend() self:remove_menu() end
function state_gameround:add_menu()
menuitem(4,"restart",function() self.outcome="restart" self.done=true end)
menuitem(5,"go to menu",function() self.outcome="menu" self.done=true end)
end
function state_gameround:remove_menu()
menuitem(4)
menuitem(5)
end
2024-02-11 01:44:38 +00:00
function state_gameround:update()
self.board:update()
2024-02-14 23:55:00 +00:00
if btn(4) then
self.grab_frames+=1
else
self.grab_frames=0
end
2024-02-11 05:41:48 +00:00
if btn(5) then
self.restart_frames+=1
else
self.restart_frames=0
end
local restart_progress=self.restart_frames/60
self.board:set_restart_progress(restart_progress)
2024-02-11 06:01:05 +00:00
2024-02-14 22:10:19 +00:00
2024-02-11 06:01:05 +00:00
if restart_progress>=1.0 then
2024-02-14 22:10:19 +00:00
self.outcome="restart"
self.done=true
2024-02-11 06:01:05 +00:00
return
end
2024-02-11 01:44:38 +00:00
if self.board:can_take_input() then
2024-02-14 23:55:00 +00:00
if (btnp(0)) self.board.cursor:move_x(-1) self.picking_up=false
if (btnp(1)) self.board.cursor:move_x(1) self.picking_up=false
if (btnp(2)) self.board.cursor:move_y(-1) self.picking_up=false
if (btnp(3)) self.board.cursor:move_y(1) self.picking_up=false
if btnp(4) then
if self.grab_frames<4 then
self.board.cursor:toggle_grab()
self.picking_up=true
else
self.board.cursor:incr_grab()
end
end
2024-02-14 03:15:19 +00:00
if btnp(5) and self.restart_frames < 4 then
if self.board.cursor:grabbed_card() then
self.board.cursor:drop_grab()
else
self.board:undo()
2024-02-14 23:55:00 +00:00
self.picking_up=false
end
end
2024-02-11 01:44:38 +00:00
end
2024-02-11 21:44:45 +00:00
if (self.board:is_won()) self.outcome="win" self.done=true main.state_manager:push(state_wonround:new(self.board))
2024-02-11 01:44:38 +00:00
end
function state_gameround:draw()
cls(13)
self.board:draw()
end