{
	BlendinTime = 0.5;
	BlendoutTime = 0.2;
	FUNC["fill_explo"]=
	{
		_col0_r = GetParam( _line, "Color0", CurTime(), 0 );
		_col0_g = GetParam( _line, "Color0", CurTime(), 1 );
		_col0_b = GetParam( _line, "Color0", CurTime(), 2 );
		_draw1 = FillColor( _img_text, _col0_r, _col0_g, _col0_b );

		_col2_r = GetParam( _line, "Color2", CurTime(), 0 );
		_col2_g = GetParam( _line, "Color2", CurTime(), 1 );
		_col2_b = GetParam( _line, "Color2", CurTime(), 2 );
		_draw2 = FillColor( _img_text, _col2_r, _col2_g, _col2_b );

		_name = "l" + _line + "k" + _kara + "e";
		GenParticleFx( _name + "1", _draw2, -1, _posx, _posy, 0.005, 0.25, 0 );
		GenParticleFx( _name + "2", _draw1, -1, _posx, _posy, 0.01, 0.5, 0 );
		ParticleTraced( _name + "1", "trace" );
		ParticleTraced( _name + "2", "trace" );
	}

	FUNC["trace"]=
	{
		_a = CurTime() - _start;
		_a = _a/BlendinTime;
		_as = (ParticleX)*0.002;
		_a = range( _a-_as, 0,1 );
		_a2 = _end - CurTime();
		_a2 = _a2/BlendoutTime;
		_a2 = range( _a2, 0,1 );
		_asd = ParticleA;
		ParticleA = _asd*_a*_a2;

		_off = ParticleX+ParticleY*107;
		_sox = ParticleX - _posx;
		_soy = ParticleY - _posy;
		ParticleX = ParticleX;// + (1-_a)*20;
		ParticleY = _soy*(1 - _a)*4*sin(_off) + ParticleY;
		ParticleY = abs(_soy*(1 - _a2)*4*sin(_off)) + ParticleY;
	}


	FUNC["draw_particles"]=
	{
		_name = "l" + _line + "k" + _kara + "e";
		DrawParticles( _name + "2" );
	}

	FUNC["draw_particles_border"]=
	{
		_name = "l" + _line + "k" + _kara + "e";
		DrawParticles( _name + "1" );
	}


	FUNC["perKara_border"]=
	{
		sta = CurLineStart-BlendinTime;
		Emit( "draw_particles_border", sta, CurKaraEnd+BlendoutTime, CurLine, CurKara, -1 );
	}

	FUNC["perKara_fill"]=
	{
		sta = CurLineStart-BlendinTime;
		Emit( "fill_explo", sta, sta+oneframe, CurLine, CurKara, -1 );
		Emit( "draw_particles", sta, CurKaraEnd+BlendoutTime, CurLine, CurKara, -1 );
	}

	FUNC["perLine_japro"]=
	{
		EnumKaras( "perKara_border", CurLine );
		EnumKaras( "perKara_fill", CurLine );
	}

	EnumLinesAddStyle( "perLine" );
}