東方弾幕風[Single]
#ScriptVersion[2]
#Title[白百合通常1]

script_enemy_main{
	
	@Initialize{
		//データ初期化
		InitializeData();
		InitializeAction();
		
		//ライフ設定
		SetLife( 2500 );
		//初期位置設定
		Warp( CenterX, MinY + 100, 40 );
		//ダメージレート設定
		SetDamageRate( 100, 100 );
		//当たり判定設定
		SetCollisionEx( 32, 16, false, 60 );
		//エネミーマーカー
		SetEnemyMarker( true );
		
		//メインタスク開始
		TMain();
	}
	
	@MainLoop{
		//yieldループ
		yield;
	}
	
	@DrawLoop{
		//ボス画像描画
		SetGraphicScale( xscale, yscale );
		DrawBoss( imgBoss );
	}
	
	@Finalize{
		//最終処理
		FinalizeData();
	}
	
	/**
	 * メインタスク
	 */
	task TMain(){
		//60F(1秒)待つ
		FWait( 60 );
		
		//制限時間設定
		SetTimer( 32 );
		
		//攻撃分岐
		alternative( difficult )
			case( "Easy" ){
				Atack_Easy();
			}
			case( "Normal" ){
				Atack_Normal();
			}
			case( "Panic" ){
				Atack_Panic();
			}
	}
	
	/**
	 * Easy 攻撃メインタスク
	 */
	task Atack_Easy(){
	}
	
	/**
	 * Normal 攻撃メインタスク
	 */
	task Atack_Normal(){
	}
	
	/**
	 * Panic 攻撃メインタスク
	 */
	task Atack_Panic(){
		loop{
			Atack1();
			FWait( 130 );
			Warp( rand( MinX + 32, MaxX - 32 ), MinY + 100 + rand( -20, 20 ), 40 );
			FWait( 60 );
		}
	}
	
	/**
	 * 弾幕タスク1
	 */
	task Atack1(){
		let rad = 0;
		let x1 = GetX();
		let y1 = GetY();
		let x2 = GetX();
		let y2 = GetY();
		let angle1 = 90;
		let angle2 = 90;
		let px = GetPlayerX();
		let py = GetPlayerY();
		let count = 0;
		
		loop( 120 ){
			x1 = GetGapX( GetX(), rad, angle1 );
			y1 = GetGapY( GetY(), rad, angle1 );
			x2 = GetGapX( GetX(), rad, angle2 );
			y2 = GetGapY( GetY(), rad, angle2 );
			
			CreateShot02( x1, y1, 0.6, angle1 - 80, 0.03, 2.2, US_BALL_F_RED , 12 );
			CreateShot02( x2, y2, 0.6, angle2 + 80, 0.03, 2.2, US_BALL_F_BLUE, 12 );
			
			CreateShot02( x1, y1, 0.8, angle1 - 160, 0.028, 2.6, US_BALL_F_RED , 12 );
			CreateShot02( x2, y2, 0.8, angle2 + 160, 0.028, 2.6, US_BALL_F_BLUE, 12 );
			
			CreateShot02( x1, y1, 1.0, angle1 - 240, 0.026, 3.2, US_BALL_F_RED , 12 );
			CreateShot02( x2, y2, 1.0, angle2 + 240, 0.026, 3.2, US_BALL_F_BLUE, 12 );
			
			ascent(i in 0..5){
				CreateShot01( x1, y1, 4.6, GetGapAngle( x1, y1, px, py ) + ( i - 2 ) * 24, PURPLE23, 12 );
				CreateShot01( x2, y2, 4.6, GetGapAngle( x2, y2, px, py ) + ( i - 2 ) * 24, PURPLE23, 12 );
			}
			
			rad += 1.4;
			angle1 += 7.4;
			angle2 -= 7.4;
			count += 1;
			
			yield;
		}
	}
	
	//スクリプトのインクルード
	#include_function ".\initialize.txt"
}