Restart menu
This commit is contained in:
parent
8b23695945
commit
d7d91dd3a7
@ -2,7 +2,6 @@
|
||||
modules={}
|
||||
|
||||
function _init()
|
||||
-- printh("restarting")
|
||||
_doall("init")
|
||||
end
|
||||
|
||||
|
1
main.lua
1
main.lua
@ -13,4 +13,5 @@ end
|
||||
|
||||
function main:draw()
|
||||
self.state_manager:draw()
|
||||
apply_palette()
|
||||
end
|
||||
|
3
main.p8
3
main.p8
@ -2,6 +2,7 @@ pico-8 cartridge // http://www.pico-8.com
|
||||
version 41
|
||||
__lua__
|
||||
#include engine.lua
|
||||
#include palette.lua
|
||||
#include animator.lua
|
||||
#include board.lua
|
||||
#include board_animations.lua
|
||||
@ -12,12 +13,14 @@ __lua__
|
||||
#include layout.lua
|
||||
#include layout_hint.lua
|
||||
#include ruleset.lua
|
||||
#include palette.lua
|
||||
#include progression.lua
|
||||
#include seed_constants.lua
|
||||
#include seeds.lua
|
||||
#include state_manager.lua
|
||||
#include state_gameround.lua
|
||||
#include state_ironman.lua
|
||||
#include state_restartmenu.lua
|
||||
#include tutorial.lua
|
||||
#include text.lua
|
||||
#include watcher.lua
|
||||
|
17
palette.lua
Normal file
17
palette.lua
Normal file
@ -0,0 +1,17 @@
|
||||
function apply_palette()
|
||||
-- bg
|
||||
pal(13,-3,1)
|
||||
|
||||
-- arcana
|
||||
-- pal(1,0,1)
|
||||
pal(15,-9,1)
|
||||
|
||||
-- suits
|
||||
pal(4,-11,1) -- first suit
|
||||
pal(12,12,1)
|
||||
pal(2,-8,1)
|
||||
pal(3,-5,1)
|
||||
|
||||
-- pal(8,-9,1)
|
||||
-- pal(14,8,1)
|
||||
end
|
@ -1,6 +1,7 @@
|
||||
state_gameround=klass()
|
||||
function state_gameround:init(watcher,ruleset)
|
||||
self.board=board:new(watcher,ruleset)
|
||||
self.outcome=nil
|
||||
self.restart_frames=0
|
||||
end
|
||||
function state_gameround:enter() end
|
||||
@ -18,6 +19,12 @@ function state_gameround:update()
|
||||
end
|
||||
local restart_progress=self.restart_frames/60
|
||||
self.board:set_restart_progress(restart_progress)
|
||||
|
||||
if restart_progress>=1.0 then
|
||||
main.state_manager:push(state_restartmenu:new())
|
||||
return
|
||||
end
|
||||
|
||||
if self.board:can_take_input() then
|
||||
if (btnp(0)) self.board.cursor:move_x(-1)
|
||||
if (btnp(1)) self.board.cursor:move_x(1)
|
||||
@ -26,25 +33,10 @@ function state_gameround:update()
|
||||
if (btnp(4)) self.board.cursor:toggle_grab()
|
||||
if (btnp(5)) self.board:undo()
|
||||
end
|
||||
if (self.board:is_won()) self.done=true
|
||||
if (self.board:is_won()) self.outcome="win" self.done=true
|
||||
end
|
||||
|
||||
function state_gameround:draw()
|
||||
cls(13)
|
||||
self.board:draw()
|
||||
-- bg
|
||||
pal(13,-3,1)
|
||||
|
||||
-- arcana
|
||||
-- pal(1,0,1)
|
||||
pal(15,-9,1)
|
||||
|
||||
-- suits
|
||||
pal(4,-11,1) -- first suit
|
||||
pal(12,12,1)
|
||||
pal(2,-8,1)
|
||||
pal(3,-5,1)
|
||||
|
||||
-- pal(8,-9,1)
|
||||
-- pal(14,8,1)
|
||||
end
|
@ -7,16 +7,29 @@ end
|
||||
function state_ironman:enter() self:on_enter() end
|
||||
function state_ironman:exit() end
|
||||
|
||||
function state_ironman:reenter() self:on_enter() end
|
||||
function state_ironman:reenter(round)
|
||||
printh("reenter "..round.outcome)
|
||||
if round.outcome=="win" then
|
||||
self.level+=1
|
||||
elseif round.outcome=="menu" then
|
||||
self.done=true
|
||||
elseif round.outcome=="restart" then
|
||||
else
|
||||
assert(false,"unrecognized outcome: "..round.outcome)
|
||||
end
|
||||
|
||||
self:on_enter()
|
||||
end
|
||||
function state_ironman:suspend() end
|
||||
|
||||
function state_ironman:on_enter()
|
||||
self.done=true
|
||||
local level=self.level
|
||||
self.level+=1
|
||||
if (self.done) return
|
||||
if level <= #self.sequence then
|
||||
local w=self.sequence[level]()
|
||||
main.state_manager:push(state_gameround:new(w))
|
||||
else
|
||||
self.done=true
|
||||
end
|
||||
end
|
||||
|
||||
|
21
state_restartmenu.lua
Normal file
21
state_restartmenu.lua
Normal file
@ -0,0 +1,21 @@
|
||||
state_restartmenu=klass()
|
||||
function state_restartmenu:init()
|
||||
end
|
||||
function state_restartmenu:enter() end
|
||||
function state_restartmenu:exit(new_top)
|
||||
new_top.outcome=self.outcome
|
||||
new_top.done=true
|
||||
end
|
||||
|
||||
function state_restartmenu:reenter() end
|
||||
function state_restartmenu:suspend() end
|
||||
|
||||
function state_restartmenu:update()
|
||||
if (btnp(0)) self.outcome="menu" self.done=true
|
||||
if (btnp(4)) self.outcome="restart" self.done=true
|
||||
end
|
||||
function state_restartmenu:draw()
|
||||
cls(13)
|
||||
print("⬅️ back to menu",1,58,7)
|
||||
print("🅾️ restart",1,64,7)
|
||||
end
|
@ -1,5 +1,5 @@
|
||||
tutorial={
|
||||
function() return watcher:new(progression[6]) end,
|
||||
-- function() return watcher:new(progression[6]) end,
|
||||
function()
|
||||
return watcher:new(progression[1], 10,{
|
||||
tutorial_grab:new(1,4),
|
||||
|
Loading…
Reference in New Issue
Block a user