
//=======================================================================
//@e̒xŎ̃GtFNg\ׂ̊֐WłB
//@̃t@Cinclude_functionŎ荞ނA
//@KvȕRsyĎgpĂB
//-----------------------------------------------------------------------
//@Obj_ShotALL.txt荞ޏꍇ
//@̃tH_荞ޕKv͂܂B
//=======================================================================

//=======================================================================
//  摜ւ̃pX \Ⴄꍇ͗vύX
//-----------------------------------------------------------------------
let shoteff   = GetCurrentScriptDirectory()~ "img/ShotEffect01.png";
let etbreak01 = GetCurrentScriptDirectory()~ "img/etbreak_th13_HD.png";
let etbreak02 = GetCurrentScriptDirectory()~ "img/etbreak_th14_HD.png";
let etbreak03 = GetCurrentScriptDirectory()~ "img/etbreak_th13.png";
let etbreak04 = GetCurrentScriptDirectory()~ "img/etbreak_th14.png";
//=======================================================================

//=======================================================================
//  GtFNgw萔̎荞
//-----------------------------------------------------------------------
#include"./lib_EffectId.txt"
//=======================================================================

//-----------------------------------------------------------------------
//  xGtFNg [th06`th14]
//-----------------------------------------------------------------------
let DELAY01_01_rectU	= [  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,256,320,384,448,256,320,384,448,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 64,128,192,  0, 64,128,192,  0,  0,  0, 33, 64, 96,128,160,192,224,  0,  0];
let DELAY01_01_rectV	= [  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 64, 64, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65, 65, 65, 65, 65, 65, 65, 65,  0,  0,257,257,257,257,257,257,257,257,  0,  0,384,384,384,384,448,448,448,448,  0,  0,321,321,321,321,321,321,321,321,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotDelay(id,X,Y,Alpha,Angle,Time) {

	let eff		= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 1.00+(0.125*Time);
	let scale1	= 1.00+(0.125*Time);
	let scale2	= 1.00;
	let alpha	= Alpha;
	let alpha2	= alpha;
	let addUV	= 30;
	let py		= 0;

	if(id>=100) { ObjRender_SetBlendType(eff,BLEND_ADD_RGB); id -= 100; py = 32;  }
	alternative(truncate(id/10))
	case(7)   { Angle = -90; }
	case(0)   { scale = scale*0.60; scale1 = scale1*0.60; scale2 = scale2*0.60; }
	case(3)   { scale = scale*0.36; scale1 = scale1*0.36; scale2 = scale2*0.36; }
	case(2,8) { alpha = 0; alpha2 = 0; py = 0; addUV = 64; ObjRender_SetBlendType(eff,BLEND_ADD_RGB); }

        LoadTexture(shoteff);

	ObjRender_SetPosition(eff,X,Y,0);
	ObjPrim_SetTexture(eff,shoteff);
	ObjPrim_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetScaleXYZ(eff,scale,scale,1);
	ObjRender_SetAngleXYZ(eff,0,0,Angle+90);
	Obj_SetRenderPriorityI(eff,50);
	ObjPrim_SetVertexCount(eff,4);
	ObjPrim_SetVertexPosition(eff,0,-addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff,1,-addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff,2, addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff,3, addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexUVT(eff,0,DELAY01_01_rectU[id],DELAY01_01_rectV[id]+py);
	ObjPrim_SetVertexUVT(eff,1,DELAY01_01_rectU[id],DELAY01_01_rectV[id]+addUV+py);
	ObjPrim_SetVertexUVT(eff,2,DELAY01_01_rectU[id]+addUV,DELAY01_01_rectV[id]+py);
	ObjPrim_SetVertexUVT(eff,3,DELAY01_01_rectU[id]+addUV,DELAY01_01_rectV[id]+addUV+py);

	loop(Time) {
		alpha += (255-alpha2)/Time;
		scale -= (scale1-scale2)/Time;

		ObjRender_SetScaleXYZ(eff,scale,scale,1);
		ObjPrim_SetVertexColor(eff,0,255,255,255);
		ObjPrim_SetVertexColor(eff,1,255,255,255);
		ObjPrim_SetVertexColor(eff,2,255,255,255);
		ObjPrim_SetVertexColor(eff,3,255,255,255);
		ObjPrim_SetVertexAlpha(eff,0,alpha);
		ObjPrim_SetVertexAlpha(eff,1,alpha);
		ObjPrim_SetVertexAlpha(eff,2,alpha);
		ObjPrim_SetVertexAlpha(eff,3,alpha);
		yield;
	}
	Obj_Delete(eff);
}

//-----------------------------------------------------------------------
//  ŃGtFNg [th06`th09.5]
//-----------------------------------------------------------------------
let BREAK01_01_rectU	= [257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0,256,320,384,448,256,320,384,448,  0,  0,257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0,257,288,320,352,384,416,448,480,  0,  0];
let BREAK01_01_rectV	= [128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0,  0,  0,  0,  0, 64, 64, 64, 64,  0,  0,128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0,128,128,128,128,128,128,128,128,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotBreak01(id,X,Y,Angle,Time) {

	let eff		= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 0.80;
	let scale1	= 0.80;
	let scale2	= 1.40;
	let alpha	= 255;
	let addUV	= 31;

	if(id>=100) { id -= 100; }
	alternative(truncate(id/10))
	case(2)     { scale = 1.00; addUV = 64; ObjRender_SetBlendType(eff,BLEND_ADD_RGB);    }
	case(3)     { scale = scale*0.60; scale1 = scale1*0.60; scale2 = scale2*0.60; }
	case(8)     { scale = scale*1.80; scale1 = scale1*1.80; scale2 = scale2*1.80; }
	case(6,7,9) { scale = scale*1.30; scale1 = scale1*1.30; scale2 = scale2*1.30; }
	case(1,4,5) { scale = scale*1.50; scale1 = scale1*1.50; scale2 = scale2*1.50; }

        LoadTexture(shoteff);

	ObjRender_SetPosition(eff,X,Y,0);
	ObjPrim_SetTexture(eff,shoteff);
	ObjPrim_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetScaleXYZ(eff,scale,scale,1);
	ObjRender_SetAngleXYZ(eff,0,0,Angle+90);
	Obj_SetRenderPriorityI(eff,30);
	ObjPrim_SetVertexCount(eff,4);
	ObjPrim_SetVertexPosition(eff,0,-addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff,1,-addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff,2, addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff,3, addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexUVT(eff,0,BREAK01_01_rectU[id],BREAK01_01_rectV[id]);
	ObjPrim_SetVertexUVT(eff,1,BREAK01_01_rectU[id],BREAK01_01_rectV[id]+addUV);
	ObjPrim_SetVertexUVT(eff,2,BREAK01_01_rectU[id]+addUV,BREAK01_01_rectV[id]);
	ObjPrim_SetVertexUVT(eff,3,BREAK01_01_rectU[id]+addUV,BREAK01_01_rectV[id]+addUV);

	alternative(truncate(id/10))
	case(2) {
		loop(Time) {
			alpha -= 255/Time;
			scale -= 1.00/Time;
			ObjRender_SetScaleXYZ(eff,scale,scale,1);
			ObjPrim_SetVertexColor(eff,0,255,255,255);
			ObjPrim_SetVertexColor(eff,1,255,255,255);
			ObjPrim_SetVertexColor(eff,2,255,255,255);
			ObjPrim_SetVertexColor(eff,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff,0,alpha);
			ObjPrim_SetVertexAlpha(eff,1,alpha);
			ObjPrim_SetVertexAlpha(eff,2,alpha);
			ObjPrim_SetVertexAlpha(eff,3,alpha);
			yield;
		}
	}

	others  {
		loop(Time) {
			alpha -= 255/Time;
			scale += (scale2-scale1)/Time;
			ObjRender_SetScaleXYZ(eff,scale,scale,1);
			ObjPrim_SetVertexColor(eff,0,255,255,255);
			ObjPrim_SetVertexColor(eff,1,255,255,255);
			ObjPrim_SetVertexColor(eff,2,255,255,255);
			ObjPrim_SetVertexColor(eff,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff,0,alpha);
			ObjPrim_SetVertexAlpha(eff,1,alpha);
			ObjPrim_SetVertexAlpha(eff,2,alpha);
			ObjPrim_SetVertexAlpha(eff,3,alpha);
			yield;
		}
	}
	Obj_Delete(eff);
}

//-----------------------------------------------------------------------
//  ŃGtFNg [th10`th12]
//-----------------------------------------------------------------------
let BREAK02_01_rectU	= [  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,256,320,384,448,256,320,384,448,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0,  0, 64,128,192,  0, 64,128,192,  0,  0,  0, 32, 64, 96,128,160,192,224,  0,  0];
let BREAK02_01_rectV	= [192,192,192,192,192,192,192,192,  0,  0,224,224,224,224,224,224,224,224,  0,  0,  0,  0,  0,  0, 64, 64, 64, 64,  0,  0,192,192,192,192,192,192,192,192,  0,  0,161,161,161,161,161,161,161,161,  0,  0,129,129,129,129,129,129,129,129,  0,  0,192,192,192,192,192,192,192,192,  0,  0,192,192,192,192,192,192,192,192,  0,  0,384,384,384,384,448,448,448,448,  0,  0,192,192,192,192,192,192,192,192,  0,  0];
let BREAK02_01_rectU2	= [  0, 32, 64, 96,128,160,192,224,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotBreak02(id,X,Y,Angle,Time) {

	let eff1	= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let eff2	= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 1.00;
	let scale1	= 1.00;
	let scale2	= 1.20;
	let scale3	= 1.00;
	let e_angle	= truncate(rand(0,360));
	let alpha	= 255;
	let alpha2	= 255;
	let addUV	= 31;

	if(id>=100) { id -= 100; }
	alternative(truncate(id/10))
	case(1)     { scale   = 1.00; scale1 = 1.00; scale2 = 1.20; scale3 = 1.60; }
	case(3)     { scale   = 0.60; scale1 = 0.60; scale2 = 0.72; scale3 = 0.60; }
	case(6,7,9) { scale   = 1.20; scale1 = 1.20; scale2 = 1.44; scale3 = 1.60; }
	case(2,8)   { e_angle = Angle+90; addUV = 64;  }
	case(4,5)   { e_angle = Angle+90; scale3 = 1.20; }

        LoadTexture(shoteff);

	ObjRender_SetPosition(eff1,X,Y,0);
//	Obj_SetSpeed(eff1,0);
//	Obj_SetAngle(eff1,-90);
	ObjPrim_SetTexture(eff1,shoteff);
	ObjRender_SetBlendType(eff1,BLEND_ADD_RGB);
	ObjPrim_SetPrimitiveType(eff1,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetAngleXYZ(eff1,0,0,e_angle);
	Obj_SetRenderPriorityI(eff1,30);
	ObjPrim_SetVertexCount(eff1,4);
	ObjPrim_SetVertexPosition(eff1,0,-addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff1,1,-addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff1,2, addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff1,3, addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexUVT(eff1,0,BREAK02_01_rectU[id],BREAK02_01_rectV[id]);
	ObjPrim_SetVertexUVT(eff1,1,BREAK02_01_rectU[id],BREAK02_01_rectV[id]+addUV);
	ObjPrim_SetVertexUVT(eff1,2,BREAK02_01_rectU[id]+addUV,BREAK02_01_rectV[id]);
	ObjPrim_SetVertexUVT(eff1,3,BREAK02_01_rectU[id]+addUV,BREAK02_01_rectV[id]+addUV);

	ObjRender_SetPosition(eff2,X,Y,0);
//	Obj_SetSpeed(eff2,24/Time);
//	Obj_SetAngle(eff2,-90);
	ObjPrim_SetTexture(eff2,shoteff);
	ObjRender_SetBlendType(eff2,BLEND_ADD_RGB);
	ObjPrim_SetPrimitiveType(eff2,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetAngleXYZ(eff2,0,0,45*truncate(rand(0,8)) );
	Obj_SetRenderPriorityI(eff2,30);
	ObjPrim_SetVertexCount(eff2,4);
	ObjPrim_SetVertexPosition(eff2,0,-addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff2,1,-addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff2,2, addUV/2.00,-addUV/2.00,0);
	ObjPrim_SetVertexPosition(eff2,3, addUV/2.00, addUV/2.00,0);
	ObjPrim_SetVertexUVT(eff2,0,BREAK02_01_rectU2[id%10],192);
	ObjPrim_SetVertexUVT(eff2,1,BREAK02_01_rectU2[id%10],224);
	ObjPrim_SetVertexUVT(eff2,2,BREAK02_01_rectU2[id%10]+addUV,192);
	ObjPrim_SetVertexUVT(eff2,3,BREAK02_01_rectU2[id%10]+addUV,224);

	alternative(truncate(id/10))
	case(2,8) {
		loop(Time) {
			alpha  -= 255/Time;
			alpha2 -= 255/(Time/2);
			scale  -= 1.00/Time;

			ObjRender_SetScaleXYZ(eff1,scale,scale,1);
			ObjRender_SetScaleXYZ(eff2,scale3*0,scale3*0,1);
			ObjPrim_SetVertexColor(eff1,0,255,255,255);
			ObjPrim_SetVertexColor(eff1,1,255,255,255);
			ObjPrim_SetVertexColor(eff1,2,255,255,255);
			ObjPrim_SetVertexColor(eff1,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff1,0,alpha );
			ObjPrim_SetVertexAlpha(eff1,1,alpha );
			ObjPrim_SetVertexAlpha(eff1,2,alpha );
			ObjPrim_SetVertexAlpha(eff1,3,alpha );
			ObjPrim_SetVertexColor(eff2,0,255,255,255);
			ObjPrim_SetVertexColor(eff2,1,255,255,255);
			ObjPrim_SetVertexColor(eff2,2,255,255,255);
			ObjPrim_SetVertexColor(eff2,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff2,0,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,1,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,2,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,3,alpha2 );
                        ObjRender_SetY(eff2,ObjRender_GetY(eff2)-24/Time);                    
			yield;
		}
	}

	case(1,4,5) {
		loop(Time) {
			alpha  -= 255/Time;
			alpha2 -= 255/(Time/2);
			scale  += (scale2-scale1)/Time;
			scale3 += 0.60/(Time/2);

			ObjRender_SetScaleXYZ(eff1,scale,scale,1);
			ObjRender_SetScaleXYZ(eff2,scale3*0.75,scale3,1);
			ObjPrim_SetVertexColor(eff1,0,255,255,255);
			ObjPrim_SetVertexColor(eff1,1,255,255,255);
			ObjPrim_SetVertexColor(eff1,2,255,255,255);
			ObjPrim_SetVertexColor(eff1,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff1,0,alpha );
			ObjPrim_SetVertexAlpha(eff1,1,alpha );
			ObjPrim_SetVertexAlpha(eff1,2,alpha );
			ObjPrim_SetVertexAlpha(eff1,3,alpha );
			ObjPrim_SetVertexColor(eff2,0,255,255,255);
			ObjPrim_SetVertexColor(eff2,1,255,255,255);
			ObjPrim_SetVertexColor(eff2,2,255,255,255);
			ObjPrim_SetVertexColor(eff2,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff2,0,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,1,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,2,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,3,alpha2 );
                        ObjRender_SetY(eff2,ObjRender_GetY(eff2)-24/Time);
			yield;
		}
	}

	others {
		loop(Time) {
			alpha  -= 255/Time;
			alpha2 -= 255/(Time/2);
			scale  -= (scale2)/Time;
			scale3 += 0.60/(Time/2);

			ObjRender_SetScaleXYZ(eff1,scale,scale,1);
			ObjRender_SetScaleXYZ(eff2,scale3*0.75,scale3,1);
			ObjPrim_SetVertexColor(eff1,0,255,255,255);
			ObjPrim_SetVertexColor(eff1,1,255,255,255);
			ObjPrim_SetVertexColor(eff1,2,255,255,255);
			ObjPrim_SetVertexColor(eff1,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff1,0,alpha );
			ObjPrim_SetVertexAlpha(eff1,1,alpha );
			ObjPrim_SetVertexAlpha(eff1,2,alpha );
			ObjPrim_SetVertexAlpha(eff1,3,alpha );
			ObjPrim_SetVertexColor(eff2,0,255,255,255);
			ObjPrim_SetVertexColor(eff2,1,255,255,255);
			ObjPrim_SetVertexColor(eff2,2,255,255,255);
			ObjPrim_SetVertexColor(eff2,3,255,255,255);
			ObjPrim_SetVertexAlpha(eff2,0,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,1,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,2,alpha2 );
			ObjPrim_SetVertexAlpha(eff2,3,alpha2 );
                        ObjRender_SetY(eff2,ObjRender_GetY(eff2)-24/Time);
			yield;
		}
	}
	Obj_Delete(eff1);
	Obj_Delete(eff2);
}

//-----------------------------------------------------------------------
//  ŃGtFNg [th12.5`th13] [𑜓x]
//-----------------------------------------------------------------------
let BREAK03_01_rectU	= [  2, 66,130,194,258,322,386,448];
let BREAK03_01_rectV	= [  1,  1,  1,  1,  1,  1,  1,  1];
let BREAK03_01_R 	= [240,240,240, 30, 30, 60,240,240,  0,  0];
let BREAK03_01_G	= [ 30,120,240,240,240, 60, 30,240,  0,  0];
let BREAK03_01_B	= [ 30, 30, 30, 30,240,240,240,240,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotBreak03(id,X,Y,Angle,Time) {

	let eff		= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 0.80;
	let alpha	= 255;
	let rect	= 0;
	let i		= 0;

	if(id>=100) { id -= 100; }
	alternative(truncate(id/10))
	case(3)           { scale = 0.60; }
	case(2,8)         { scale = 1.40; }
	case(1,4,5,6,7,9) { scale = 1.10; }

        LoadTexture(etbreak01);

	ObjRender_SetPosition(eff,X,Y,0);
	ObjPrim_SetTexture(eff,etbreak01);
	ObjRender_SetBlendType(eff,BLEND_ADD_RGB);
	ObjPrim_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetScaleXYZ(eff,scale/2,scale/2,1);
	ObjRender_SetAngleXYZ(eff,180*truncate(rand(0,2)),0,truncate(rand(0,360)) );
	Obj_SetRenderPriorityI(eff,30);
	ObjPrim_SetVertexCount(eff,4);
	ObjPrim_SetVertexPosition(eff,0,-32,-32,0);
	ObjPrim_SetVertexPosition(eff,1,-32, 32,0);
	ObjPrim_SetVertexPosition(eff,2, 32,-32,0);
	ObjPrim_SetVertexPosition(eff,3, 32, 32,0);

	loop(8) {
		loop(Time/8) {
			ObjPrim_SetVertexUVT(eff,0,BREAK03_01_rectU[i],BREAK03_01_rectV[i]);
			ObjPrim_SetVertexUVT(eff,1,BREAK03_01_rectU[i],BREAK03_01_rectV[i]+62);
			ObjPrim_SetVertexUVT(eff,2,BREAK03_01_rectU[i]+62,BREAK03_01_rectV[i]);
			ObjPrim_SetVertexUVT(eff,3,BREAK03_01_rectU[i]+62,BREAK03_01_rectV[i]+62);
			ObjPrim_SetVertexColor(eff,0,BREAK03_01_R[id%10],BREAK03_01_G[id%10],BREAK03_01_B[id%10]);
			ObjPrim_SetVertexColor(eff,1,BREAK03_01_R[id%10],BREAK03_01_G[id%10],BREAK03_01_B[id%10]);
			ObjPrim_SetVertexColor(eff,2,BREAK03_01_R[id%10],BREAK03_01_G[id%10],BREAK03_01_B[id%10]);
			ObjPrim_SetVertexColor(eff,3,BREAK03_01_R[id%10],BREAK03_01_G[id%10],BREAK03_01_B[id%10]);
			ObjPrim_SetVertexAlpha(eff,0,alpha);
			ObjPrim_SetVertexAlpha(eff,1,alpha);
			ObjPrim_SetVertexAlpha(eff,2,alpha);
			ObjPrim_SetVertexAlpha(eff,3,alpha);
			yield;
		}
		i++;
		alpha -= 128/8;
	}
	Obj_Delete(eff);
}

//-----------------------------------------------------------------------
//  ŃGtFNg [th14] [𑜓x]
//-----------------------------------------------------------------------
let BREAK04_01_rectU	= [  0, 64,128,192,256,320,384,448];
let BREAK04_01_rectV	= [  0,  0,  0,  0,  0,  0,  0,  0];
let BREAK04_01_R	= [240,240,240, 30, 30, 60,240,240,  0,  0];
let BREAK04_01_G	= [ 30,120,240,240,240, 60, 30,240,  0,  0];
let BREAK04_01_B	= [ 30, 30, 30, 30,240,240,240,240,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotBreak04(id,X,Y,Angle,Time) {

	let eff		= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 1.20;
	let alpha	= 255;
	let rect	= 0;
	let i		= 0;

	if(id>=100) { id -= 100; }
	alternative(truncate(id/10))
	case(3)           { scale = 0.80; }
	case(2,8)         { scale = 1.80; }
	case(1,4,5,6,7,9) { scale = 1.80; }

	LoadTexture(etbreak02);

	ObjRender_SetPosition(eff,X,Y,0);
	ObjPrim_SetTexture(eff,etbreak02);
	ObjRender_SetBlendType(eff,BLEND_ADD_RGB);
	ObjPrim_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetScaleXYZ(eff,scale/2,scale/2,1);
	ObjRender_SetAngleXYZ(eff,180*truncate(rand(0,2)),0,truncate(rand(0,360)) );
	Obj_SetRenderPriorityI(eff,30);
	ObjPrim_SetVertexCount(eff,4);
	ObjPrim_SetVertexPosition(eff,0,-32,-32,0);
	ObjPrim_SetVertexPosition(eff,1,-32, 32,0);
	ObjPrim_SetVertexPosition(eff,2, 32,-32,0);
	ObjPrim_SetVertexPosition(eff,3, 32, 32,0);

	loop(8) {
		loop(Time/8) {
			ObjPrim_SetVertexUVT(eff,0,BREAK04_01_rectU[i],BREAK04_01_rectV[i]);
			ObjPrim_SetVertexUVT(eff,1,BREAK04_01_rectU[i],BREAK04_01_rectV[i]+64);
			ObjPrim_SetVertexUVT(eff,2,BREAK04_01_rectU[i]+63,BREAK04_01_rectV[i]);
			ObjPrim_SetVertexUVT(eff,3,BREAK04_01_rectU[i]+63,BREAK04_01_rectV[i]+64);
			ObjPrim_SetVertexColor(eff,0,BREAK04_01_R[id%10],BREAK04_01_G[id%10],BREAK04_01_B[id%10]);
			ObjPrim_SetVertexColor(eff,1,BREAK04_01_R[id%10],BREAK04_01_G[id%10],BREAK04_01_B[id%10]);
			ObjPrim_SetVertexColor(eff,2,BREAK04_01_R[id%10],BREAK04_01_G[id%10],BREAK04_01_B[id%10]);
			ObjPrim_SetVertexColor(eff,3,BREAK04_01_R[id%10],BREAK04_01_G[id%10],BREAK04_01_B[id%10]);
			ObjPrim_SetVertexAlpha(eff,0,alpha);
			ObjPrim_SetVertexAlpha(eff,1,alpha);
			ObjPrim_SetVertexAlpha(eff,2,alpha);
			ObjPrim_SetVertexAlpha(eff,3,alpha);
			yield;
		}
		i++;
		alpha -= 128/8;
	}
	Obj_Delete(eff);
}


//-----------------------------------------------------------------------
//  ŃGtFNg [th12.5`th13] [𑜓x]
//-----------------------------------------------------------------------
let BREAK03_02_rectU	= [  1, 33, 65, 97,129,161,193,225];
let BREAK03_02_rectV	= [  1,  1,  1,  1,  1,  1,  1,  1];
let BREAK03_02_R	= [240,240,240, 30, 30, 60,240,240,  0,  0];
let BREAK03_02_G	= [ 30,120,240,240,240, 60, 30,240,  0,  0];
let BREAK03_02_B	= [ 30, 30, 30, 30,240,240,240,240,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotBreak03_Old(id,X,Y,Angle,Time) {

	let eff		= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 0.80;
	let alpha	= 255;
	let rect	= 0;
	let i		= 0;

	if(id>=100) { id -= 100; }
	alternative(truncate(id/10))
	case(3)           { scale = 0.60; }
	case(2,8)         { scale = 1.40; }
	case(1,4,5,6,7,9) { scale = 1.10; }

	LoadTexture(etbreak03);

	ObjRender_SetPosition(eff,X,Y,0);
	ObjPrim_SetTexture(eff,etbreak03);
	ObjRender_SetBlendType(eff,BLEND_ADD_RGB);
	ObjPrim_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetScaleXYZ(eff,scale,scale,1);
	ObjRender_SetAngleXYZ(eff,180*truncate(rand(0,2)),0,truncate(rand(0,360)) );
	Obj_SetRenderPriorityI(eff,30);
	ObjPrim_SetVertexCount(eff,4);
	ObjPrim_SetVertexPosition(eff,0,-16,-16,0);
	ObjPrim_SetVertexPosition(eff,1,-16, 16,0);
	ObjPrim_SetVertexPosition(eff,2, 16,-16,0);
	ObjPrim_SetVertexPosition(eff,3, 16, 16,0);

	loop(8) {
		loop(Time/8) {
			ObjPrim_SetVertexUVT(eff,0,BREAK03_02_rectU[i],BREAK03_02_rectV[i]);
			ObjPrim_SetVertexUVT(eff,1,BREAK03_02_rectU[i],BREAK03_02_rectV[i]+30);
			ObjPrim_SetVertexUVT(eff,2,BREAK03_02_rectU[i]+30,BREAK03_02_rectV[i]);
			ObjPrim_SetVertexUVT(eff,3,BREAK03_02_rectU[i]+30,BREAK03_02_rectV[i]+30);
			ObjPrim_SetVertexColor(eff,0,BREAK03_02_R[id%10],BREAK03_02_G[id%10],BREAK03_02_B[id%10]);
			ObjPrim_SetVertexColor(eff,1,BREAK03_02_R[id%10],BREAK03_02_G[id%10],BREAK03_02_B[id%10]);
			ObjPrim_SetVertexColor(eff,2,BREAK03_02_R[id%10],BREAK03_02_G[id%10],BREAK03_02_B[id%10]);
			ObjPrim_SetVertexColor(eff,3,BREAK03_02_R[id%10],BREAK03_02_G[id%10],BREAK03_02_B[id%10]);
			ObjPrim_SetVertexAlpha(eff,0,alpha);
			ObjPrim_SetVertexAlpha(eff,1,alpha);
			ObjPrim_SetVertexAlpha(eff,2,alpha);
			ObjPrim_SetVertexAlpha(eff,3,alpha);
			yield;
		}
		i++;
		alpha -= 128/8;
	}
	Obj_Delete(eff);
}

//-----------------------------------------------------------------------
//  ŃGtFNg [th14] [𑜓x]
//-----------------------------------------------------------------------
let BREAK04_02_rectU	= [  0, 32, 64, 96,128,160,192,224];
let BREAK04_02_rectV	= [  1,  1,  1,  1,  1,  1,  1,  1];
let BREAK04_02_R	= [240,240,240, 30, 30, 60,240,240,  0,  0];
let BREAK04_02_G	= [ 30,120,240,240,240, 60, 30,240,  0,  0];
let BREAK04_02_B	= [ 30, 30, 30, 30,240,240,240,240,  0,  0];
//-----------------------------------------------------------------------
task ObjShot_ShotBreak04_Old(id,X,Y,Angle,Time) {

	let eff		= ObjPrim_Create(OBJ_PRIMITIVE_2D);
	let scale	= 1.20;
	let alpha	= 255;
	let rect	= 0;
	let i		= 0;

	if(id>=100) { id -= 100; }
	alternative(truncate(id/10))
	case(3)           { scale = 0.80; }
	case(2,8)         { scale = 1.80; }
	case(1,4,5,6,7,9) { scale = 1.80; }

	LoadTexture(etbreak04);

	ObjRender_SetPosition(eff,X,Y,0);
	ObjPrim_SetTexture(eff,etbreak04);
	ObjRender_SetBlendType(eff,BLEND_ADD_RGB);
	ObjPrim_SetPrimitiveType(eff,PRIMITIVE_TRIANGLESTRIP);
	ObjRender_SetScaleXYZ(eff,scale,scale,1);
	ObjRender_SetAngleXYZ(eff,180*truncate(rand(0,2)),0,truncate(rand(0,360)) );
	Obj_SetRenderPriorityI(eff,30);
	ObjPrim_SetVertexCount(eff,4);
	ObjPrim_SetVertexPosition(eff,0,-16,-16,0);
	ObjPrim_SetVertexPosition(eff,1,-16, 16,0);
	ObjPrim_SetVertexPosition(eff,2, 16,-16,0);
	ObjPrim_SetVertexPosition(eff,3, 16, 16,0);

	loop(8) {
		loop(Time/8) {
			ObjPrim_SetVertexUVT(eff,0,BREAK04_02_rectU[i],BREAK04_02_rectV[i]);
			ObjPrim_SetVertexUVT(eff,1,BREAK04_02_rectU[i],BREAK04_02_rectV[i]+30);
			ObjPrim_SetVertexUVT(eff,2,BREAK04_02_rectU[i]+31,BREAK04_02_rectV[i]);
			ObjPrim_SetVertexUVT(eff,3,BREAK04_02_rectU[i]+31,BREAK04_02_rectV[i]+30);
			ObjPrim_SetVertexColor(eff,0,BREAK04_02_R[id%10],BREAK04_02_G[id%10],BREAK04_02_B[id%10]);
			ObjPrim_SetVertexColor(eff,1,BREAK04_02_R[id%10],BREAK04_02_G[id%10],BREAK04_02_B[id%10]);
			ObjPrim_SetVertexColor(eff,2,BREAK04_02_R[id%10],BREAK04_02_G[id%10],BREAK04_02_B[id%10]);
			ObjPrim_SetVertexColor(eff,3,BREAK04_02_R[id%10],BREAK04_02_G[id%10],BREAK04_02_B[id%10]);
			ObjPrim_SetVertexAlpha(eff,0,alpha);
			ObjPrim_SetVertexAlpha(eff,1,alpha);
			ObjPrim_SetVertexAlpha(eff,2,alpha);
			ObjPrim_SetVertexAlpha(eff,3,alpha);
			yield;
		}
		i++;
		alpha -= 128/8;
	}
	Obj_Delete(eff);
}
