!function(r,n){n.un,n.uns;var t=n.static,s=n.class,a=n.getset,o=(n.__newvec,laya.webgl.canvas.BlendMode),c=(laya.events.Event,laya.resource.HTMLCanvas),l=laya.utils.Handler,h=laya.webgl.utils.IndexBuffer2D,u=(laya.net.Loader,laya.maths.MathUtil),d=laya.maths.Matrix,m=laya.renders.Render,e=(laya.renders.RenderContext,laya.renders.RenderSprite,laya.webgl.shader.Shader),i=laya.display.Sprite,_=laya.utils.Stat,p=laya.resource.Texture,f=laya.utils.Utils,v=laya.webgl.shader.d2.value.Value2D,x=laya.webgl.utils.VertexBuffer2D,y=laya.webgl.WebGL,C=(laya.webgl.WebGLContext,function(){function t(){this._frameTime=0,this._emissionRate=60,this._emissionTime=0,this.minEmissionTime=1/60,this._particleTemplate=null}s(t,"laya.particle.emitter.EmitterBase");var e=t.prototype;return e.start=function(t){void 0===t&&(t=2147483647),0!=this._emissionRate&&(this._emissionTime=t)},e.stop=function(){this._emissionTime=0},e.clear=function(){this._emissionTime=0},e.emit=function(){},e.advanceTime=function(t){if(this._emissionTime-=t=void 0===t?1:t,!(this._emissionTime<0||(this._frameTime+=t,this._frameTimethis.minEmissionTime;)this._frameTime-=this.minEmissionTime,this.emit()},a(0,e,"particleTemplate",null,function(t){this._particleTemplate=t}),a(0,e,"emissionRate",function(){return this._emissionRate},function(t){t<=0||0<(this._emissionRate=t)&&(this.minEmissionTime=1/t)}),t}()),P=(s(g,"laya.particle.ParticleData"),g.Create=function(t,e,i,a){var r=new g;r.position=e,u.scaleVector3(i,t.emitterVelocitySensitivity,g._tempVelocity);e=u.lerp(t.minHorizontalVelocity,t.maxHorizontalVelocity,Math.random()),i=Math.random()*Math.PI*2;g._tempVelocity[0]+=e*Math.cos(i),g._tempVelocity[2]+=e*Math.sin(i),g._tempVelocity[1]+=u.lerp(t.minVerticalVelocity,t.maxVerticalVelocity,Math.random()),r.velocity=g._tempVelocity,r.startColor=g._tempStartColor,r.endColor=g._tempEndColor;var n=0;if(t.disableColor)for(n=0;n<4;n++)r.startColor[n]=1,r.endColor[n]=1;else if(t.colorComponentInter)for(n=0;n<4;n++)r.startColor[n]=u.lerp(t.minStartColor[n],t.maxStartColor[n],Math.random()),r.endColor[n]=u.lerp(t.minEndColor[n],t.maxEndColor[n],Math.random());else u.lerpVector4(t.minStartColor,t.maxStartColor,Math.random(),r.startColor),u.lerpVector4(t.minEndColor,t.maxEndColor,Math.random(),r.endColor);r.sizeRotation=g._tempSizeRotation;i=Math.random();r.sizeRotation[0]=u.lerp(t.minStartSize,t.maxStartSize,i),r.sizeRotation[1]=u.lerp(t.minEndSize,t.maxEndSize,i),r.sizeRotation[2]=u.lerp(t.minRotateSpeed,t.maxRotateSpeed,Math.random()),r.radius=g._tempRadius;i=Math.random();r.radius[0]=u.lerp(t.minStartRadius,t.maxStartRadius,i),r.radius[1]=u.lerp(t.minEndRadius,t.maxEndRadius,i),r.radian=g._tempRadian,r.radian[0]=u.lerp(t.minHorizontalStartRadian,t.maxHorizontalStartRadian,Math.random()),r.radian[1]=u.lerp(t.minVerticalStartRadian,t.maxVerticalStartRadian,Math.random());i=t.useEndRadian;return r.radian[2]=i?u.lerp(t.minHorizontalEndRadian,t.maxHorizontalEndRadian,Math.random()):r.radian[0],r.radian[3]=i?u.lerp(t.minVerticalEndRadian,t.maxVerticalEndRadian,Math.random()):r.radian[1],r.durationAddScale=t.ageAddScale*Math.random(),r.time=a,r},t(g,["_tempVelocity",function(){return this._tempVelocity=new Float32Array(3)},"_tempStartColor",function(){return this._tempStartColor=new Float32Array(4)},"_tempEndColor",function(){return this._tempEndColor=new Float32Array(4)},"_tempSizeRotation",function(){return this._tempSizeRotation=new Float32Array(3)},"_tempRadius",function(){return this._tempRadius=new Float32Array(2)},"_tempRadian",function(){return this._tempRadian=new Float32Array(4)}]),g);function g(){this.position=null,this.velocity=null,this.startColor=null,this.endColor=null,this.sizeRotation=null,this.radius=null,this.radian=null,this.durationAddScale=NaN,this.time=NaN}s(R,"laya.particle.ParticleEmitter"),R.prototype.update=function(t,e){if(0<(t/=1e3)){u.subtractVector3(e,this._previousPosition,this._tempVelocity),u.scaleVector3(this._tempVelocity,1/t,this._tempVelocity);for(var i=this._timeLeftOver+t,a=-this._timeLeftOver;i>this._timeBetweenParticles;)a+=this._timeBetweenParticles,i-=this._timeBetweenParticles,u.lerpVector3(this._previousPosition,e,a/t,this._tempPosition),this._templet.addParticleArray(this._tempPosition,this._tempVelocity);this._timeLeftOver=i}this._previousPosition[0]=e[0],this._previousPosition[1]=e[1],this._previousPosition[2]=e[2]};function R(t,e,i){this._templet=null,this._timeBetweenParticles=NaN,this._previousPosition=null,this._timeLeftOver=0,this._tempVelocity=new Float32Array([0,0,0]),this._tempPosition=new Float32Array([0,0,0]),this._templet=t,this._timeBetweenParticles=1/e,this._previousPosition=i}var S=(s(V,"laya.particle.ParticleSetting"),V.checkSetting=function(t){for(var e in V._defaultSetting)t.hasOwnProperty(e)||(t[e]=V._defaultSetting[e]);t.endVelocity=+t.endVelocity,t.gravity[0]=+t.gravity[0],t.gravity[1]=+t.gravity[1],t.gravity[2]=+t.gravity[2]},t(V,["_defaultSetting",function(){return this._defaultSetting=new V}]),V);function V(){this.textureName=null,this.textureCount=1,this.maxPartices=100,this.duration=1,this.ageAddScale=0,this.emitterVelocitySensitivity=1,this.minStartSize=100,this.maxStartSize=100,this.minEndSize=100,this.maxEndSize=100,this.minHorizontalVelocity=0,this.maxHorizontalVelocity=0,this.minVerticalVelocity=0,this.maxVerticalVelocity=0,this.endVelocity=1,this.minRotateSpeed=0,this.maxRotateSpeed=0,this.minStartRadius=0,this.maxStartRadius=0,this.minEndRadius=0,this.maxEndRadius=0,this.minHorizontalStartRadian=0,this.maxHorizontalStartRadian=0,this.minVerticalStartRadian=0,this.maxVerticalStartRadian=0,this.useEndRadian=!0,this.minHorizontalEndRadian=0,this.maxHorizontalEndRadian=0,this.minVerticalEndRadian=0,this.maxVerticalEndRadian=0,this.colorComponentInter=!1,this.disableColor=!1,this.blendState=0,this.emitterType="null",this.emissionRate=0,this.sphereEmitterRadius=1,this.sphereEmitterVelocity=0,this.sphereEmitterVelocityAddVariance=0,this.ringEmitterRadius=30,this.ringEmitterVelocity=0,this.ringEmitterVelocityAddVariance=0,this.ringEmitterUp=2,this.gravity=new Float32Array([0,0,0]),this.minStartColor=new Float32Array([1,1,1,1]),this.maxStartColor=new Float32Array([1,1,1,1]),this.minEndColor=new Float32Array([1,1,1,1]),this.maxEndColor=new Float32Array([1,1,1,1]),this.pointEmitterPosition=new Float32Array([0,0,0]),this.pointEmitterPositionVariance=new Float32Array([0,0,0]),this.pointEmitterVelocity=new Float32Array([0,0,0]),this.pointEmitterVelocityAddVariance=new Float32Array([0,0,0]),this.boxEmitterCenterPosition=new Float32Array([0,0,0]),this.boxEmitterSize=new Float32Array([0,0,0]),this.boxEmitterVelocity=new Float32Array([0,0,0]),this.boxEmitterVelocityAddVariance=new Float32Array([0,0,0]),this.sphereEmitterCenterPosition=new Float32Array([0,0,0]),this.ringEmitterCenterPosition=new Float32Array([0,0,0]),this.positionVariance=new Float32Array([0,0,0])}var E=(s(A,"laya.particle.ParticleTemplateBase"),A.prototype.addParticleArray=function(t,e){},A);function A(){this.settings=null,this.texture=null}var T=function(){function t(){this.u_Duration=NaN,this.u_EndVelocity=NaN,this.u_Gravity=null,this.a_Position=null,this.a_Velocity=null,this.a_StartColor=null,this.a_EndColor=null,this.a_SizeRotation=null,this.a_Radius=null,this.a_Radian=null,this.a_AgeAddScale=NaN,this.gl_Position=null,this.v_Color=null,this.oSize=NaN,this._color=new Float32Array(4),this._position=new Float32Array(3)}s(t,"laya.particle.particleUtils.CanvasShader");var e=t.prototype;return e.getLen=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},e.ComputeParticlePosition=function(t,e,i,a){this._position[0]=t[0],this._position[1]=t[1],this._position[2]=t[2];for(var r=this.getLen(e),n=r*a+(r*this.u_EndVelocity-r)*a*a/2,s=this.getLen(e),o=0,o=0;o<3;o++)this._position[o]=this._position[o]+e[o]/s*n*this.u_Duration,this._position[o]+=this.u_Gravity[o]*i*a;var l=u.lerp(this.a_Radius[0],this.a_Radius[1],a),h=u.lerp(this.a_Radian[0],this.a_Radian[2],a),t=u.lerp(this.a_Radian[1],this.a_Radian[3],a),r=Math.cos(t)*l;return this._position[1]+=Math.sin(t)*l,this._position[0]+=Math.cos(h)*r,this._position[2]+=Math.sin(h)*r,new Float32Array([this._position[0],this._position[1],0,1])},e.ComputeParticleSize=function(t,e,i){return u.lerp(t,e,i)},e.ComputeParticleRotation=function(t,e){return t*e},e.ComputeParticleColor=function(t,e,i){var a=this._color;return u.lerpVector4(t,e,i,a),a[3]=a[3]*i*(1-i)*(1-i)*6.7,a},e.clamp=function(t,e,i){return t>16&255,n=e>>8&255,s=255&e;if(m.isConchApp&&a.setFilter(r/255,n/255,s/255,0),a.drawImage(t.source,0,0),!m.isConchApp){for(var t=a.getImageData(0,0,i.width,i.height),o=t.data,l=0,h=o.length;l=this.settings.maxPartices&&(this._firstActiveElement=0)}},t.freeRetiredParticles=function(){for(;this._firstRetiredElement!=this._firstActiveElement;){if(this._drawCounter-this._vertices[this._firstRetiredElement*this._floatCountPerVertex*4+28]<3)break;this._firstRetiredElement++,this._firstRetiredElement>=this.settings.maxPartices&&(this._firstRetiredElement=0)}},t.addNewParticlesToVertexBuffer=function(){},t.addParticleArray=function(t,e){var i=this._firstFreeElement+1;if((i=i>=this.settings.maxPartices?0:i)!==this._firstRetiredElement){for(var a=P.Create(this.settings,t,e,this._currentTime),r=this._firstFreeElement*this._floatCountPerVertex*4,n=0;n<4;n++){for(var s=0,o=0,s=0,o=4;s<3;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.position[s];for(s=0,o=7;s<3;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.velocity[s];for(s=0,o=10;s<4;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.startColor[s];for(s=0,o=14;s<4;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.endColor[s];for(s=0,o=18;s<3;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.sizeRotation[s];for(s=0,o=21;s<2;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.radius[s];for(s=0,o=23;s<4;s++)this._vertices[r+n*this._floatCountPerVertex+o+s]=a.radian[s];this._vertices[r+n*this._floatCountPerVertex+27]=a.durationAddScale,this._vertices[r+n*this._floatCountPerVertex+28]=a.time}this._firstFreeElement=i}},e}(),N=function(){function e(t){this._ready=!1,this.textureList=[],this.particleList=[],this.pX=0,this.pY=0,this.activeParticles=[],this.deadParticles=[],this.iList=[],this._maxNumParticles=0,this.textureWidth=NaN,this.dTextureWidth=NaN,this.colorChange=!0,this.step=1/60,this.canvasShader=new T,e.__super.call(this),this.settings=t,this._maxNumParticles=t.maxPartices,this.texture=new p,this.texture.on("loaded",this,this._textureLoaded),this.texture.load(t.textureName)}s(e,"laya.particle.ParticleTemplateCanvas",E);var t=e.prototype;return t._textureLoaded=function(t){this.setTexture(this.texture),this._ready=!0},t.clear=function(t){void 0===t&&(t=!0),this.deadParticles.length=0,this.activeParticles.length=0,this.textureList.length=0},t.setTexture=function(t){this.texture=t,this.textureWidth=t.width,this.dTextureWidth=1/this.textureWidth,this.pX=.5*-t.width,this.pY=.5*-t.height,this.textureList=e.changeTexture(t,this.textureList),this.particleList.length=0,this.deadParticles.length=0,this.activeParticles.length=0},t._createAParticleData=function(t,e){this.canvasShader.u_EndVelocity=this.settings.endVelocity,this.canvasShader.u_Gravity=this.settings.gravity,this.canvasShader.u_Duration=this.settings.duration,t=P.Create(this.settings,t,e,0),this.canvasShader.a_Position=t.position,this.canvasShader.a_Velocity=t.velocity,this.canvasShader.a_StartColor=t.startColor,this.canvasShader.a_EndColor=t.endColor,this.canvasShader.a_SizeRotation=t.sizeRotation,this.canvasShader.a_Radius=t.radius,this.canvasShader.a_Radian=t.radian,this.canvasShader.a_AgeAddScale=t.durationAddScale,this.canvasShader.oSize=this.textureWidth;for(var e=new w,i=0,a=this.settings.duration/(1+t.durationAddScale),r=[],i=0;i=e.maxIndex?(n=0,i.splice(r,1),a.push(e)):n+=1,s[e.id]=n},t.render=function(t,e,i){this._ready&&(this.activeParticles.length<1||this.textureList.length<2||(this.settings.disableColor?this.noColorRender(t,e,i):this.canvasRender(t,e,i)))},t.noColorRender=function(t,e,i){var a,r,n,s,o=this.activeParticles,l=0,h=o.length,c=this.pX,u=this.pY,d=2*-c,m=2*-u,_=(this.textureList,this.iList);for(t.translate(e,i),s=t.ctx.globalAlpha,l=0;l