-- genuary #6 2023
-- steal like an artist
-- by carson kompon
frain={}
fsmile=0
pal({[0]=0,7,5,128,2,136,8,137,9,10,138,11,139,131,140,129},1)
cls()
function colcycle(z,l)
z=z or 0
l=l or 1
return 3+((t()/16+z)*13*l)%13
end
::_::
t4=t()*4
-- top left pump
clip(0,0,54,7)
for i=1,16do
x=rnd(54)y=rnd(7)
circfill(x,y,1,colcycle((x+y)/20/16))
end
rectfill(0,0,35,2,0)
rectfill(11,3,16,3,0)
rectfill(0,3,6,5,0)
rectfill(53-(sin(t())+.5)/2*5,3,53,4,1)
-- frog rain
clip(62,69,4,49)
if(fsmile>0)fsmile-=1
for i=1,8 do
circ(62+rnd(4),69+rnd(49),1,0)
end
if flr(t()*60)%20==0 then
add(frain,{
x=62+rnd(4),
y=69,
c=14+rnd()\1,
hs=0
})
end
for o in all(frain) do
o.hs+=0.1
o.y+=o.hs
pset(o.x,o.y,o.c)
if(o.y>=118)del(frain,o)fsmile=4
end
-- top left square
clip(14,14,41,41)
rectfill(14,14,55,55,0)
for i=1,16 do
for j=1,16 do
pset(
14+((i*6)+((j+i+rnd()%2)*3)+t4)%41,
14+((j*6)+t4)%41,
2
)
end
end
for i=1,8 do
for j=1,4 do
tt=t()+i/8
x=34
y=48-i*3
s=8+sin(tt)*5
line(
x+cos(tt)*s,
y+sin(tt)*s/2,
x+cos(tt+(j/8))*s,
y+sin(tt+(j/8))*s/2,
colcycle(i/8)
)
end
end
-- top right square
clip(69,10,49,49)
for i=1,200 do
x=rnd(2)-1
y=rnd(2)-1
if(x*x+y*y>1)circfill(93+x*24,34+y*24,1,0)
end
circfill(93+cos(t())*24,34+sin(t())*24,1,5)
circfill(93+cos(-t())*22,34+sin(-t())*22,1,14)
for i=1,200 do
x=rnd(2)-1
y=rnd(2)-1
c=8+rnd(2)
if(x*x+y*y>.7)c=0
xx=93+x*24
yy=34+y*24
xd=xx-90
yd=yy-31
if(xd*xd+yd*yd>18^2)circfill(xx,yy,1,c)
end
for i=1,200 do
x=rnd(2)-1
y=rnd(2)-1
c=4+(atan2(y,x)*11+t())%11
if(x*x+y*y<=.8)circfill(90+x*15,31+y*15,1,c)
end
-- bottom right square
clip(69,69,49,49)
for i=1,100 do
circfill(69+rnd(49),69+rnd(49),1,0)
end
for i=1,3 do
d=t()/2+i/3+(t()/8)
h=18+sin(t()*4+i/3)*6
circfill(
93+cos(d)*h,
93+sin(d)*h,
4,
mid(colcycle(i/3),4,14)
)
end
-- bottom left square
clip(10,69,49,49)
for i=1,9 do
circ(34,93,rnd(20),0)
end
for i=1,4 do
circ(34,93,(i*4+t()*20)%20,colcycle(0,16))
end
-- water in middle
clip(60,10,8,58)
rectfill(60,10,68,68,0)
for i=0,8 do
l=30+sin(t())*4+sin(t()+i/8)
line(60+i,68-l,60+i,68,14)
end
-- water at bottom
clip(0,118,128,10)
rectfill(0,118,128,128,0)
for i=0,127 do
l=3+sin(t()+i/32)*2
line(i,128-l,i,128,14)
end
--== full screen clip ==--
clip(0,0,128,128)
-- moving tractor beams on left
rectfill(1,70,7,90,0)
rectfill(1,99,7,116,0)
for i=0,3 do
for j=0,4 do
tt=t()*32
if(i%2==0)tt*=-1
pset(1+i*2,70+(j*4+tt)%18,2)
tt*=-1
pset(1+i*2,99+(j*4+tt)%18,2)
end
end
-- character screen on right
rectfill(121,33,125,38,0)
print(chr(16+flr(t())%212),122,34,colcycle(1,16))
for i=1,4 do
for j=1,6 do
c=rnd({0,0,0,0,0,0,0,4+rnd(10)})
pset(120+((i-1)*2),42+((j-1)*2),c)
end
end
-- falling dots on the left
line(3,25,3,44,0)
for i=1,4 do
pset(3,25+((i*5)+t()*16)%19,1)
end
-- frog eyes
rectfill(58,123,69,126,0)
rectfill(57,124,70,125,0)
rectfill(59,121,68,122,0)
rectfill(60,120,67,120,0)
if fsmile > 0 then
pset(61,121,1)
pset(66,121,1)
else
line(61,121,61,120,1)
line(66,121,66,120,1)
end
-- draw main sprite
pal(7,1)
sspr(0,0,128,128,0,0)
pal(7,7)
flip()
goto _