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

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( 33 );
		
		//攻撃分岐
		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(){
		let angle = 0;
		let turn = 1;
		
		SetAction( ACT_SHOT_B, 21600 );
		FWait( 60 );
		
		loop{
			angle = rand( 0, 360 );
			ascent( i in 0..8 ){
				Cherry( angle + i * 360 / 8, turn );
			}
			turn *= -1;
			FWait( 80 );
		}
	}
	
	task Cherry( angle, turn ){
		let x = GetX();
		let y = GetY();
		let vx = x;
		let vy = y;
		let rad = 0;
		let count = 0;
		
		loop( 90 ){
			rad += 1.8;
			angle += 4 * turn;
			vx = GetGapX( x, rad, angle );
			vy = GetGapY( y, rad, angle );
			
			GrowEffect( vx, vy, 7, 20, 19 );
			CreateShot01( vx, vy, 0.4 + count * 0.04, angle + 180 - 40 * turn, PURPLE23, 0 );
			
			count += 1;
			
			yield;
		}
	}
	
	//スクリプトのインクルード
	#include_function ".\initialize.txt"
	#include_function ".\..\..\..\Library\lib_effect.txt"
}