0xb60d5244…3277sent to0xa7d8d9ef…d270·#13,686,671·view on Etherscan
let projectNumber=Math.floor(parseInt(tokenData.tokenId)/1e6),mintNumber=parseInt(tokenData.tokenId)%(1e6*projectNumber),seed=parseInt(tokenData.hash.slice(0,16),16),rawParams=setupParametersFromTokenData(tokenData);class Random{constructor(e){this.seed=e}random(){return this.random_dec()}random_dec(){return this.seed^=this.seed<<13,this.seed^=this.seed>>17,this.seed^=this.seed<<5,(this.seed<0?1+~this.seed:this.seed)%1e3/1e3}random_num(e,a){return void 0===a&&(a=e,e=0),e+(a-e)*this.random_dec()}random_int(e,a){return void 0===a&&(a=e,e=0),Math.floor(this.random_num(e,a+1))}random_bool(e){return this.random_dec()<e}random_choice(e){return e[Math.floor(this.random_num(0,.99*e.length))]}random_choice_weight(e){let a=Object.values(e).reduce(((e,a)=>e+a),0),t=Object.values(e).reduce(((e,a)=>(e.push(1*(e.slice(-1)||0)+a),e)),[0]),i=this.random_num(0,a),r=0;for(let e=t.length-1;e>=1&&(r=e-1,!(i>t[e-1]&&i<t[e]));e--);return Object.keys(e)[r]}}let overAllTexture,canvasTexture,fullCanvasTexture,R=new Random(seed);class Particle{constructor(e){let a={p:createVector(0,0),v:createVector(0,0),a:createVector(0,0),canGenCount:2,generation:0,polarity:R.random_choice([-1,1]),r:R.random_num(0,useParticleSize)*R.random_num(.1,1)+1,id:int(R.random_num(0,1e3)),vFriction:R.random_num(.99,1),rFactor:R.random_num(.99,.9995),affectFactor:R.random_num(.8,1.2),hasFruit:R.random_num()<.5,area:null,color:"white",life:500};Object.assign(a,e),Object.assign(this,a)}draw(){if(mainGraphics.push(),mainGraphics.translate(this.p),mainGraphics.fill(this.color),mainGraphics.ellipse(0,0,this.r,this.r),R.random_dec()<.02){let e=R.random_num(0,5);mainGraphics.noFill(),mainGraphics.strokeWeight(2),mainGraphics.stroke(this.color),mainGraphics.ellipse(0,0,this.r*e,this.r*e)}if("Spray"==useSpecialType)for(var e=0;e<4;e++){mainGraphics.fill(this.color);let e=R.random_num(40)*R.random(),a=R.random_num(30)*R.random()/(sqrt(e)+2),t=R.random_num(0,2*PI);mainGraphics.ellipse(e*cos(t),e*sin(t),a,a)}mainGraphics.pop()}update(){R.random_dec()<.01&&this.area&&(this.color=R.random_choice(this.area.colors)),this.area&&this.area.affect(this),this.v.mult(this.vFriction),this.r*=this.rFactor,this.p.add(this.v),this.v.add(this.a),this.life--}}class Area{constructor(e){let a={x:0,y:0,w:0,h:0,type:getValueOfList(areaTypes,R.random_choice_weight(mapListToWeightedKeys(areaTypes))),sx:R.random_num(0,2),sy:R.random_num(0,2),polarAmp:R.random_num(-useChaosFactor,useChaosFactor),noiseX:R.random_num(0,100),noiseY:R.random_num(0,1e3),noiseXAmp:R.random_num(-useChaosFactor,useChaosFactor),noiseYAmp:R.random_num(-useChaosFactor,useChaosFactor),parallelAngle:R.random_num(0,2*PI),parallelAmp:R.random_num(1e-4,.002),gravity:createVector(R.random_num(-.1,.1),R.random_num(-.1,.1)),colors:useColorSet,color:R.random_choice(useColorSet),id:int(R.random_num(0,1e5))};Object.assign(a,e),Object.assign(this,a)}draw(){mainGraphics.push(),mainGraphics.noStroke(),mainGraphics.fill(this.color),"Wireframe"==useSpecialType&&(mainGraphics.noFill(),mainGraphics.strokeWeight(5),mainGraphics.stroke(this.color)),"Kinetic"==useSpecialType&&(mainGraphics.translate(R.random_num(-useChaosFactor,useChaosFactor),R.random_num(-useChaosFactor,useChaosFactor)),mainGraphics.rotate(R.random_num(.01*-useChaosFactor,.01*useChaosFactor))),mainGraphics.rect(this.x,this.y,this.w,this.h),mainGraphics.pop()}affect(e){let a=useChaosFactor/9;"field"==this.type&&(e.v.x+=cos(e.p.x*this.sx/10)/10*e.affectFactor*a,e.v.y+=sin(e.p.y*this.sy/10)/10*e.affectFactor*a),"noise"==this.type&&(e.v.x+=(noise(e.p.x*this.sx/10)-.5)*e.affectFactor*a,e.v.y+=(noise(e.p.y*this.sy/10)-.5)*e.affectFactor*a),"curl"==this.type&&e.v.rotate(this.polarAmp*e.polarity/pow(e.r,2)*e.affectFactor*a),"square"==this.type&&(e.v.x+=cos(e.p.x/10+e.p.y/20)/2*e.affectFactor*a,e.v.y+=sin(e.p.y/10+e.p.x/20)/2*e.affectFactor*a),"step"==this.type&&(e.p.x+=2*cos(2*int(e.p.x/40))*e.affectFactor*a,e.p.y+=2*cos(2*int(e.p.y/40))*e.affectFactor*a),"parallel"==this.type&&e.v.heading()!=this.parallelAngle&&e.v.rotate((this.parallelAngle-e.v.heading())*this.parallelAmp)}isParticleInArea(e){return(this.checkFunc||((e,a)=>a.p.x>e.x&&a.p.x<e.x+e.w&&a.p.y>e.y&&a.p.y<e.y+e.h))(this,e)}}class AngArea extends Area{constructor(e){super(e)}draw(){let e=(this.stR+this.edR)/2,a=this.edR-this.stR;if(mainGraphics.push(),mainGraphics.strokeCap(SQUARE),mainGraphics.noFill(),mainGraphics.stroke(this.color),mainGraphics.translate(width/2,height/2),mainGraphics.strokeWeight(a),mainGraphics.arc(0,0,2*e,2*e,this.stAng,this.edAng,OPEN),mainGraphics.pop(),"Kinetic"==useSpecialType&&(mainGraphics.translate(R.random_num(-useChaosFactor,useChaosFactor),R.random_num(-useChaosFactor,useChaosFactor)),mainGraphics.rotate(R.random_num(-.03,.03))),"Wireframe"==useSpecialType){let e=(this.stR+this.edR)/2,a=this.edR-this.stR-20;mainGraphics.push(),mainGraphics.strokeCap(SQUARE),mainGraphics.noFill(),mainGraphics.stroke(0),mainGraphics.translate(width/2,height/2),mainGraphics.strokeWeight(a),mainGraphics.arc(0,0,2*e,2*e,this.stAng,this.edAng,OPEN),mainGraphics.pop()}}isParticleInArea(e){let a=(e=>e<0?e+2*PI:e)(atan2(e.p.y-height/2,e.p.x-width/2)),t=dist(e.p.x,e.p.y,width/2,height/2);return a>=this.stAng&&a<=this.edAng&&t>=this.stR&&t<=this.edR}}let useStartPosition,useParticleCount,useColorSet,useParticleSize,useDivisionType,useEmitType,useSpecialType,mainGraphics,mapColorsToArr=e=>e.split("-").map((e=>"#"+e)),colors={Paper:{weight:100,value:mapColorsToArr("222-666-999-aaa-ccc-eee-fff-080808")},Kimono:{weight:100,value:mapColorsToArr("fff-f24-fae8eb-f6caca-e4c2c6-cd9fcc-0a014f")},Sea:{weight:100,value:mapColorsToArr("e63946-f1faee-a8dadc-457b9d-1d3557")},Confetti:{weight:100,value:mapColorsToArr("201e1f-ff4000-faaa8d-feefdd-50b2c0")},Vine:{weight:100,value:mapColorsToArr("fff-222-545454-69747c-6baa75-84dd63-cbff4d")},Festival:{weight:100,value:mapColorsToArr("12355b-420039-d72638-ffffff-ff570a")},Lolipop:{weight:100,value:mapColorsToArr("ff499e-d264b6-a480cf-779be7-49b6ff-fff-000")},Eastern:{weight:100,value:mapColorsToArr("333745-e63462-fe5f55-c7efcf-eef5db-fff")},Beans:{weight:100,value:mapColorsToArr("fb6107-f3de2c-7cb518-5c8001-fbb02d-fff-111")},MonoChrome:{weight:100,value:mapColorsToArr("000-fff-333")},Mint:{weight:100,value:mapColorsToArr("000-fff-333-00ffbb")},Taxi:{weight:100,value:mapColorsToArr("000-fff-333-fff719")},Earth:{weight:100,value:mapColorsToArr("0a0908-142228-f2f4f3-a9927d-5e503f-efc734-e0ba67")}},startPositions={Center:{weight:15,value:[.5,.5]},CornerLT:[.35,.35],CornerRT:[.65,.35],CornerLB:[.35,.65],CornerRB:[.65,.65]},specialTypes={None:{weight:30,value:"None"},Wireframe:{weight:14,value:"Wireframe"},Spray:{weight:6,value:"Spray"},Hamily:{weight:1,value:"Hamily"}},particleCounts={Less:{weight:1,value:85},Medium:{weight:5,value:100},More:{weight:1,value:120}},particleSizes={S:{weight:2,value:55},M:{weight:3,value:65},L:{weight:5,value:72},XL:{weight:1,value:85}},areaTypes={field:{weight:30,value:"field"},curl:{weight:6,value:"curl"},noise:{weight:4,value:"noise"},square:{weight:4,value:"square"},step:{weight:10,value:"step"},parallel:{weight:2,value:"parallel"},none:{weight:2,value:"none"}},emitTypes={even:{weight:12,value:"Even"},random:{weight:15,value:"Random"},linearHorizontal:{weight:3,value:"LinearHorzontal"},linearVertical:{weight:3,value:"LinearVertical"},linearSlope:{weight:2,value:"LinearSlope"},circular:{weight:3,value:"Circular"}},divisionTypes={rect:{weight:15,value:"Rect"},ang:{weight:5,value:"Ang"}},useChaosFactor=5,showCanvasTexture=!0,areas=[],mapListToWeightedKeys=e=>Object.entries(e).filter((e=>e[0])).reduce(((e,a)=>(e[a[0]]=a[1]&&a[1].weight||1,e)),{}),allFeatureList={Color:mapListToWeightedKeys(colors),StartPosition:mapListToWeightedKeys(startPositions),ParticleCount:mapListToWeightedKeys(particleCounts),ParticleSize:mapListToWeightedKeys(particleSizes),DivisionType:mapListToWeightedKeys(divisionTypes),EmitType:mapListToWeightedKeys(emitTypes),SpecialType:mapListToWeightedKeys(specialTypes)};function getValueOfList(e,a){return e[a]&&e[a].value||e[a]}function renderFeatures(){features.Color=R.random_choice_weight(allFeatureList.Color),useColorSet=getValueOfList(colors,features.Color),features.StartPosition=R.random_choice_weight(allFeatureList.StartPosition),useStartPosition=getValueOfList(startPositions,features.StartPosition),features.ParticleCount=R.random_choice_weight(allFeatureList.ParticleCount),useParticleCount=getValueOfList(particleCounts,features.ParticleCount),features.ParticleSize=R.random_choice_weight(allFeatureList.ParticleSize),useParticleSize=getValueOfList(particleSizes,features.ParticleSize),features.DivisionType=R.random_choice_weight(allFeatureList.DivisionType),useDivisionType=getValueOfList(divisionTypes,features.DivisionType),features.EmitType=R.random_choice_weight(allFeatureList.EmitType),useEmitType=getValueOfList(emitTypes,features.EmitType),features.SpecialType=R.random_choice_weight(allFeatureList.SpecialType),useSpecialType=getValueOfList(specialTypes,features.SpecialType),useChaosFactor=R.random_choice([0,1,2,2,3,3,3,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,7,8,8,9,10]),features.ChaosFactor=useChaosFactor}function preload(){canvasTexture=loadImage(canvasTextureBase64)}function div(e,a,t,i,r){if(R.random_dec()<.5+r/8&&r>0){let s=R.random_num(.2,.8);if(R.random_dec()<.3){let o=t*s;div(e,a,o,i,r-1),div(e+o,a,t-o,i,r-1)}else{let o=i*s;div(e,a,t,o,r-1),div(e,a+o,t,i-o,r-1)}}else{let r=new Area({x:e,y:a,w:t,h:i,type:getValueOfList(areaTypes,R.random_choice_weight(mapListToWeightedKeys(areaTypes))),sx:R.random_num(0,2),sy:R.random_num(0,2),noiseX:R.random_num(0,100),noiseY:R.random_num(0,1e3),noiseXAmp:R.random_num(-5,5),noiseYAmp:R.random_num(-5,5),gravity:createVector(R.random_num(-.15,.15),R.random_num(-.15,.15)),colors:useColorSet});r.draw(),areas.push(r)}}function divAng(e,a,t,i,r){R.random()<.3&&(r-=1);let s=R.random_num(.3,.7);if(r>0)if(R.random()<.4){let s=R.random_choice([2,2,2,2,2,3,4]);for(var o=1;o<=s;o++)divAng(e,a,t+(o-1)*(i-t)/s,t+o*(i-t)/s,r-1)}else divAng(e,e+s*(a-e),t,i,r-1),divAng(e+s*(a-e),a,t,i,r-1);else{let s=new AngArea({stR:e,edR:a,stAng:t,edAng:i,d:r,type:getValueOfList(areaTypes,R.random_choice_weight(mapListToWeightedKeys(areaTypes))),sx:R.random_num(0,2),sy:R.random_num(0,2),noiseX:R.random_num(0,100),noiseY:R.random_num(0,1e3),noiseXAmp:R.random_num(-5,5),noiseYAmp:R.random_num(-5,5),gravity:createVector(R.random_num(-.15,.15),R.random_num(-.15,.15)),colors:useColorSet});s.draw(),areas.push(s)}}renderFeatures();let ang,particles=[];var DEFAULT_SIZE=1200,WIDTH=window.innerWidth,HEIGHT=window.innerHeight,DIM=Math.min(WIDTH,HEIGHT),M=DIM/DEFAULT_SIZE;