#e
#Title[YuNbV{v]
#ScriptVersion[2]
#Player[FREE]
#Text[]
#BackGround[User]

script_enemy_main
{
let GC=GetCurrentScriptDirectory;
@Initialize
{
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,32,32);
SetLife(4000);
SetTimer(80);
SetDamageRate(10,10);
CutIn(KOUMA,"YuNbV{v","",0,0,0,0);
SetScore(100000);
Tmain;
//CreateDebugWindow;
}
@MainLoop
{
SetCollisionA(GetX,GetY,24);
SetCollisionB(GetX,GetY,12);
OutputDebugString(0,"enemy",GetEnemyNum);
yield;
}
@DrawLoop
{DrawGraphic(GetX,GetY);}
@Finalize
{
AddScore(10000);
loop(30){CreateItem(ITEM_SCORE,GetX+rand(-40,40),GetY+rand(-30,30));}
}

let move=0;

task Tmain
{
let left=1;
Concentration01(60);
loop(60){yield};
CollectItems;
pattern(5);
SetMovePosition03(GetCenterX,GetClipMinY+160,15,8);
loop(60){yield};
pattern(0);
loop
	{
	let count=0;
	loop(3)
		{
		Tmove;
		loop(20){yield;}
		CreateShotFromScript("bomb",GetX,GetY,0,GetAngleToPlayer,0,0);
		loop(20){yield;}
		if(count==1){CreateShotFromScript("bomb",GetX,GetY,0,GetAngleToPlayer,0,left);}
		loop(20){yield;}
		if(count==1){CreateShotFromScript("bomb",GetX,GetY,0,GetAngleToPlayer,0,-2*left);}
		loop(10){yield;}
		let X=GetPlayerX+rand(-50,50);
		SetMovePosition02(X,rand(60,240),100);
		if(X<GetX){SetGraphicAngle(180,0,0);}
		else	  {SetGraphicAngle(0,0,0);}
		let pat=0;
		loop(10)
			{
			pattern(pat+1);
			pat=(pat+1)%4;
			loop(10){yield;}
			}
		SetDamageRate(100,100);
		count=count+1;
		}
	Tmove;
	loop(10){yield;}
	loop(3)
		{
		CreateShotFromScript("bomb",GetX,GetY,0,GetAngleToPlayer,0,0);
		loop(20){yield;}
		}
	loop(60){yield;}
	left=left*-1;
	}
}

task Tmove
{
move=1;
let left=1;
if(GetX<GetPlayerX){left=-1;}
if(absolute(GetX+50*left-GetCenterX)>150){left=left*-1;}
let DX=50*left/30;
let DY=-5;
SetGraphicAngle(90+90*-left,0,0);
pattern(5);
loop(51)
	{
	SetMovePosition02(GetX+DX,GetY+DY,1);
	DY=DY+0.2;
	yield;
	}
pattern(0);
move=0;
}

function pattern(let rec)
{
let round=2;
SetGraphicRect(32*rec,32*round,32+32*rec,32+32*round);
}

}

script_shot bomb
{
let angle=GetAngleToPlayer;
let GX=GetPlayerX;
let GY=GetPlayerY;

@Initialize
{
SetDefault(ORANGE32);
Tmain;
}
@MainLoop
{
SetCollisionB(GetX,GetY,10);
yield;
}
@DrawLoop
{
DrawGraphic(GetX,GetY);
DrawGraphicDefault;
}
@Finalize
{
}

task Tmain
{
let pat=GetArgument;
let time=trunc(((GetX-GX)^2+(GetY-GY)^2)^0.5/6);
alternative (pat)
case(1,-1)
	{
	GX=GetX+time*3*cos(angle+45*pat);
	GY=GetY+time*3*sin(angle+45*pat);
	time=time*3/6;
	}
case(2,-2)
	{
	GX=GetX+time*4*cos(angle+45*pat);
	GY=GetY+time*4*sin(angle+45*pat);
	time=time*4/6;
	}
others{}

SetMovePosition02(GX,GY,time);
loop(time+60){yield;}
let sangle=GetAngle;
let way=18;
loop(way)
	{
	let speed=rand(3,5);
	CreateShot02(GetX,GetY,speed,sangle,-0.05,speed-2,YELLOW05,0);
	speed=rand(3,3.5);
	CreateShot02(GetX,GetY,speed,sangle+trunc(rand(-360/way,360/way)),-0.05,speed-2,YELLOW04,0);
	speed=rand(3.5,4);
	CreateShot02(GetX,GetY,speed,sangle+trunc(rand(-360/way,360/way)),-0.05,speed-2,YELLOW04,0);
	sangle=sangle+360/way;
	yield;
	}
End;
}

}