#e
#Title[֊uNx[gbvv]
#ScriptVersion[2]
#Player[FREE]
#Text[{ig[Xꍆ]
#BackGround[User]

script_enemy_main
{
let GC=GetCurrentScriptDirectory;

let EX0=0;
let EY0=0;
let EX1=10000;
let EY1=10000;
let pat=0;

@Initialize
{
SetX(GetCenterX);
SetY(GetClipMinY);
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,32,40);
PlayMusic("bgm\bg");
SetTimer(99);
SetLife(4000);
SetDamageRate(0,0);
CutIn(KOUMA,"֊uNx[gbvv",GC~"cut_in.png",0,0,0,0);
SetScore(100000);
CreateEnemyFromScript("fran",GetX,GetY,0,0,0);
Tmain;
}

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

@DrawLoop
{
if(OnBomb==false)	{SetAlpha(255);}
else			{SetAlpha(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;
	}
}


}

script_enemy fran
{
let GC=GetCurrentScriptDirectory;
@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,0,0);
SetLife(4000);
SetDamageRateEx(100,100,100,100);
Tmain;
}
@MainLoop
{
if(OnBomb==false)
	{
	SetCollisionA(GetX,GetY,24);
	SetCollisionB(GetX,GetY,12);
	yield;
	}
}
@DrawLoop
{
//DrawGraphic(GetX,GetY);
}
@Finalize
{
SetCommonData("Life",0);
AddScore(3000);
}

task Tmain
{
yield;
Tmove;
Tattack;
SetMovePosition03(GetCenterX,GetClipMinY+50,15,4);
loop(80){yield};
loop
	{
	SetMovePosition03(GetCenterX+rand(-80,80),GetCenterY-100+rand(-60,60),15,3.5);
	loop(100){yield};
	}
VanishEnemy;
}

task Tattack
{
CreateEnemyFromScript("bit",GetClipMinX,GetClipMinY,0,0,0);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMaxY,0,0,1);
CreateEnemyFromScript("bit",GetClipMinX,GetClipMaxY,0,0,2);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMinY,0,0,3);
CreateEnemyFromScript("bit",GetClipMinX,GetClipMinY,0,0,4);
CreateEnemyFromScript("bit",GetClipMaxX,GetClipMaxY,0,0,5);
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);
}

}

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);
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(120){yield};
		SetMovePosition02(GetClipMaxX,GetClipMaxY,90);
		loop(100){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)
	{
	if(act==1){CreateShot01(GetX,GetY,1.5,GetAngleToCenter,PURPLE04,0)};
	loop(15){yield};
	}
}

task Tattack2(time)
{
loop(time)
	{
	if(act==1){CreateShot01(GetX,GetY,1.2,GetAngleToPlayer,BLUE01,0)};
	loop(15){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);
}

}