-- cloud: secret cloud level visuals function draw_cloud_bg() local cl=mid(0,camx/(lvw*8-128),1) local sky=cl<0.5 and 13 or 12 cls(sky) -- indigo storm sky -> bright sky for i=1,(1-cl)*14 do -- rain: heavy at the storm, gone when sunny local dx=(i*23+t()*7)%132-2 local dy=(t()*90+i*37)%136-4 local p=0 for w in all(wisps) do -- each drop bends around a wind gust it hits if abs(dx-w.x+camx)<14 and abs(dy-w.y-sin(t()*w.spd+w.ph)*w.amp)<12 then p+=w.vx end end line(dx,dy,dx+p,dy+4,6) pset(dx+p,dy+4,13) end -- symmetric cloud-bank walls (over the rain): white->gradient->[playable sky]->gradient->white rectfill(0,0,127,22,7) grad(22,44,7,sky) -- TOP: white + gradient down to sky grad(83,105,sky,7) rectfill(0,105,127,127,7) -- BOTTOM (mirror): gradient up to white local ss=210-camx*0.5 -- parallax sun, slides in at the sunny end if ss<124 then fire_sun(ss,46) end -- sun ON TOP of the banks/gradient (in front), at the sunny end for b in all(wbirds) do vbird(b.x,b.y,1) end -- birds IN FRONT of the banks (never vanish into them); drifting clouds below still pass over them -- drifting clouds LAST so the low one floats in FRONT of the bottom bank (not clipped flat by it) local o=t()*4-camx*0.25 cloud(o%168-20,50) cloud((o+80)%168-20,80) cloud((o+140)%168-20,64) end function draw_portal(x,y) local pr=8+sin(t()*3)*2 circfill(x,y,pr,7) circfill(x,y,pr-2,12) circfill(x,y,pr-4,6) circfill(x,y,pr-6,1) print("?",x-3,y-3,7) end