#e
#Title[@ԁu[^XEy^v]
#Text[삾Ƙ@̃C[WgĂlˁB
HƂ얲ƂƂ@Ƃ]
#BGM[.\bgm\bgm.wav]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main{
	
	@Initialize{
		InitializeData();
		LoadUserShotData(shot_all);
		
		SetLife(1000);
		SetMovePosition03(GetCenterX(),GetClipMinY() + 130,20,4);
		SetDamageRate(20,15);
		SetCollisionEx(32,16,false,400);
		SetEnemyMarker(true);
		
		TMain();
	}
	
	@MainLoop{
		yield;
	}
	
	@DrawLoop{
		DrawBoss_Byakuren(imgBoss_Byakuren);
	}
	
	@Finalize{
		FinalizeData();
	}
	
	task TMain(){
		Wait(100);
		
		DeclareSpell();
		
		Atack();
	}
	
	function DeclareSpell(){
		CutIn(KOUMA,"@ԁu[^XEy^v",NULL,0,0,0,0);
		
		SpellCard(CUT_TIREI,imgCutin_Byakuren,0,0,256,320,-30,1);
		
		SetScore(2600000);
		SetTimer(70);
		Wait(180);
	}
	
	task Atack(){
		let angle = 0;
		
		loop{
			Concentration01(120);
			PlaySE(se2);
			Wait(120);
			
			angle = rand(0,360);
			
			loop(8){
				ShotGun(GetX(),GetY(),2.6,angle,120,0,12,1,8);
				angle += 360 / 8;
			}
			
			Wait(100);
			
			//Concentration01(90);
			
			ConcentRC(90,255,  0,  0);
			ConcentRC(90,  0,  0,255);
			ConcentRC(90,  0,255,  0);
			ConcentRC(90,255,255,255);
			ConcentRC(90, 64, 64, 64);
			PlaySE(se2);
			Wait(90);
			
			loop(6){
				ShotGun2(GetX(),GetY(),0.6,angle,120,0,7,1,9);
				angle += 360 / 6;
			}
			
			Wait(120);
		}
	}
	
	function ShotGun(x,y,speed,angle,graph,delay,num,way,span){
		let ang = 0;
		let spd = speed;
		let cspd = -speed / (num * 1.5);
		
		loop(num){
			ang = angle - ( way - 1 ) / 2 * span;
			ascent(i in 0..way){
				CreateShot01(x,y,speed,ang,graph,delay);
				
				ang += span;
			}
			way += 1;
			speed += cspd;
		}
	}
	
	function ShotGun2(x,y,speed,angle,graph,delay,num,way,span){
		let ang = 0;
		let spd = speed;
		let cspd = -speed / (num * 1.5);
		
		loop(num){
			ang = angle - ( way - 1 ) / 2 * span;
			ascent(i in 0..way){
				LotusShot(x,y,speed,ang,graph,delay);
				
				ang += span;
			}
			way += 1;
			speed += cspd;
		}
	}
	
	task LotusShot(x,y,speed,angle,graph,delay){
		let color = [113,114,115,116,117];
		
		let obj = CreateObjShot(x,y,speed,angle,graph,delay);
		
		Wait(80);
		
		if( !Obj_BeDeleted(obj) ){
			ascent(i in 0..5){
				CreateShot01( Obj_GetX(obj),Obj_GetY(obj),speed * 2.5 + i / 5,angle + (i - 2) * 40,color[i],0 );
			}
			
			Obj_Delete(obj);
		}
	}
	
	#include_function ".\initialize_boss.txt"
	
	#include_function ".\lib\lib_cutin.txt"
	
	#include_function ".\lib\lib_obj.txt"
	#include_function ".\lib\lib_value.txt"
}