This commit is contained in:
Kistaro Windrider 2024-02-04 21:52:50 -08:00
parent 6054e2d182
commit ca7517cc3a
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

View File

@ -410,7 +410,7 @@ phinstate_rise_wax = phinstate_dive_wane
phinstate_rise_full = phinstate_dive_full phinstate_rise_full = phinstate_dive_full
phinstate_error = { phinstate_error = {
s={17}, s={0},
ws=1, ws=1,
hs=2, hs=2,
} }
@ -568,7 +568,7 @@ end
-- 10: word primary (yellow 10?) -- 10: word primary (yellow 10?)
-- 11: word shadow (wood 132?) -- 11: word shadow (wood 132?)
-- 12: dolphin eye -- 12: dolphin eye
-- 13: light splashy water (12), maybe sky? -- 13: common sky color
-- 14: dolphin primary color -- 14: dolphin primary color
-- 15: highlight white (all layers) -- 15: highlight white (all layers)
-- --
@ -619,7 +619,7 @@ mknew(sea)
function sea:draw() function sea:draw()
local w = wave() local w = wave()
rectfill(0, 72+w, 128, 80+w, 0) rectfill(0, 64+w, 128, 80+w, 0)
poke2(0x5f78, 0xFF00.00FF <<> w) poke2(0x5f78, 0xFF00.00FF <<> w)
rectfill(0, 81+w, 128, 89+w, 0x1040.a842) rectfill(0, 81+w, 128, 89+w, 0x1040.a842)
rectfill(0, 90+w, 128, 97+(w>>1), 0x1004.e169) rectfill(0, 90+w, 128, 97+(w>>1), 0x1004.e169)
@ -639,8 +639,8 @@ mknew(arcade_level, function(x)
-- TODO: decent looking sky and sea -- TODO: decent looking sky and sea
x.sky = bg.new{c=13} x.sky = bg.new{c=13}
x.sea = sea.new() x.sea = sea.new()
-- event list includes words x.bg = event_list.new()
x.e = event_list.new() x.fg = event_list.new()
-- TODO: score renderer -- TODO: score renderer
x.t0 = t() x.t0 = t()
@ -648,8 +648,9 @@ mknew(arcade_level, function(x)
x.sky, x.sky,
x.sea, x.sea,
x.waves, x.waves,
x.bg,
x.phin, x.phin,
x.e, x.fg,
} }
x.s = scootbox.new() x.s = scootbox.new()
@ -670,22 +671,63 @@ function arcade_level:draw()
self.s:draw() self.s:draw()
end end
function arcade_level:draw_splash(x, force)
if (force < 1) return
local n = (force + rnd(force)) & 0x7FF
for i=0,n do
local d = droplet.new{x=x, force=force, y=72+wave(), f=i/n-0.5}
if d.dr < 0 then
self.bg:push_back(d)
else
self.fg:push_back(d)
end
end
end
function arcade_level:dive_splash(x) function arcade_level:dive_splash(x)
-- TODO: sfx, vfx for dive input -- TODO: sfx, vfx for dive input
self:draw_splash(x, 3.8)
end end
function arcade_level:jump_splash(x) function arcade_level:jump_splash(x)
-- TODO: sfx, vfx for jump input -- TODO: sfx, vfx for jump input
self:draw_splash(x, 3.8)
end end
function arcade_level:surfacing_splash(x, force, harder) function arcade_level:surfacing_splash(x, force, harder)
-- TODO: sfx, vfx for surfacing from a dive -- TODO: sfx, vfx for surfacing from a dive
self:draw_splash(x, force)
end end
function arcade_level:landing_splash(x, force, harder) function arcade_level:landing_splash(x, force, harder)
-- TODO: sfx, vfx for landing from a jump -- TODO: sfx, vfx for landing from a jump
self:draw_splash(x, force)
end end
droplet = {}
mknew(droplet, function(d)
d.dx = d.f * d.force >> 2
d.x += 16 * d.f
d.dy = -rnd(d.force>>1)
d.r = rnd(1) + 1
d.dr = rnd(0.025) - 0.0125
d.ymo = 255 * d.dr
d.c = rnd(splashcols)
end)
function droplet:update()
self.x += self.dx
self.y += self.dy
self.r += self.dr
self.dy += 0.3
return self.y > self.ymo + 72 + wave() or self.r < 0.5
end
function droplet:draw()
circfill(self.x, self.y, self.r, 0x1003)
local r2 = self.r >> 1
pset(self.x+r2, self.y-r2, 0x100F)
end
-->8 -->8
-- game sequencer -- game sequencer