#e
#Title[u^u[hv]
#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(200,100);
LoadUserShotData(GC~".\shot.txt");
CutIn(KOUMA,"u^u[hv","",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 left=1;
let jump=0;

task Tmain
{
jump=1;
Concentration01(60);
loop(60){yield};
CollectItems;
pattern(5);
SetMovePosition03(GetCenterX,GetClipMinY+160,15,8);
loop(60){yield};
pattern(0);
jump=0;
Tbelt;
loop
	{
	loop(3)
		{
		let angle=0;
		let wait=90;
		loop(10)
			{
			let speed=7;
			loop(3)
				{
				CreateShotA(0,GetX,GetY,0);
				SetShotDataA(0,0,5,angle,0,0,3,3);
				SetShotDataA(0,20,0,angle,0,0,0,NULL);
				SetShotDirectionType(PLAYER);
				SetShotDataA(0,wait,speed,0,0,0,speed,NULL);
				FireShot(0);
				SetShotDirectionType(ABSOLUTE);	
				speed=speed-2;
				}
			angle=angle-20;
			wait=wait+15;
			}
		loop(30){yield};
		loop(2)
			{
			Tmove;
			loop(2)
				{
				loop(20){yield};
				let speed=8;
				loop(12)
					{
					CreateShot01(GetX,GetY,speed,GetAngleToPlayer-30,3,0);
					CreateShot01(GetX,GetY,speed,GetAngleToPlayer,3,0);
					CreateShot01(GetX,GetY,speed,GetAngleToPlayer+30,3,0);
					speed=speed-0.5;
					}
				}
			loop(30){yield};
			}
		loop(60){yield};
		}
	left=left*-1;	
	}
}

task Tmove
{
let move=-6;
jump=1;
if(GetX>GetPlayerX){SetGraphicAngle(180,0,0);}
else{SetGraphicAngle(0,0,0);}
pattern(5);
loop(61)
	{
	SetMovePosition02(GetX,GetY+move,1);
	move=move+0.2;		
	yield;
	}
pattern(0);
jump=0;
}

task Tbelt
{
let pat=0;
loop
	{
	loop(10)
		{
		SetPlayerX(GetPlayerX+GetPlayerInfo(PLAYER_SPEED_LOW)*left);
		yield;	
		}
	if(jump==0)
		{
		pat=(pat+1)%4;
		if(left==1){SetGraphicAngle(180,0,0);}
		else{SetGraphicAngle(0,0,0);}
		pattern(1+pat);
		}
	else{pat=1;}
	}
}

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

}