
script_enemy_main{
	let csd		=GetCurrentScriptDirectory;
	let imgBoss	=csd ~ ".\img\dot_koisi.png";
	let shotData	=csd ~ ".\img\shot_all.txt";

	@Initialize {
        	SetLife(600);
		SetTimer(99);
		SetInvincibility(480);
		InitializeAction();
		LoadUserShotData(shotData);
		SetShotAutoDeleteClip(100,100,100,100);
        	LoadGraphic(imgBoss);
        	Main;
	}
	
	@MainLoop {
        	SetCollisionA(GetX, GetY, 32);
        	SetCollisionB(GetX, GetY, 16);
		if(GetLife>20){SetDamageRate(20,0);}
		else{SetDamageRate(0,0);}
		if(GetTimer==10&&counter==0){
			Timer;
			counter++;
		}
		if(OnPlayerMissed){VanishEnemy;}
		yield;
	}

	@DrawLoop {
		SetColor(255,255,255);
		SetGraphicScale(1,1);
		DrawBoss(imgBoss);
	}

	sub standBy {
		SetMovePosition03(224, 160, 10, 7);
		SetAction(ACT_MOVE, 60);
		wait(60);
	}

    	task Main {
        	yield;
		standBy;
		CutIn(YOUMU,"ӎuϑ̃[Vbnv",NULL,0,0,0,0);
		SetScore(90000000);
		SetAction(ACT_SPELL, 120);
		wait(60);
		SetColor(63,63,255);
		Concentration01(60);
		PlaySE(seCharge1);
		wait(60);
		death;
		attack;
	}

	task attack{
		shotA(GetX,GetY);
		shotB(GetX,GetY);
		PlaySE(seShot3);
		wait(60);
		shotC(GetX,GetY);
		shotD(GetX,GetY);
		PlaySE(seShot3);
		wait(60);
		shotE(GetX,GetY);
		shotF(GetX,GetY);
		PlaySE(seShot3);
		wait(60);
		shotG(GetX,GetY);
		shotH(GetX,GetY);
		PlaySE(seShot3);
	}

	task shotA(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x+pos*cos(angle+60),y+pos*sin(angle),30);
				SetShotDataA(1,0,0,-angle+90,0,0,0,244);
				SetShotDataA(1,90,0,NULL,-0.5,0.05,2,246);
				SetShotDataA(1,240,NULL,NULL,-0.1,0.05,2.5,244);
				FireShot(1);
				angle+=4;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotB(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x-pos*cos(angle+60),y+pos*sin(angle),30);
				SetShotDataA(1,0,0,angle+90,0,0,0,244);
				SetShotDataA(1,90,0,NULL,0.5,0.05,2,246);
				SetShotDataA(1,240,NULL,NULL,0.1,0.05,2.5,244);
				FireShot(1);
				angle+=4;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotC(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x+pos*1.5*cos(angle),y-pos/2*sin(angle+60),30);
				SetShotDataA(1,0,0,-angle+180,0,0,0,247);
				SetShotDataA(1,90,0,NULL,-0.5,0.05,2,241);
				SetShotDataA(1,240,NULL,NULL,-0.1,0.05,1.5,247);
				FireShot(1);
				angle+=5;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotD(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x-pos*1.5*cos(angle),y-pos/2*sin(angle+60),30);
				SetShotDataA(1,0,0,angle+0,0,0,0,247);
				SetShotDataA(1,90,0,NULL,0.5,0.05,2,241);
				SetShotDataA(1,240,NULL,NULL,0.1,0.05,1.5,247);
				FireShot(1);
				angle+=5;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotE(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x+pos*0.5*cos(angle+70),y-pos*sin(angle),30);
				SetShotDataA(1,0,0,-angle+180,0,0,0,242);
				SetShotDataA(1,90,0,NULL,-0.5,0.05,2,245);
				SetShotDataA(1,240,NULL,NULL,-0.1,-0.05,1,242);
				FireShot(1);
				angle+=4;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotF(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x-pos*0.5*cos(angle+70),y-pos*sin(angle),30);
				SetShotDataA(1,0,0,angle+0,0,0,0,242);
				SetShotDataA(1,90,0,NULL,0.5,0.05,2,245);
				SetShotDataA(1,240,NULL,NULL,0.1,-0.05,1,242);
				FireShot(1);
				angle+=4;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotG(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x+pos*2*cos(angle+70),y+pos*1.5*sin(angle),30);
				SetShotDataA(1,0,0,-angle+180,0,0,0,243);
				SetShotDataA(1,90,0,NULL,-0.5,0.05,2,248);
				SetShotDataA(1,180,NULL,NULL,-0.1,-0.05,1,243);
				FireShot(1);
				angle+=6;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task shotH(x,y){
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				CreateShotA(1,x-pos*2*cos(angle+70),y+pos*1.5*sin(angle),30);
				SetShotDataA(1,0,0,angle+0,0,0,0,243);
				SetShotDataA(1,90,0,NULL,0.5,0.05,2,248);
				SetShotDataA(1,180,NULL,NULL,0.1,-0.05,1,243);
				FireShot(1);
				angle+=6;
				if(pos<=90){pos++;}
				wait(2);
			}
			yield;
		}
	}

	task death{
		loop{
			if(GetLife<=20){break;}
			yield;
		}
		SetCommonDataEx("Effect","bossx",GetX);
		SetCommonDataEx("Effect","bossy",GetY);
		SetCommonDataEx("Effect","boss",1);
		DeleteGraphic(imgBoss);
		if(GetTimer>0&&GetLife<=20){
			AddLife(-20);
		}
	}

	@Finalize{
		DeleteGraphic(imgBoss);
	}

	#include_function ".\lib\lib_anime_Koisi.txt"
	#include_function ".\lib\lib_Functions.txt"
}