#e
#Title[Xu~[WNX^v]
#Text[]
#BGM[.\..\bgm\bgm.wav]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main{
	
	@Initialize{
		imgBoss = imgBoss_Cirno;
		InitializeData();
		InitializeAction();
		
		SetLife(1000);
		SetX( CenterX );
		SetY( MinY + 100 );
		SetDamageRate(22,15);
		SetCollisionEx(32,16,false,240);
		SetEnemyMarker(true);
		LastSpell();
		
		TMain();
	}
	
	@MainLoop{
		yield;
	}
	
	@DrawLoop{
		DrawBoss(imgBoss);
	}
	
	@Finalize{
		FinalizeData();
	}
	
	task TMain(){
		FWait(60);
		
		DeclareSpell();
		
		Atack();
		Atack2();
		Move();
	}
	
	function DeclareSpell(){
		SetScore(2600000);
		SetTimer(63);
		CutIn(KOUMA,"Xu~[WNX^v",NULL,0,0,0,0);
		SetAction(ACT_SPELL,180);
		FWait(180);
	}
	
	task Atack(){
		let anglea = 270;
		let angleb = 270;
		let mangle = 6;
		
		loop{
			RefLaser(anglea);
			RefLaser(angleb);
			
			anglea += mangle;
			angleb -= mangle;
			
			FWait(5);
		}
	}
	
	task Atack2(){
		let angle = 0;
		let sangle = 0;
		
		loop{
			sangle += 3;
			
			ascent(i in 0..48){
				angle = sangle + i * 360 / 48;
				
				CreateShotA(1,GetX(),GetY(),0);
				SetShotDataA(1, 0,6,angle,0,-0.1,0,86);
				SetShotDataA(1,50,NULL,NULL,( (i % 2) * 2 - 1 ) * 6,0,0,86);
				SetShotDataA(1,60,1,angle + ( (i % 2) * 2 - 1 ) * 60,0,0,0,86);
				FireShot(1);
			}
			
			FWait(40);
		}
	}
	
	task RefLaser(angle){
		let Val = [0,0,0];
		let x = GetX();
		let y = GetY();
		
		loop(2){
			CLaser(x,y,2,angle,600,12,190,0,false);
			
			Val = GetReflectData(x,y,angle);
			x = Val[0];
			y = Val[1];
			angle = Val[2];
		}
	}
	
	task CLaser(x,y,speed,angle,len,wid,graph,delay,src){
		let obj = CreateObjLaser(x,y,speed,angle,len,wid / 4,graph,delay,src);
		Obj_SetCollisionToPlayer(obj,false);
		ObjShot_ToItem(obj,false);
		
		FWait(80);
		
		Obj_SetCollisionToPlayer(obj,true);
		ObjLaser_SetWidth(obj,wid);
		
		FWait(20);
		
		ObjShot_FadeDelete(obj);
	}
	
	task Move(){
		FWait(240);
		
		loop{
			SetMovePositionRandom01(40,40,4,MinX,MinY,MaxX,CenterY - 60);
			
			FWait(160);
		}
	}
	
	#include_function ".\initialize.txt"
	#include_function ".\..\lib\lib_anime_cirno.txt"
	
	#include_function ".\..\lib\lib_obj.txt"
	#include_function ".\..\lib\lib_value.txt"
}