
#Title[enm5_2 Attack01 hard]
#Text[WlbgEAJWF@ʏ]
#Player[FREE]
#BackGround[Default]
#ScriptVersion[2]

script_enemy_main {
	let imgEffect = GetCurrentScriptDirectory~".\enm5eff\bossEfect.png";
	let t5		= GetCurrentScriptDirectory~".\enm5se\timer1.wav";
	let t10	   = GetCurrentScriptDirectory~".\enm5se\timer2.wav";
	let tan	   = GetCurrentScriptDirectory~".\enm5se\shot1.wav";
	let kira	  = GetCurrentScriptDirectory~".\enm5se\shot2.wav";
	let Gspel	 = GetCurrentScriptDirectory~".\enm5se\echo5.wav";
	let laser	 = GetCurrentScriptDirectory~".\enm5se\Laser2.wav";
	let power	 = GetCurrentScriptDirectory~".\enm5se\enemy_powereffect.wav";
	let powerl	= GetCurrentScriptDirectory~".\enm5se\power_logo.wav";
	let gekiha	= GetCurrentScriptDirectory~".\enm5se\BossEnd.wav";
	let powerla   = GetCurrentScriptDirectory~".\enm5se\power_logo.wav";
	let kaku	  = GetCurrentScriptDirectory~".\enm5se\j.wav";
	let frame	 = 0;
	let GetAngle  = 0;
	let angle	 = 0;
	let angle2	= 0;
	let angleBase = 0;
	let count	 = 0;
	let timer	 = 0;
	let shotdir   = GetCurrentScriptDirectory ~ "data_usershot.txt";
	let MinX	  = GetClipMinX;
	let MaxX	  = GetClipMaxX;
	let CenX	  = GetCenterX;
	let MinY	  = GetClipMinY;
	let MaxY	  = GetClipMaxY;
	let CenY	  = GetCenterY;
	let T_count   = 0;
	let Damage	= 0;
	let a		 = 0;
	let b		 = 0;
	let S_count   = 0;
	let w		 = 0;
	let lp		= 0;

	@Initialize {
		//SetX(MaxX+100);
		//SetY(MinY-100);

		SetLife(5000);
	SetDamageRate(0,0);

	SetInvincibility(120);

	/*e폜@(l64)*/
	SetShotAutoDeleteClip(30,30,30,30);

	LoadUserShotData(shotdir);
	SetMovePosition03(CenX,CenY-150,10,5);
	LoadGraphic(imgEffect);
	Aura(8,200,128,100);
	MagicCircle(false);
	SetRateScoreSystemEnable(false);
	hpb(0,1,0);
	SetTimer(60);
	Timer(2,1);
	VSnameB2(1);
	VSname2(0,1);
	EnemyTexture05a(true);
	RedMagicCircle(0,0);
	Shot_Main;
	}

	@MainLoop {
	yield;
		SetCollisionA(GetX, GetY, 30);
		SetCollisionB(GetX, GetY, 16);

	/*ԏ*/
	if(GetTimer<=10 && GetTimer>=0){T_count++;}
	alternative(T_count)
	case(1,60,120,180,240){PlaySE(t10);}
	case(300,360,420,480,540){PlaySE(t5);}

	/*{Agp莞ԃ_[W*/
	if(OnBomb==true){SetDamageRate(120,100);Damage=0;}
	if(OnBomb==false){Damage++;}
	if(Damage>=100){SetDamageRate(120,100);}

	/*XyJ[hؐ錾*/
	if(S_count==1){
	CutinSP("TIREI",50,-50,4000000,60,0,0,0,0,0);
	CutinSP2(-120,-10,GetCurrentScriptDirectory~".\enm5spell\enm5_sn01_normal.png",0,0,300,30,255,255,255);
	BackGroundEffect;
	}
	if(S_count==50){
	}
	

	a++;	
	frame++;
	count++;
	//S_count++;
	timer++;

}//MainLoop")"łB

	@DrawLoop {}

	@Finalize {
	}
	
	task Shot_Main {
	loop(30){yield;}
	let x;
	let y;
	let angle = 0;
	let pla = 30;
	let type = -1;
	let count;
	loop {
		count = 67;
		MoveToPlayerRand;
		loop(60){yield;}
		Concentration(50,powerla);
		loop(70){yield;}
		loop(15) {
			angle = sin(count*4)*60;
			ascent(let r in 0..4) {
				loop(2) {
					x = GetX+cos(angle)*r*20;
					y = GetY+sin(angle)*r*20;
					CreateWingShot(x,y,2  ,angle+pla,72,20,type);
					CreateWingShot(x,y,1.5,angle+pla,72,20,type);
					CreateWingShot(x,y,1  ,angle+pla,72,20,type);
					angle += 180;
					angle *= -1;
					pla *= -1;
					type *= -1;
					}
				PlaySE(kira);
				}
			count+=3;
			loop(3){yield;}
			}
		}
	}
	
	task CreateWingShot(x,y,s,a,g,d,t) {
		let obj = Obj_Create(OBJ_SHOT);
		let speed = s;
		Obj_SetPosition(obj, x, y);
		Obj_SetSpeed(obj, s);
		Obj_SetAngle(obj, a);
		ObjShot_SetGraphic(obj, g);
		ObjShot_SetDelay(obj, d);
		
		loop(d){ yield; }
		while(Obj_BeDeleted(obj)) {
			loop(40){
				Obj_SetSpeed(obj, speed);
				Obj_SetAngle(obj, a);
				a += 1.5*t;
				speed-=s/60;
				yield;
				}
			a -= 72*t;
			speed = s;
			Obj_SetSpeed(obj, speed);
			Obj_SetAngle(obj, a);
			loop(40){
				Obj_SetSpeed(obj, speed);
				Obj_SetAngle(obj, a);
				a -= 1.5*t;
				speed-=s/60;
				yield;
				}
			a += 72*t;
			speed = s;
			}
		}
	
function MoveToPlayer_(xMove, yAdd, frame, left, top, right, bottom) {
	let x;
	let y;
	if(GetPlayerX < GetX) {
		x = GetX - xMove;
		if(x < left) {
			x = GetX + xMove;
		}
	} else {
		x = GetX + xMove;
		if(right < x) {
			x = GetX - xMove;
		}
	}
	y = GetY + yAdd;
	if(y < top) {
		y = top;
	} else if(bottom < y) {
		y = bottom;
	}
	SetMovePosition03(x, y, 20,2);
}

function MoveToPlayerRand {
	MoveToPlayer_(rand(40, 80),rand(-40, 40),60,GetClipMinX+32,GetClipMinY+80,GetClipMaxX-32,GetClipMinY+120);
	}

	#include_function".\Obj_Control.txt"
	#include_function".\lib_kshot.txt"
}