{
	FUNC["fill_stay"]=
	{
		_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 );
		CurKara( _line, _kara );
		_ce = range(CurLineStart+TimePerKara*_kara+TimePerKara,CurLineStart,CurKaraStart);
		_cs = _ce - TimePerKara*3;
		_a = (CurTime() - _cs)/(_ce-_cs);
		_a = range( _a, 0, 1 );
		DrawFinal( _draw1, _posx, _posy, 100, 100*_a, range(_a*3,0,1) );
	}
	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 );

		GenParticleFx( "fill_explo", _draw2, 0, _posx, _posy, 0.005, 0.25, 0 );
		GenParticleFx( "fill_explo", _draw1, 1, _posx, _posy, 0.01, 0.5, 0 );

		ParticleForce( "fill_explo", _posx+rand(-10,10), _posy+rand(-20,20), 10, 0.3 );
		ParticleForce( "fill_explo", _posx+rand(-20,10), _posy+rand(-10,20), 10, 0.3 );
		ParticleForce( "fill_explo", _posx+rand(-10,20), _posy+rand(-20,10), 10, 0.3 );
		ParticleForce( "fill_explo", _posx+rand(-20,20), _posy+rand(-20,20), 10, 0.3 );
	}
	FUNC["perKara_fill"]=
	{
		SharpForErrors(1);
		Emit( "fill_stay", CurLineStart, CurKaraStart, CurLine, CurKara, -1 );
		Emit( "fill_explo", CurKaraStart, CurKaraStart+oneframe, CurLine, CurKara, -1 );
	}


	FUNC["border_stay"]=
	{
		_col2_r = GetParam( _line, "Color2", CurTime(), 0 );
		_col2_g = GetParam( _line, "Color2", CurTime(), 1 );
		_col2_b = GetParam( _line, "Color2", CurTime(), 2 );
		_draw2 = FillColor( _img_border, _col2_r, _col2_g, _col2_b );
		CurKara( _line, _kara );
		_ce = range(CurLineStart+TimePerKara*_kara,CurLineStart,CurKaraStart);
		_cs = _ce - TimePerKara*3;
		_a = (CurTime() - _cs)/(_ce-_cs);
		_a = range( _a, 0, 1 );
		DrawFinal( _draw2, _posx, _posy, 100, 100, _a );
	}
	FUNC["perKara_border"]=
	{
		SharpForErrors(1);
		Emit( "border_stay", CurLineStart, CurKaraStart, CurLine, CurKara, -1 );
		Emit( "border_explo", CurKaraStart-oneframe, CurKaraStart, CurLine, CurKara, -1 );
	}


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


	TimePerKara = 0.05;
	EnumLines( "perLine" );
}