40 lines
835 B
Lua
40 lines
835 B
Lua
state_ironman=klass()
|
|
function state_ironman:init(sequence)
|
|
self.sequence=sequence
|
|
self.level=1
|
|
end
|
|
|
|
function state_ironman:enter() self:on_enter() end
|
|
function state_ironman:exit() end
|
|
|
|
function state_ironman:reenter(round)
|
|
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()
|
|
local level=self.level
|
|
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
|
|
|
|
function state_ironman:update()
|
|
assert(false,"wtf")
|
|
end
|
|
function state_ironman:draw()
|
|
assert(false,"wtf2")
|
|
end |