#e
#Title[ՁutO[Yv]
#Text[Ղ͋NȂՂČłH
oAx̖ڂŌĂ݂ˁB]
#BGM[.\bgm\bgm.wav]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main{
	
	@Initialize{
		InitializeData();
		LoadUserShotData(shot_rose);
		
		SetLife(1000);
		SetMovePosition03(GetCenterX(),GetClipMinY() + 130,20,4);
		SetDamageRate(22,15);
		SetCollisionEx(32,16,false,360);
		SetEnemyMarker(true);
		
		SetShotAutoDeleteClip(512,512,512,512);
		
		TMain();
	}
	
	@MainLoop{
		yield;
	}
	
	@DrawLoop{
		DrawBoss_Koisi(imgBoss_Koisi);
	}
	
	@Finalize{
		FinalizeData();
		SetShotAutoDeleteClip(64,64,64,64);
	}
	
	task TMain(){
		Wait(60);
		
		DeclareSpell();
		
		Atack();
	}
	
	function DeclareSpell(){
		CutIn(KOUMA,"ՁutO[Yv",NULL,0,0,0,0);
		
		SpellCard(CUT_TIREI,imgCutin_Koisi,0,0,256,320,-30,1);
		
		SetScore(2600000);
		SetTimer(63);
		pose = 2;
		Wait(180);
	}
	
	task Atack(){
		let angle = 0;
		let speed = 0;
		let turn = 0;
		
		let span = 5.7;
		
		pose = 1;
		
		loop{
			ConcentRC(120,0,0,255);
			ConcentRC(120,0,0,255);
			PlaySE(se2);
			Wait(120);
			
			angle = 30 + span * rand(-1,1);
			speed = 3;
			
			turn = rand_int(0,1) * 2 - 1;
			
			loop(truncate(360 * 4 / span)){
				Rose(GetGapX(GetX(),30,angle),GetGapY(GetY(),30,angle),speed,angle,BLUE01,2,0,turn);
				angle += span;
				speed += 0.01;
				turn *= -1;
				yield;
			}
			
			Wait(80);
		}
	}
	
	task Rose(x,y,speed,angle,graph1,graph2,delay,turn){
		let vspeed = speed;
		let turnpower = 1;
		let maxspeed = -3.4;
		
		let obj = CreateObjShot(x,y,speed,angle,graph1,delay);
		
		while( !Obj_BeDeleted(obj) ){
			Obj_SetSpeed(obj,vspeed);
			
			if(vspeed > maxspeed){
				vspeed -= 0.0024 * speed * speed * turnpower;
			}
			
			if(vspeed < 0){
				ObjShot_SetGraphic(obj,graph2);
				turnpower = turn;
			}
			
			yield;
		}
	}
	
	#include_function ".\initialize_boss.txt"
	
	#include_function ".\lib\lib_cutin.txt"
	
	#include_function ".\lib\lib_obj.txt"
	#include_function ".\lib\lib_value.txt"
}