#e
#Title[֊utH[IuAJChv]
#ScriptVersion[2]
#Player[FREE]
#Text[]
#BackGround[User(.\back.png,0,0)]

script_enemy_main
{
let GC=GetCurrentScriptDirectory;

let EX0=GetX;
let EY0=GetY;
let EX1=10000;
let EY1=10000;
let pat=0;
let pause=0;

@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
PlayMusic("bgm\fran");
SetTimer(80);
SetLife(3000);
SetDamageRate(0,0);
CutIn(YOUMU,"֊utH[IuAJChv",GC~"cut_in.png",100,0,480,480);
SetScore(100000);
CreateEnemyFromScript("fran",GetX,GetY,0,0,0);
Tmain;
MagicCircle(false);
}

@MainLoop
{
alternative(pat)
case(0){SetCollisionA(EX0,EY0,0);}
case(1){SetCollisionA(EX1,EY1,0);}
others{}
SetMovePosition02(EX0,EY0,1);
yield;
pause=GetCommonDataDefault("pat",0);
}

@DrawLoop
{

pattern(pause);
if(OnBomb==false)
	{
	DrawGraphic(GetCommonDataDefault("EX0",0),GetCommonDataDefault("EY0",0));
	}

}
@Finalize
{
SetX(EX0);
SetY(EY0);
AddScore(10000);
loop(30){CreateItem(ITEM_SCORE,GetX+rand(-50,50),GetY+rand(-30,30));};
}

task Tmain
{
yield;
Tmove;
loop{yield;}
}

task Tmove
{
loop
	{
	EX0=GetCommonDataDefault("EX0",0);
	EY0=GetCommonDataDefault("EY0",0);
	let dis0=GetCommonDataDefault("dis0",0);
	EX1=GetCommonDataDefault("EX1",EX0);
	EY1=GetCommonDataDefault("EY1",EY0);
	let dis1=GetCommonDataDefault("dis1",10000);
	if(dis1<dis0+500){pat=1;}
	else{pat=0;}
	let Life=GetCommonDataDefault("Life",GetLife);
	AddLife(Life-GetLife);
	yield;
	}
}

#include_function ".\function.txt"


}

script_enemy fran
{
let GC=GetCurrentScriptDirectory;
@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,0,0);
pattern(0);
LoadUserShotData(GC~".\burret01.txt");
SetLife(3000);
SetDamageRateEx(10,10,10,10);
Tmain;
Twing;
Tbat;
}
@MainLoop
{
if(OnBomb==false)
	{
	SetCollisionA(GetX,GetY,24);
	SetCollisionB(GetX,GetY,12);
	}
yield;
}
@DrawLoop
{
if(OnBomb==false)
	{
	DrawGraphic(GetCommonDataDefault("EX0",0),GetCommonDataDefault("EY0",0));
	}
}
@Finalize
{
SetCommonData("Life",0);
AddScore(3000);
}

task Tmain
{
Tmove;
if(GetX<GetCenterX){pattern(1);SetCommonData("pat",1);}
else{pattern(2);SetCommonData("pat",2);}
SetMovePosition03(GetCenterX,GetCenterY-150,15,4);
loop(60){yield};
pattern(0);
SetCommonData("pat",0);
Concentration01(90);
loop(80){yield;}
CreateEnemyFromScript("bit",GetClipMinX-16,GetY,0,0,0);
CreateEnemyFromScript("bit",GetCenterX+60,GetClipMinY-20,0,0,1);
CreateEnemyFromScript("bit",GetClipMaxX+16,GetY,0,0,2);
pattern(2);
SetCommonData("pat",2);
SetMovePosition03(GetCenterX-50,GetCenterY-150,15,4);
loop(60){yield};
pattern(0);
SetCommonData("pat",0);
Tattack;
SetDamageRateEx(100,100,100,100);
loop(10)
	{
	let X=GetX;
	let Y=GetClipMinY+rand(60,150);
	if(GetX<GetPlayerX)
		{
		pattern(1);
		SetCommonData("pat",1);
		X=X+40;
		if(X>=GetClipMaxX)
			{
			pattern(2);
			SetCommonData("pat",2);
			X=X-80;
			}
		
		}
	else
		{
		pattern(2);
		SetCommonData("pat",2);
		X=X-40;
		if(X<=GetClipMinX)
			{
			pattern(1);
			SetCommonData("pat",1);
			X=X+80;
			}
		}
	SetMovePosition03(X,Y,15,3.5);
	loop(60){yield;}
	pattern(0);
	SetCommonData("pat",0);
	loop(20){yield};
	}
Tattack2;
loop
	{
	let X=GetX;
	let Y=GetClipMinY+rand(60,150);
	if(GetX<GetPlayerX)
		{
		pattern(1);
		SetCommonData("pat",1);
		X=X+40;
		if(X>=GetClipMaxX)
			{
			pattern(2);
			SetCommonData("pat",2);
			X=X-80;
			}
		
		}
	else
		{
		pattern(2);
		SetCommonData("pat",2);
		X=X-40;
		if(X<=GetClipMinX)
			{
			pattern(1);
			SetCommonData("pat",1);
			X=X+80;
			}
		}
	SetMovePosition03(X,Y,15,3.5);
	loop(60){yield;}
	pattern(0);
	SetCommonData("pat",0);
	loop(20){yield};
	}
VanishEnemy;
}

