e
#Title[[ʏ]
#Text[]
#BGM[.\bgm\bgm.wav]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main{
	
	@Initialize{
		InitializeData();
		InitializeAction();
		LoadUserShotData(shot_cherry);
		
		SetLife(5000);
		SetMovePosition03(GetCenterX(),GetClipMinY() + 130,20,4);
		SetDamageRate(180,100);
		SetCollisionEx(32,16,false,60);
		SetEnemyMarker(true);
		
		TMain();
	}
	
	@MainLoop{
		yield;
	}
	
	@DrawLoop{
		DrawBoss(imgBoss_LilyBlack);
	}
	
	@Finalize{
		FinalizeData();
	}
	
	task TMain(){
		Wait(60);
		
		SetTimer(55);
		
		Atack();
		Move();
	}
	
	task Atack(){
		let rad = 0;
		let angle = rand(0,360);
		let sangle = 0;
		let count = 0;
		let vx = 0;
		let vy = 0;
		
		loop{
			count += 1 + rand(-0.04,0.04);
			
			rad = sin(count / 2) * 130;
			
			angle += sin(count / 1.5) * 11;
			
			ascent(i in 0..2){
				vx = GetGapX(GetX(),rad,angle + i * 180);
				vy = GetGapY(GetY(),rad,angle + i * 180);
				
				GrowEffect(vx,vy,1,30);
				
				sangle = GetGapAngle(vx,vy,GetX(),GetY());
				
				CreateShot01(vx,vy,3 + rand(0,2),sangle,1,0);
			}
			
			yield;
		}
	}
	
	task Move(){
		let mvx = 0;
		let mvy = 0;
		let rnda = 0;
		
		let MinX = GetClipMinX() + 70;
		let MaxX = GetClipMaxX() - 70;
		let MinY = GetClipMinY() + 90;
		let MaxY = GetClipMinY() + 150;
		
		let WFrame = 90;
		let Radius = 50;
		
		loop{
			Wait(WFrame);
			rnda = rand(0,360);
			mvx = sin(rnda) * Radius;
			mvy = cos(rnda) * Radius;
			
			if(GetX() + mvx <= MinX || GetX() + mvx >= MaxX){
				mvx = -mvx;
			}
			if(GetY() + mvy <= MinY || GetY() + mvy >= MaxY){
				mvy = -mvy;
			}
			
			SetMovePosition03(GetX() + mvx,GetY() + mvy,18,4);
		}
	}
	
	#include_function ".\initialize_boss.txt"
	#include_function ".\lib\lib_anime_lily.txt"
	
	#include_function ".\lib\lib_effect.txt"
	#include_function ".\lib\lib_value.txt"
}