menu prototype
This commit is contained in:
parent
87451bbd3a
commit
2dcb95b0cd
@ -186,7 +186,7 @@ end
|
||||
|
||||
function updategame()
|
||||
if primary_ship.xp >= primary_ship.xptarget and lframe - primary_ship.last_xp_frame > 15 then
|
||||
mode = start_rearm()
|
||||
mode = rearm_mode.new()
|
||||
return _update60()
|
||||
end
|
||||
leveldone = level_frame()
|
||||
@ -1778,12 +1778,6 @@ function rearm_mode:glow_box(x0, y0, x1, y1, c, cf)
|
||||
fillp()
|
||||
end
|
||||
|
||||
function rearm_mode:frame_col(hot)
|
||||
if (not hot) return {4,10}
|
||||
if (self.bfm<=16) return {14,7}
|
||||
return {2,8}
|
||||
end
|
||||
|
||||
function easeoutbounce(t)
|
||||
local n1=7.5625
|
||||
local d1=2.75
|
||||
@ -1802,6 +1796,21 @@ function easeoutbounce(t)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function rearm_mode:frame_col(hot)
|
||||
if (not hot) return {4,10}
|
||||
if (self.bfm<=16) return {14,7}
|
||||
return {2,8}
|
||||
end
|
||||
|
||||
function rearm_mode:draw_option(id)
|
||||
local rec = self.options[id]
|
||||
self:glow_box(0,0,55,100,self:frame_col(self.sel == id),1)
|
||||
spr(rec.s,5, 5)
|
||||
print(rec.hdr, 13, 8, 7)
|
||||
print(rec.body, 5, 15, 6)
|
||||
end
|
||||
|
||||
function rearm_mode:pos_frac()
|
||||
local pos = self.pos
|
||||
if (not pos) return
|
||||
@ -1811,22 +1820,41 @@ function rearm_mode:pos_frac()
|
||||
end
|
||||
|
||||
function rearm_mode:init()
|
||||
--TODO: assign left pane content
|
||||
--TODO: assign right pane content
|
||||
--
|
||||
self:shuffle()
|
||||
end
|
||||
|
||||
function rearm_mode:shuffle()
|
||||
-- these will be placeholders
|
||||
-- until the upgrade deck
|
||||
-- is a thing that exists
|
||||
self.options = {{
|
||||
s=1,
|
||||
hdr="hull",
|
||||
body = "\n +1\n max\n health",
|
||||
action = function() end,
|
||||
},{
|
||||
s=2,
|
||||
hdr="vulc",
|
||||
body = "\n placeholder",
|
||||
action = function() end,
|
||||
}}
|
||||
end
|
||||
|
||||
function rearm_mode:draw()
|
||||
-- TODO: draw weapon panes
|
||||
local frac = self:pos_frac()
|
||||
camera(frac * 55, 0)
|
||||
self:draw_option(1)
|
||||
camera(frac * -128 + (1-frac) * -56, 0)
|
||||
self:draw_option(2)
|
||||
|
||||
-- TODO: draw rearm pane
|
||||
drawhud()
|
||||
end
|
||||
|
||||
function rearm_mode:update_pos()
|
||||
local pos = self.pos
|
||||
if (not pos or pos == 0) return
|
||||
if (pos <= 0 and primary_ship.xp < primary_ship.xptarget) self.pos += 1
|
||||
if (pos < 0) pos = min(pos + 0x0.05, 0)
|
||||
if pos > 0 then
|
||||
pos -= 0x0.1
|
||||
@ -1841,14 +1869,40 @@ function rearm_mode:update()
|
||||
mode = game_mode
|
||||
return _update60()
|
||||
end
|
||||
-- TODO: process input
|
||||
local sel, bfm = self.sel, self.bfm
|
||||
if (btn(3) and sel > 0 or btn(2) and sel < 0) sel=-sel
|
||||
if (btn(0)) sel = 1
|
||||
if (btn(1)) sel = 2
|
||||
if (btn()&0xF ~= 0) and bfm >= 10 or bfm >= 30 then
|
||||
bfm = 1
|
||||
else
|
||||
bfm += 1
|
||||
end
|
||||
self.bfm = bfm
|
||||
|
||||
function do_rearm()
|
||||
-- TODO: remove this and just
|
||||
-- use rearm_mode.new() at the
|
||||
-- call site?
|
||||
ret = rearm_mode.new()
|
||||
if primary_ship.xp < primary_ship.xptarget then
|
||||
sel = 0
|
||||
elseif btnp(4) or btnp(5) and self.pos == 0 then
|
||||
if sel < 0 then
|
||||
-- todo: sound: rearm
|
||||
primary_ship.shield = primary_ship.maxshield
|
||||
-- todo: rewrite for three guns
|
||||
if (primary_ship.spec_gun) primary_ship.spec_gun.ammo = primary_ship.spec_gun.max_ammo
|
||||
primary_ship.hp = min(primary_ship.maxhp, primary_ship.hp + primary_ship.maxhp/2)
|
||||
primary_ship.xp -= primary_ship.xptarget / 2
|
||||
else
|
||||
local c = self.options[sel]
|
||||
if c then
|
||||
-- todo: sound: upgrade
|
||||
c:action()
|
||||
primary_ship.xp -= primary_ship.xptarget
|
||||
primary_ship.xptarget += primary_ship.level * 0x0.0002
|
||||
primary_ship.level += 1
|
||||
if (primary_ship.xp >= primary_ship.xptarget) self:shuffle()
|
||||
end
|
||||
end
|
||||
end
|
||||
self.sel = sel
|
||||
end
|
||||
|
||||
__gfx__
|
||||
|
Loading…
x
Reference in New Issue
Block a user