#e
#Title[Ɖ΁uAg~bNt@C[v]
#ScriptVersion[2]
#Player[FREE]
#Text[]
#BackGround[User]

script_enemy_main
{
let GC=GetCurrentScriptDirectory;
let rate=1;
@Initialize
{
LoadGraphic(GC~".\main2.png");
SetTexture(GC~".\main2.png");
SetGraphicRect(0,0,32,32);
SetLife(4000);
SetTimer(80);
CutIn(KOUMA,"Ɖ΁uAg~bNt@C[v","",0,0,0,0);
SetScore(100000);
Tmain;
//CreateDebugWindow;
}
@MainLoop
{
SetCollisionA(GetX,GetY,24);
SetCollisionB(GetX,GetY,12);
OutputDebugString(0,"enemy",GetEnemyNum);
yield;
}
@DrawLoop
{
if(rate!=0){DrawGraphic(GetX,GetY);}
}
@Finalize
{
AddScore(10000);
loop(30){CreateItem(ITEM_SCORE,GetX+rand(-40,40),GetY+rand(-30,30));}
}

task Tmain
{
SetDamageRate(0,0);
Concentration01(60);
loop(60){yield};
CollectItems;
pattern(5);
SetMovePosition03(GetCenterX,GetClipMinY+80,15,8);
loop(60){yield};
SetDamageRate(100,100);
let life=40;
Tattack;
loop
	{
	if((life-4)*100>=GetLife)
		{
		life=life-4;
		SetDamageRate(10,50);
		rate=2;
		Tbarn;
		}
	yield;
	}	
}

task Tbarn
{
SetColor(255,0,0);
Concentration01(120);
SetColor(255,255,255);
loop(60){yield};
let angle=GetAngleToPlayer-180;
loop(12)
	{
	loop(1)
		{
		CreateShot01(GetX,GetY,4.5,angle,RED03,30);
		CreateShot01(GetX,GetY,3.5+rand(0,0.8),angle+rand(-30,0),RED02,30);
		CreateShot01(GetX,GetY,3.5+rand(0,0.8),angle+rand(0,30),RED02,30);
		let speed=4;
		loop(10)
			{
			CreateShot01(GetX,GetY,speed,angle+rand(-45,45),RED04,30);
			speed=speed-0.2;
			}
		}
		angle=angle+30;
	loop(5){yield};
	}
let GX=GetPlayerX;
let GY=GetPlayerY;
if(GY>GetClipMaxY-100){GY=GetClipMaxY-100;}
rate=0;
SetMovePosition03(GX,GY,1,6);
yield;
let pos=0;
loop(3)
	{
	CreateShot01(GetX+pos*cos(GetAngle+180),GetY+pos*sin(GetAngle+180),GetSpeed,GetAngle,RED03,0);
	pos=pos+20;
	}
while(absolute(GetX-GX)>2&&absolute(GetY-GY)>2){yield;}
loop(20){yield;}
rate=1;
SetDamageRate(100,100);
Tattack;
}

task Tattack
{
Tattack2;
loop
	{
	loop(3)
		{
		pattern(5);
		let X=-150;
		if(rate==1)
			{
			loop(11)
				{
				Tflame(0,rand(-10,10));
				X=X+30;
				loop(4){yield;}
				}
			}
		pattern(0);
		loop(40){yield;}
		if(rate!=1){break;}
		}
	loop(40){yield;}
	if(rate!=1){break;}
	}
}

task Tattack2
{
let angle=GetAngleToPlayer;
loop
	{
	if(rate==1)
		{
		loop(8)
			{
			CreateShot01(GetX,GetY,1.5,angle,RED04,0);
			angle=(angle+45)%360;
			}
		angle=angle+10;
		loop(15){yield;}
		}
	if(rate!=1){break;}
	}
}

task Tflame(X,Y)
{
let DX=(GetPlayerX+X-GetX)/80;
let DY=(GetPlayerY+Y-GetY)/80-4;
let flame=Obj_Create(OBJ_SHOT);
Obj_SetPosition(flame,GetX,GetY);
Obj_SetAngle(flame,-90);
ObjShot_SetGraphic(flame,RED21);
loop(81)
	{
	Obj_SetPosition(flame,Obj_GetX(flame)+DX,Obj_GetY(flame)+DY);
	DY=DY+0.1;
	yield;
	}
if(Obj_BeDeleted(flame)==false){Tstay(Obj_GetX(flame),Obj_GetY(flame),0);}
Obj_Delete(flame);
}

task Tstay(X,Y,count)
{
let flame=CreateShot01(X,Y,0,-90,RED21,0);
loop(5){yield};
count=count+1;
if(count<5){Tstay(X,Y-10,count);}
loop(80-count*10){Obj_SetAngle(flame,-90+rand(-10,10));yield;}
Obj_Delete(flame);
}

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

}