task Tattack
{
loop
	{
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	N_around(48,3,90,-0.05,1.2,33,10);
	loop(35){yield;}
	}
}

task Tattack2
{
loop
	{
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	N_around(48,3.5,-90,-0.05,2,18,10);
	N_around(48,3,-90,-0.05,1.75,18,10);
	N_around(48,2.5,-90,-0.05,1.5,18,10);
	loop(400){yield;}
	}
}

task Tmove
{
loop
	{
	SetCommonData("EX0",GetX);
	SetCommonData("EY0",GetY);
	SetCommonData("dis0",GetDistanceToPlayer);
	SetCommonData("dis1",10000);
	SetCommonData("Life",GetLife);
	loop(1){yield};
	}
}

function GetDistanceToPlayer
{
let d=((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2)^0.5;
return(d);
}

#include_function ".\function.txt"

}

script_enemy bit
{
let GC=GetCurrentScriptDirectory;
let pat=GetArgument;
@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,32,40);
SetLife(1500);
SetDamageRate(100,50);
LoadUserShotData(GC~".\burret01.txt");
Tmain;
}
@MainLoop
{
SetCollisionA(GetX,GetY,24);
SetCollisionA(GetX,GetY,12);
yield;
}
@DrawLoop
{
DrawGraphic(GetX,GetY);
}
@Finalize
{
AddScore(3000);
}

task Tmain
{
let start=pat*100;
if(pat==0){start=start-100;}
if(pat==2){pattern(2);}
else{pattern(1);}
SetMovePosition03(GetCenterX-50+start,GetCenterY-150,15,4);
loop(40){yield;}
pattern(0);
loop(20){yield;}
Tattack;
Tmove;
loop(trunc(rand(10,60))){yield;}
loop
	{
	let X=GetX+rand(-60,60);
	let Y=GetCenterY-150+rand(-20,20);
	if(X>GetX)
		{
		pattern(1);
		if(X>=GetClipMaxX-20)
			{
			pattern(2);
			X=X-80;
			}
		
		}
	else
		{
		pattern(2);
		if(X<=GetClipMinX+20)
			{
			pattern(1);
			X=X+80;
			}
		}
	SetMovePosition03(X,Y,15,3.5);
	loop(60){yield;}
	pattern(0);
	loop(90){yield;}
	}
}

task Tattack
{
loop(trunc(rand(20,70))){yield;}
while(GetEnemyLife>2500&&GetTimer>60)
	{
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	N_around(32,3,90,-0.05,1.5,33,10);
	loop(90){yield;}
	}
Tattack2;
loop(120){yield;}
loop
	{
	DeleteSE("se\seShot");
	PlaySE("se\seShot");
	N_around(32,3,90,-0.05,1.5,33,10);
	loop(90){yield;}
	}
}
task Tattack2
{
loop(120*pat){yield;}
alternative(pat)
case(0)
	{
	loop
		{
		DeleteSE("se\seShot");
		PlaySE("se\seShot");
		N_around(48,3.5,-90,-0.05,2,18,10);
		N_around(48,3,-90,-0.05,1.75,18,10);
		N_around(48,2.5,-90,-0.05,1.5,18,10);
		loop(205){yield;}
		}
	}
case(1)
	{
	loop
		{
		DeleteSE("se\seShot");
		PlaySE("se\seShot");
		let speed=1.5;
		loop(8)
			{
			N_around(8,speed,-90,0,speed,20,10);
			speed=speed+0.3;
			}
		loop(175){yield;}
		}
	}
case(2)
	{
	loop
		{
		let angle=GetAngleToPlayer-45;
		DeleteSE("se\seShot");
		PlaySE("se\seShot");
		loop(7)
			{
			let speed=1.5;
			loop(5)
				{
				CreateShot02(GetX,GetY,speed,angle,0,speed,19,10);
				speed=speed+0.5;
				}
			angle=angle+45/3;
			}
		loop(165){yield;}
		}
	}
}
task Tmove
{
loop
	{
	let dis1=GetCommonDataDefault("dis1",10000);
	if(dis1>GetDistanceToPlayer+20)
		{
		SetCommonData("EX1",GetX);
		SetCommonData("EY1",GetY);
		SetCommonData("dis1",GetDistanceToPlayer);
		OutputDebugString(0,"EX1",GetX);
		OutputDebugString(1,"EY1",GetY);
		}
	loop(1){yield};
	}
}

function GetDistanceToPlayer
{
let d=((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2)^0.5;
return(d);
}

function GetAngleToCenter
{
let a=atan2(GetCenterY-GetY,GetCenterX-GetX);
return(a);
}

#include_function ".\function.txt"

}