#e
#Title[euĒNȂȂ̂Hv]
#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(0,0);
SetLife(3000);
SetTimer(84);
CutIn(YOUMU,"euĒNȂȂ̂Hv",GC~".\cut_in.png",100,0,480,480);
SetScore(100000);
SetDurableSpellCard();	
Tmain;
MagicCircle(false);
}
@MainLoop
{
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
{
SetMovePosition02(GetCenterX,GetClipMinY+80,60);
let alpha=255;
loop(40)
	{
	alpha=alpha-6;
	SetAlpha(alpha);
	yield;
	}
SetAlpha(0);
DeleteSE("se\seShot");
PlaySE("se\seShot");
Tblue(GetCenterX,GetClipMinY+60);
loop(720){yield;}
DeleteSE("se\seShot");
PlaySE("se\seShot");
Tblue(GetCenterX,GetClipMinY+60);
loop(60){yield;}
DeleteSE("se\seShot");
PlaySE("se\seShot");
Tblue(GetClipMinX,GetClipMinY);
loop(40){yield;}
DeleteSE("se\seShot");
PlaySE("se\seShot");
Tblue(GetClipMaxX,GetClipMinY);
loop(40){yield;}
DeleteSE("se\seShot");
PlaySE("se\seShot");
Tblue(GetClipMinX,GetClipMaxY);
loop(40){yield;}
DeleteSE("se\seShot");
PlaySE("se\seShot");
Tblue(GetClipMaxX,GetClipMaxY);
loop(720){yield;}
let wait=300;
loop
	{
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	Tattack(0);
	corner(1,-1);
	loop(wait){yield;}
	if(wait>120){wait=wait-15;}
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	Tattack(1);
	corner(2,1);
	loop(wait){yield;}
	if(wait>120){wait=wait-15;}
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	Tattack(2);
	corner(3,-1);
	loop(wait){yield;}
	if(wait>120){wait=wait-15;}
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	Tattack(3);
	corner(4,1);
	loop(wait){yield;}
	if(wait>120){wait=wait-15;}
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	Tattack(4);
	corner(4,-1);
	loop(wait){yield;}
	if(wait>120){wait=wait-15;}
	}

}

task Tblue(X,Y)
{
loop(4)
	{
	let PX=GetPlayerX;
	let PY=GetPlayerY;
	let DX=(PX-X)/33;
	let DY=(PY-Y)/33;
	loop(4)
		{
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X)-60,2,20);
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X),2,20);
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X)+60,2,20);
		loop(5){yield;}
		}
	loop(27)
		{
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X)-60,2,20);
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X),2,20);
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X)+60,2,20);
		X=X+DX;
		Y=Y+DY;
		loop(5){yield;}
		}
	let count=6;
	loop(6)
		{
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X)-60,2,20);
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X),2,20);
		CreateShot01(X,Y,0.5,atan2(GetPlayerY-Y,GetPlayerX-X)+60,2,20);
		X=X+DX*count/6;
		Y=Y+DY*count/6;
		count=count-1;
		loop(5){yield;}
		}
	
	}

}

task Tattack(type)
{
let X=GetClipMinX;
let Y=GetClipMinY;
let DX=(GetClipMaxX-GetClipMinX-10)/12;
let DY=(GetClipMaxY-GetClipMinY-10)/15;
loop(12)
	{
	shot(type,X,Y);
	X=X+DX;
	}
X=GetClipMaxX;
loop(15)
	{
	shot(type,X,Y);
	Y=Y+DY;
	}
Y=GetClipMaxY;
loop(12)
	{
	shot(type,X,Y);
	X=X-DX;
	}
X=GetClipMinX;
loop(15)
	{
	shot(type,X,Y);
	Y=Y-DY;
	}
Y=GetClipMinY;
}

function corner(type,left)
{
let speed=2;
loop(5)
	{
	CreateShot01(GetClipMinX,GetClipMinY,speed,45-45*left,type,30);
	CreateShot01(GetClipMaxX,GetClipMinY,speed,135-45*left,type,30);
	CreateShot01(GetClipMaxX,GetClipMaxY,speed,225-45*left,type,30);
	CreateShot01(GetClipMinX,GetClipMaxY,speed,315-45*left,type,30);
	speed=speed+0.5;
	}
}

function shot(type,X,Y)
{
alternative(type)
case(0)
	{
	CreateShot01(X,Y,1.2,atan2(GetCenterY-Y,GetCenterX-X),1,30);
	}
case(1)
	{
	if(X==GetClipMinX)
		{
		CreateShot01(X,Y,2,0,2,30);
		CreateShot01(X,Y,1.5,0,2,30);
		}
	else if(X==GetClipMaxX)
		{
		CreateShot01(X,Y,2,180,2,30);
		CreateShot01(X,Y,1.5,180,2,30);
		}
	if(Y==GetClipMinY)
		{
		CreateShot01(X,Y,2,90,2,30);
		CreateShot01(X,Y,1.5,90,2,30);
		}
	else if(Y==GetClipMaxY)
		{
		CreateShot01(X,Y,2,270,2,30);
		CreateShot01(X,Y,1.5,270,2,30);
		}

	}
case(2)
	{
	if(X==GetClipMinX)
		{
		CreateShot01(X,Y,0.75,-45,3,30);
		CreateShot01(X,Y,0.75,45,3,30);
		}
	else if(X==GetClipMaxX)
		{
		CreateShot01(X,Y,0.75,135,3,30);
		CreateShot01(X,Y,0.75,225,3,30);
		}
	if(Y==GetClipMinY)
		{
		CreateShot01(X,Y,0.75,45,3,30);
		CreateShot01(X,Y,0.75,135,3,30);
		}
	else if(Y==GetClipMaxY)
		{
		CreateShot01(X,Y,0.75,225,3,30);
		CreateShot01(X,Y,0.75,315,3,30);
		}
	}
case(3)
	{
	CreateShotA(0,X,Y,30);
	SetShotDataA(0,0,1.2,atan2(GetCenterY-Y,GetCenterX-X)+45,0,0,0,4);
	SetShotDataA(0,30,1.2,atan2(GetCenterY-Y,GetCenterX-X)+45,-0.5,0,0,4);
	SetShotDataA(0,210,1.2,NULL,0,0,0,4);
	FireShot(0);
	}
case(4)
	{
	CreateShotA(0,X,Y,30);
	SetShotDataA(0,0,1.2,atan2(GetCenterY-Y,GetCenterX-X)-45,0,0,0,4);
	SetShotDataA(0,30,1.2,atan2(GetCenterY-Y,GetCenterX-X)-45,0.5,0,0,4);
	SetShotDataA(0,210,1.2,NULL,0,0,0,4);
	FireShot(0);
	}
}


}