#e
#Title[֒euJ^fBIugbNv]
#ScriptVersion[2]
#Player[FREE]
#Text[]
#BackGround[User(.\back.png,0,0)]

script_enemy_main
{
let GC=GetCurrentScriptDirectory;
@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,32,40);
PlayMusic("bgm\fran");
LoadUserShotData(GC~".\burret01.txt");
SetDamageRate(10,10);
SetLife(3000);
SetTimer(66);
CutIn(YOUMU,"֒euJ^fBIugbNv",GC~".\cut_in.png",100,0,480,480);
SetScore(100000);
Tmain;
Twing;
Tbat;
SetShotAutoDeleteClip(32,32,32,32);
}
@MainLoop
{
if(OnBomb==false)
	{
	SetCollisionA(GetX,GetY,24);
	SetCollisionB(GetX,GetY,12);
	}

yield;
}
@DrawLoop
{
if(OnBomb==false){DrawGraphic(GetX,GetY);}
}
@Finalize
{
AddScore(10000);
loop(30){CreateItem(ITEM_SCORE,GetX+rand(-50,50),GetY+rand(-30,30))};
DeleteGraphic(GC~".\main.png");
}

#include_function ".\function.txt"

task Tmain
{
if(GetX>GetCenterX){pattern(2);}
else{pattern(1);}
SetMovePosition02(GetCenterX,GetClipMinY+160,40);
loop(40){yield};
pattern(0);
loop(40){yield};
loop
	{
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	let angle=247.5;
	loop(3)
		{
		Tshot(angle,1);
		angle=angle+22.5;
		}
	Tshot(225,2);
	Tshot(315,2);
	loop(40){yield;}
	SetDamageRate(100,100);
	pattern(2);
	SetMovePosition02(GetX,GetY-60,60);
	loop(60){yield;}
	pattern(0);
	loop(20){yield;}
	angle=240;
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	loop(5)
		{
		Tshot(angle,1);
		angle=angle+15;
		}
	loop(40){yield;}
	pattern(1);
	SetMovePosition02(GetCenterX+100,GetClipMinY+160,40);
	loop(40){yield;}
	pattern(0);
	angle=-45;
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	loop(5)
		{
		Tshot(angle,1);
		angle=angle+22.5;
		}
	loop(20){yield;}
	pattern(2);
	SetMovePosition02(GetCenterX-100,GetClipMinY+160,60);
	loop(60){yield;}
	pattern(0);
	angle=135;
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	loop(5)
		{
		Tshot(angle,1);
		angle=angle+22.5;
		}
	loop(40){yield;}
	pattern(2);
	SetMovePosition02(GetClipMinX,GetClipMinY+100,40);
	loop(40){yield;}
	pattern(1);
	SetMovePosition02(GetClipMaxX,GetClipMinY+100,80);
	loop(4)
		{
		DeleteSE("se\seShot");
		PlaySE("se\seShot");
		Tshot(-90,1);
		loop(20){yield;}
		}
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	Tshot(-90,1);
	pattern(0);
	loop(20){yield;}
	pattern(2);
	SetMovePosition02(GetCenterX,GetClipMinY+160,40);
	loop(40){yield;}
	pattern(0);
	loop(60){yield;}
	yield;
	}
}

task Tshot(angle,count)
{

Tburret(4.5,angle,RED03,count);
let speed=4;
loop(8)
	{
	Tburret(speed,angle+rand(-3,3),17,count);
	speed=speed-0.2;
	}
speed=3.2;
loop(20)
	{
	Tburret(speed,angle+rand(-8,8),1,count);
	speed=speed-0.08;
	}
}

task Tburret(speed,angle,type,count)
{
let id=Obj_Create(OBJ_SHOT);
Obj_SetPosition(id,GetX,GetY);
Obj_SetSpeed(id,speed);
Obj_SetAngle(id,angle);
ObjShot_SetGraphic(id,type);
ObjShot_SetDelay(id,20);
loop(count)
	{
	while(Obj_BeDeleted(id)==false)
		{
		if(Obj_GetY(id)<=GetClipMinY){Obj_SetAngle(id,-Obj_GetAngle(id));break;}
		else if(Obj_GetX(id)<=GetClipMinX||Obj_GetX(id)>=GetClipMaxX){Obj_SetAngle(id,180-Obj_GetAngle(id));break;}
		yield;
		}
	loop(2){yield;}
	}
}

}