script_enemy_main
{
	let count=-60;
	let lv = GetCommonDataDefault("lv",2);
	let cx=GetCenterX();//STGV[̒SxW擾
	let cy=GetCenterY();//STGV[̒SxW擾
	#include_function ".\lib\lib_anime_Remilia.txt"
	let imageBoss = ".\script\wx\img\dot_cirno.png";
	@Initialize{
		LoadGraphic(imageBoss);
		InitializeAction();
		SetLife(2000);
		SetTimer(50);
		SetDamageRate(100,100);
		SetMovePosition02(cx,100,60);
	}
	
	@MainLoop
	{
		if(0 < GetHitCount)
		{
			PlaySE(".\script\wx\sound\enemy_damage.wav");
		}
		if (GetTimer>0 && GetTimer<12 && count%60==0)
		{
			PlaySE(".\script\wx\sound\clock.wav");
		}
		count++;
		
		if (count>0) {
		if ((count%90==75 && lv>3) || (count%90==30 && lv>1) || (count%180==60 && lv==1))
		{
			let angle=0;
			SetAction(ACT_SHOT_B,30);
			PlaySE(".\script\wx\sound\shot2.wav");
			loop(18)
			{
				IceShot(angle);
				angle+=20;
			}
		}
		if ((count%30==0 && count%150>0 && count%150<60 && lv==1) || (count%15==0 && count%150>59 && count%150<120 && lv>3) || (count%15==0 && count%150>0 && count%150<60 && lv==1))
		{
			SetAction(ACT_SHOT_B,30);
			PlaySE(".\script\wx\sound\shot2.wav");
			let angle=getAngleToPlayer(GetX,GetY)-20;
			loop(3)
			{
				IceShot2(angle);
				angle+=20;
			}
		}
		if ((count%10==0 && count%300>150 && count%300<240 && lv==1) || (count%5==0 && count%150>75 && count%150<120 && lv>1) || (count%5==0 && count%150>30 && count%150<76 && lv>3))
		{
			PlaySE(".\script\wx\sound\shot1.wav");
			loop(4){if (lv<3) {CreateShot01(GetX,GetY,rand(1,2),rand(0,360),BLUE01,30);} else {CreateShot01(GetX,GetY,rand(3,4),rand(0,360),BLUE01,30);}}
			SetAction(ACT_SHOT_A,5);
		}
		if (count%300==0)
		{
			SetMovePosition02(rand(50,cx*2-50),rand(50,cy-50),30);
			SetAction(ACT_MOVE,30);
		}

		SetCollisionA(GetX(),GetY(),24);//蔻(e)o^
		SetCollisionB(GetX(),GetY(),12);//蔻(̓)o^
		}
		yield;
	}
	@DrawLoop{DrawBoss( imageBoss);}
	task IceShot(let angle)
	{
		let obj=Obj_Create(OBJ_SHOT);
		Obj_SetPosition(obj,GetX+cos(angle)*30,GetY+sin(angle)*30);
		Obj_SetAngle(obj,angle);
		if (lv<3) {Obj_SetSpeed(obj,2);} else {Obj_SetSpeed(obj,3);}
		ObjShot_SetDelay(obj,30);
		ObjShot_SetGraphic(obj,BLUE23);
		loop(90)
		{
			if (Obj_BeDeleted(obj)) {break;}
			yield;
		}
		Obj_SetSpeed(obj,0);
		Obj_SetAngle(obj,getAngleToPlayer(Obj_GetX(obj),Obj_GetY(obj)));
		loop(30)
		{
			if (Obj_BeDeleted(obj)) {break;}
			yield;
		}
		if (lv<3) {Obj_SetSpeed(obj,3);} else {Obj_SetSpeed(obj,4);}
		while(!Obj_BeDeleted(obj))
		{
			yield;
		}
		
	}
	task IceShot2(let angle)
	{
		let obj=Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj,GetX+cos(angle)*30,GetY+sin(angle)*30);
		ObjLaser_SetLength(obj,0);
		ObjLaser_SetWidth(obj,10);
		Obj_SetAngle(obj,angle);
		ObjLaser_SetSource(obj, false);
		Obj_SetSpeed(obj,2);
		ObjShot_SetGraphic(obj,AQUA01);
		let length=0;
		while(!Obj_BeDeleted(obj))
		{
			ObjLaser_SetLength(obj,length);
			if (length<300) {length+=2;} else {Obj_SetPosition(obj,Obj_GetX(obj)+cos(Obj_GetAngle(obj))*Obj_GetSpeed(obj),Obj_GetY(obj)+sin(Obj_GetAngle(obj))*Obj_GetSpeed(obj));}
			yield;
		}
		
	}
	function getAngleToPlayer(x, y)
	{
  		return atan2(GetPlayerY - y, GetPlayerX - x);
 	}	
	@Finalize
	{//ǂ݂񂾃t@C폜
		loop(16){CreateItem(ITEM_SCORE,GetX+rand(-50,50),GetY+rand(-50,50));}
	}
	
}