{"name":"bad drain alt","description":"-- bad drain alt\n-- alexthescott\n-- 9/13/21\n\n-- z/x changes direction\n\np={143,142,133,13,141,130,140,131,129}\npal(p,1)\n\nfunction new_center(col)\n\t-- circle shrinking effect\n\tc={}\n\tc.r=95\n\tc.col=col\n\t\n\tc.new_color=function(self,col)\n\t\tself.col=col\n\tend\n\t\n\tc.update=function(self)\n\t\tdif=-self.r/100\n\t\tself.r+=dif\n\tend\n\t\n\tc.draw=function(self)\n\t\tif self.r<12 or self.r\\1%2==0 then\n\t\t\tcirc(64,64,self.r-4,self.col)\n\t\t\tcirc(64,64,self.r-2,self.col)\n\t\t\tcirc(64,64,self.r,self.col)\n\t\tend\n\t\t\n\t\tif self.r>10 then\n\t\t\t-- lines towards center\n\t\t\tfor i=-2,3 do\n\t\t\t\tline(i+64,-32,64,64-self.r,self.col)\n\t\t\t\tline(i+-32,64,64-self.r,64,self.col)\n\t\t\t\tline(i+64+self.r,64,160,64,self.col)\n\t\t\t\tline(i+64,160,64,64+self.r,self.col)\n\t\t\t\tline(i+0,0,64-self.r,64-self.r,self.col)\n\t\t\t\tline(i+128,0,64+self.r,64-self.r,self.col)\n\t\t\t\tline(i+0,128,64-self.r,64+self.r,self.col)\n\t\t\t\tline(i+128,128,64+self.r,64+self.r,self.col)\n\t\t\tend\n\t\tend\n\tend\n\t\n\tadd(centers,c)\nend\n\nfunction new_particle(c,dir)\n\tp={}\n\tp.p={}\n\tp.c=c\n\tp.s=4\n\tp.a=rnd(1)\n\tp.av=-0.00005*(1+rnd(80)\\1)\n\tp.r=91\n\tp.rv=0.5\n\tp.ra=0.000075*(dir*2-1)\n\tp.x=64+cos(p.a)*p.r\n\tp.y=64+sin(p.a)*p.r\n\t\n\tp.draw=function(self)\n\t\t-- draw trail\n\t\tfor i=1,#self.p-1 do\n\t\t\ta=self.p[i]\n\t\t\tb=self.p[i+1]\n\t\t\tline(a.x,a.y,b.x,b.y,self.c+1)\n\t\tend\n\t\tcircfill(self.x,self.y,self.s,self.c)\n\tend\n\t\n\tp.update=function(self)\n\t\tself.a+=self.av\n\t\tself.av+=self.ra\n\t\tself.r-=self.rv\n\t\tself.x=64+cos(self.a)*self.r\n\t\tself.y=64+sin(self.a)*self.r\n\t\t\n\t\t-- shrink particle circle\n\t\tif self.r<25 then\n\t\t\tself.s=1\n\t\telseif self.r<40 then\n\t\t\tself.s=2\n\t\telseif self.r<60 then\n\t\t\tself.s=3\n\t\tend\n\t\t\n\t\t-- add trail points\n\t\tlocal pnt={}\n\t\tpnt.x=self.x\n\t\tpnt.y=self.y\n\t\tadd(self.p,pnt)\n\tend\n\t\n\tp.destroy=function(self)\n\t\t-- destroy @ center of screen\n\t\tif self.x<=65 and self.x>=63\n\t\t\t\t\tand self.y<=65 and self.y>=63 then\n\t\t\t\tdel(particles,self)\n\t\tend\n\tend\n\t\n\tadd(particles,p)\nend\n\nfunction burn()\n\tfor i=1,128 do\n\t\tx=(rnd(64)\\1)*2\n\t\ty=(rnd(64)\\1)*2\n\t\tx=rnd(128)\\1\n\t\ty=rnd(128)\\1\n\t\t\n\t\tif x<64 then\n\t\t\tdx=2\n\t\telse\n\t\t\tdx=-2\n\t\tend\n\t\t\n\t\tif y<64 then\n\t\t\tdy=2\n\t\telse\n\t\t\tdy=-2\n\t\tend\n\t\t\n\t\tpc=pget(x,y)\n\t\tif pc%3!=0 then\n\t\t\tcirc(x+dx,y+dy,2,pc+1)\n\t\tend\n\t\tif rnd(1)<0.75 then\n\t\t\tcirc(x,y,2,0)\n\t\t\tpset(x,y,0)\n\t\tend\n\tend\nend\n\nparticles={}\ndir=rnd(2)\\1\nglobal_color=1+3*(rnd(3)\\1)\nfc=0\n\ncenters={}\nnew_center(global_color)\n\n_set_fps(60)\ncls()\n::♥::\nif t()<2 then\n\tprint(\"bad drain alt\",38,64,global_color)\nelse\n\tburn()\n\t\n\tfc+=1\n\t\n\tif fc%9==0 then\n\t\tnew_particle(global_color,dir)\n\tend\n\t\n\tif fc%1600==0 then\n\t\tfc=0\n\t\tglobal_color+=3\n\t\tglobal_color%=9\n\t\tnew_center(global_color)\n\t\t\n\t\tif #centers==3 then\n\t\t\tdel(centers,centers[1])\n\t\tend\n\t\t\n\t\tif dir==0 then\n\t\t\tdir=1\n\t\telse\n\t\t\tdir=0\n\t\tend\n\tend\n\t\n\tfor p in all(particles) do\n\t\tp:draw()\n\t\tp:update()\n\t\tp:destroy()\n\tend\n\t\n\tfor c in all(centers) do\n\t\tc:draw()\n\t\tc:update()\n\tend\n\t\n\tcircfill(64,64,3,0)\n\t\n\tif btnp(5) or btnp(4) then\n\t\tif dir==0 then\n\t\t\tdir=1\n\t\telse\n\t\t\tdir=0\n\t\tend\n\tend\nend\nflip()\ngoto ♥\n","tags":["pico-8","pico8"],"symbol":"OBJKT","artifactUri":"ipfs://Qmf3snLBauRNYJKqGjHAAmeakyQ5RwrUFVtasQPHkSyAvw","displayUri":"ipfs://Qmdcf8yrq5t3c2gP2m1mHvfRESuEvSyX9Y51yT5SqMv9EA","thumbnailUri":"ipfs://QmNrhZHUaEqxhyLfqoq1mtHSipkWHeT31LNHb1QEbDHgnc","creators":["tz1St3n29AbYXZXV8W1BG41qYzz86J2CFAW7"],"formats":[{"uri":"ipfs://Qmf3snLBauRNYJKqGjHAAmeakyQ5RwrUFVtasQPHkSyAvw","mimeType":"application/x-directory"}],"decimals":0,"isBooleanAmount":false,"shouldPreferSymbol":false}