#e
#Title[֊uNx[gbvv]
#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;

@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,32,40);
PlayMusic("bgm\fran");
SetTimer(80);
SetLife(3000);
SetDamageRate(0,0);
CutIn(YOUMU,"֊uNx[gbvv",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;
}

@DrawLoop
{
if(GetLife==0)
	{
	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));};
CreateItem(ITEM_1UP,GetX+rand(-50,50),GetY+rand(-30,30));
CreateItem(ITEM_BOMB,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);
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
{
loop(60){yield;}
Tmove;
Tattack;
if(GetX>GetCenterX){pattern(2);}
else{pattern(1);}
SetMovePosition02(GetCenterX,GetClipMinY+60,40);
loop(40){yield};
pattern(0);
loop(20){yield};
SetDamageRateEx(100,100,100,100);
loop
	{
	let X=GetX;
	let Y=GetClipMinY+rand(60,120);
	if(GetX<GetPlayerX)
		{
		pattern(1);
		X=X+60;
		if(X>=GetClipMaxX)
			{
			pattern(2);
			X=X-120;
			}
		
		}
	else
		{
		pattern(2);
		X=X-60;
		if(X<=GetClipMinX)
			{
			pattern(1);
			X=X+120;
			}
		}
	SetMovePosition03(X,Y,15,3.5);
	loop(60){yield};
	pattern(0);
	loop(40){yield};
	}
VanishEnemy;
}

task Tattack
{
CreateEnemyFromScript("bit",GetClipMinX,GetClipMinY,0,0,0);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMaxY,0,0,1);
loop(5){yield};
CreateEnemyFromScript("bit",GetClipMinX,GetClipMaxY,0,0,2);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMinY,0,0,3);
loop(5){yield};
CreateEnemyFromScript("bit",GetClipMinX,GetClipMinY,0,0,4);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMaxY,0,0,5);
loop(5){yield};
CreateEnemyFromScript("bit",GetClipMinX,GetClipMaxY,0,0,6);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMinY,0,0,7);
}

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 act=0;
let alpha=0;
@Initialize
{
LoadGraphic(GC~".\bit.png");
SetTexture(GC~".\bit.png");
SetGraphicRect(0,0,48,48);
SetLife(10000);
SetDamageRate(0,0);
SetGraphicScale(0.9,0.9);
SetColor(200,200,255);
LoadUserShotData(GC~".\burret01.txt");
Tmain;
}
@MainLoop
{
SetCollisionA(GetX,GetY,12);
yield;
}
@DrawLoop
{
if(act!=1){alpha=alpha/1.05;}
else{alpha=200;}
SetAlpha(alpha);
DrawGraphic(GetX,GetY);
}
@Finalize
{
AddScore(3000);
}

task Tmain
{
yield;
let pattern=GetArgument;
Tmove;
alternative(pattern)
case(0)
	{
	loop
		{
		act=1;
		loop(30){yield};
		Tattack1(36);
		SetMovePosition02(GetClipMinX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(20){yield};
		act=1;
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(80){yield};
		act=1;
		SetMovePosition02(GetClipMaxX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(20){yield};
		act=1;
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(110){yield};
		}
	}
case(1)
	{
	loop
		{
		act=1;
		loop(30){yield};
		Tattack1(36);
		SetMovePosition02(GetClipMaxX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(20){yield};
		act=1;
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(80){yield};
		act=1;
		SetMovePosition02(GetClipMinX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(20){yield};
		act=1;
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(110){yield};
		}
	}
case(2)
	{
	loop
		{
		loop(170){yield};
		act=1;
		Tattack2(36);
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(270){yield};
		act=1;
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		}
	}
case(3)
	{
	loop
		{
		loop(170){yield};
		act=1;
		Tattack2(36);
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(270){yield};
		act=1;
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		}
	}
case(4)
	{
	loop(260){yield};
	loop
		{
		act=1;
		Tattack2(28);
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(180){yield};
		act=1;
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(30){yield};
		act=1;
		Tattack1(14);
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMinY,90);
		loop(120){yield};
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		}
	}
case(5)
	{
	loop(260){yield};
	loop
		{
		act=1;
		Tattack2(28);
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(180){yield};
		act=1;
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(30){yield};
		act=1;
		Tattack1(14);
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMaxY,90);
		loop(110){yield};
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(110){yield};
		}
	}
case(6)
	{
	loop(240){yield};
	loop
		{
		loop(180){yield};
		act=1;
		Tattack1(42);
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(150){yield};
		SetMovePosition02(GetClipMinX,GetClipMaxY,1);
		act=1;
		loop(10){yield};
		SetMovePosition02(GetClipMinX,GetClipMinY,90);
		loop(100){yield};
		act=0;
		loop(110){yield};
		SetMovePosition02(GetClipMinX,GetClipMaxY,1);
		}
	}
case(7)
	{
	loop(240){yield};
	loop
		{
		loop(180){yield};
		act=1;
		Tattack1(42);
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(150){yield};
		SetMovePosition02(GetClipMaxX,GetClipMinY,1);
		act=1;
		loop(10){yield};
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){yield};
		act=0;
		loop(110){yield};
		SetMovePosition02(GetClipMaxX,GetClipMinY,1);
		}
	}
others
	{
	}
}

task Tattack1(time)
{
loop(time*1.2)
	{
	if(act==1)
		{
		CreateShot01(GetX,GetY,1.5,GetAngleToCenter,5,0);
		DeleteSE("se\seShot");
		PlaySE("se\seShot");
		}
	loop(12){yield};
	}
}

task Tattack2(time)
{
loop(time*1.2)
	{
	if(act==1)
		{
		CreateShot01(GetX,GetY,1.2,GetAngleToPlayer,2,0);
		DeleteSE("se\seShot");
		PlaySE("se\seShot");
		}
	loop(12){yield};
	}
}

task Tmove
{
loop
	{
	let dis1=GetCommonDataDefault("dis1",10000);
	if(dis1>GetDistanceToPlayer+20&&act==1)
		{
		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);
}

}