#e
#Title[ueBNX^[Xvbhv]
#Text[ʂ2ʑΐSTGɂ͂Ȃ܂
[ߋ샊CNł]
#BGM[.\..\bgm\bgm.wav]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main{
	
	@Initialize{
		imgBoss = imgBoss_Marisa;
		InitializeData();
		InitializeAction();
		
		SetLife(1000);
		SetMovePosition03(CenterX,MinY + 130,20,4);
		SetDamageRate(45,15);
		SetCollisionEx(32,16,false,360);
		SetEnemyMarker(true);
		
		SetShotAutoDeleteClip(32,32,32,32);
		
		TMain();
	}
	
	@MainLoop{
		yield;
	}
	
	@DrawLoop{
		DrawBoss(imgBoss);
	}
	
	@Finalize{
		SetShotAutoDeleteClip(64,64,64,64);
		FinalizeData();
	}
	
	task TMain(){
		FWait(60);
		
		DeclareSpell();
		
		Atack();
	}
	
	function DeclareSpell(){
		SetScore(2600000);
		SetTimer(63);
		CutIn(KOUMA,"ueBNX^[Xvbhv",NULL,0,0,0,0);
		SetAction(ACT_SPELL,180);
		FWait(180);
	}
	
	task Atack(){
		let angle = 0;
		let span = 28;
		let atack = 0;
		let flag = true;
		
		loop{
			Concentration01(120);
			PlaySE(se_charge);
			FWait(120);
			
			angle = GetAngleToPlayer() - span * 3;
			ascent(i in 0..7){
				StarDust(GetX(),GetY(),5,angle,StarL[i],StarS[i],0);
				angle += span;
			}
			
			FWait(60);
			Concentration01(120);
			PlaySE(se_charge);
			FWait(120);
			flag = Move(flag);
			SetAction(ACT_MOVE,120);
			
			ascent(i in 0..7){
				StarDust(GetX(),GetY(),6,GetAngleToPlayer(),StarL[i],StarS[i],0);
				FWait(15);
			}
			
			FWait(40);
			Concentration01(120);
			PlaySE(se_charge);
			FWait(120);
			
			angle = GetAngleToPlayer() - 360 / 14;
			ascent(i in 0..7){
				StarDust(GetX(),GetY(),5,angle,StarL[i],StarS[i],0);
				angle += 360 / 7;
			}
			
			FWait(60);
		}
	}
	
	task StarDust(x,y,speed,angle,graph,graph2,delay){
		let obj = CreateObjShot(x,y,speed,angle,graph,delay);
		
		while( !Obj_BeDeleted(obj) ){
			GravityShot(Obj_GetX(obj),Obj_GetY(obj),rand(3,6),angle + rand(166,194),graph2,24,0.03,90,2.6);
			yield;
		}
	}
	
	function Move(flag){
		if(flag){
			if( GetX() > GetPlayerX() ){
				SetMovePosition03(CenterX + 80 + rand(-20,20),MinY + 130 + rand(-20,20),4,2);
			}else{
				SetMovePosition03(CenterX - 80 + rand(-20,20),MinY + 130 + rand(-20,20),4,2);
			}
			
			flag = false;
		}else{
			SetMovePosition03(CenterX + rand(-20,20),MinY + 130 + rand(-20,20),4,2);
			flag = true;
		}
		
		return flag;
	}
	
	#include_function ".\initialize.txt"
	#include_function ".\..\lib\lib_anime_marisa.txt"
	
	#include_function ".\..\lib\lib_obj.txt"
	#include_function ".\..\lib\lib_value.txt"
	#include_function ".\..\lib\lib_shot.txt"
	#include_function ".\..\lib\lib_effect.txt"
}