#e
#Title[ztuTCgVF[hv]
#Text[tؘ̖R]
#BGM[.\..\bgm\bgm.wav]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main{
	let objArray = [];
	
	@Initialize{
		imgBoss = imgBoss_LilyWhite;
		InitializeData();
		InitializeAction();
		
		SetLife(1000);
		Warp(CenterX,MinY + 130,40);
		SetDamageRate(25,15);
		SetCollisionEx(32,16,false,240);
		SetEnemyMarker(true);
		
		TMain();
	}
	
	@MainLoop{
		yield;
	}
	
	@DrawLoop{
		DrawBoss(imgBoss);
	}
	
	@Finalize{
		FinalizeData();
	}
	
	task TMain(){
		FWait(60);
		
		DeclareSpell();
		
		Atack();
	}
	
	function DeclareSpell(){
		SetScore(2600000);
		SetTimer(63);
		CutIn(KOUMA,"ztuTCgVF[hv",NULL,0,0,0,0);
		SetAction(ACT_SPELL,180);
		FWait(180);
	}
	
	task Atack(){
		loop{
			Leaf();
			FWait(60);
			SunLight();
			FWait(100);
			Warp(rand(MinX + 60,MaxX - 60),MinY + 130 + rand(-30,30),30);
			FWait(40);
		}
	}
	
	task Leaf(){
		let shotspan = 9;
		let x = GetX();
		let y = GetY();
		
		let rnum = ( MaxX - x ) / shotspan + 1;
		let lnum = ( x - MinX ) / shotspan + 1;
		let num = rnum;
		if( lnum > rnum ){
			num = lnum;
		}
		
		ascent(i in 0..num){
			if(i <= rnum){
				LeafShot(x + i * shotspan + rand(-4,4),y + rand(-4,4),rand(1.6,2),270 + rand(-14,14),36,18,0.02,90,1.2 + rand(-0.4,0.4));
			}
			if(i != 0 && i <= lnum){
				LeafShot(x - i * shotspan + rand(-4,4),y + rand(-4,4),rand(1.6,2),270 + rand(-14,14),36,18,0.02,90,1.2 + rand(-0.4,0.4));
			}
			
			FWait(1);
		}
	}
	
	task SunLight(){
		let way = 20;
		
		ascent(i in 0..way){
			SunLaser(MinX,MinY,  0 + i * 90 / way);
			SunLaser(MaxX,MinY,180 - i * 90 / way);
			
			FWait(3);
		}
	}
	
	task LeafShot(x,y,speed,angle,graph,delay,gspeed,gangle,maxspeed){
		let obj = GravityShotObj(x,y,speed,angle,graph,delay,gspeed,gangle,maxspeed);
		
		while( !Obj_BeDeleted(obj) ){
			yield;
		}
	}
	
	task SunLaser(x,y,angle){
		let obj = CreateObjLaser(x,y,0,angle,600,2,186,0,false);
		Obj_SetCollisionToPlayer(obj,false);
		
		FWait(60);
		
		ObjLaser_SetWidth(obj,10);
		Obj_SetCollisionToPlayer(obj,true);
		
		FWait(40);
		
		if( !Obj_BeDeleted(obj) ){
			Obj_Delete(obj);
		}
	}
	
	#include_function ".\initialize.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"
}