#e[Stage]
#Title[@D4ʓRs[ǂ]
#Text[]
#Image[]
#BackGround[]
#ScriptVersion[2]

script_stage_main{
	#include_function ".\lib\lib_files.txt"
	#include_function ".\ݒ.txt"

	#include_function ".\lib\lib_makeitem.txt"
	#include_function ".\lib\lib_disp.txt"


	@Initialize(){
		MY_Initialize;
		SetRateScoreSystemEnable(false);
		SetDefaultStatusVisible(false);
		Tmain;
	}

	@MainLoop(){
		yield;
	}

	@Finalize(){
	}

//-------------------------------------------------------

	task Tmain{
		yield;
		MY_Initialize_Display;

		doutyuu;
		WaitForZeroEnemy();

		wait(420);
		ClearStage();
	}

	sub MY_Initialize
	{
		let DIFFICULTLY = GetCommonDataDefault("DIFFICULTLY", d_NORM);
		SetCommonData("MAX_SCORE", [3000, 5000, 10000, 15000][DIFFICULTLY]);
		SetCommonData("IsSTAGE", 1);	// Xe[Wt@C̋NtO

		MY_LoadGraphic;
		MY_LoadSound;
	}

//-------------------------------------------------------
	sub doutyuu
	{
//
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-100, -32, 0, 0, 0);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+100, -32, 0, 0, 0);
		
		wait(60);

		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX, -64, 0, 0, ITEMTYPE_BENT_R_RED);

		wait(90);

		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-100, -32, 0, 0, 0);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+100, -32, 0, 0, 0);

		wait(420);

		let tmp = 0;
		let tmp_bent = [ITEMTYPE_BENT_GREEN, ITEMTYPE_BENT_BLUE, ITEMTYPE_BENT_RED, ITEMTYPE_BENT_GREEN];
		//΂܂
		loop(2)
		{
			ascent (let i in 0 .. 5)
			{
				let tx = rand(GetCenterX+8, GetClipMaxX-16);
				let ty = GetClipMinY+64+((i*4)%5)*40+rand(-12,12);
				let it = 0;
				if (i == 4) { it = tmp_bent[tmp]; tmp++; }
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy02.txt", tx, ty, 0, 0, it);
				wait(20);
			}
			wait(60);

			ascent (let i in 0 .. 5)
			{
				let tx = rand(GetClipMinX+16, GetCenterX-8);
				let ty = GetClipMinY+64+((i*4)%5)*40+rand(-12,12);
				let it = 0;
				if (i == 4) { it = tmp_bent[tmp]; tmp++; }
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy02.txt", tx, ty, 0, 0, it);
				wait(20);
			}
			wait(60);
		}

		wait(240);

		//邮
		loop(2)
		{
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX+120, -60, 0, 0, 0);
			wait(90);
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX-120, -60, 0, 0, 0);
			wait(90);
		}
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX-120, -60, 0, 0, ITEMTYPE_BENT_R_BLUE);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX+120, -60, 0, 0, ITEMTYPE_BENT_BLUE);

		wait(420);

		//ʂ
		CreateEnemyFromFile(GetCurrentScriptDirectory~"nue.txt", -32, GetClipMinY+150, 0, 0, 0);
		WaitForZeroEnemy();

		wait(90);

		//
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-100, -32, 0, 0, ITEMTYPE_BENT_BLUE+10000);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+100, -32, 0, 0, ITEMTYPE_BENT_BLUE+10000);
		
		wait(60);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-40, -32, 0, 0, 0+10000);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+40, -32, 0, 0, 0+10000);
		
		wait(60);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-120, -32, 0, 0, 0+10000);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+120, -32, 0, 0, 0+10000);
		
		wait(60);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-40, -32, 0, 0, 0+10000);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+40, -32, 0, 0, 0+10000);
		
		wait(60);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX-120, -32, 0, 0, 0+10000);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy01.txt", GetCenterX+120, -32, 0, 0, 0+10000);
		
		wait(270-50);

		//
		loop(2)
		{
			wait(50);
			loop(8)
			{
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy04.txt", GetClipMinX-rand(16,48), rand(140,250), 0, 0, 0);
				wait(13);
			}
			wait(50);
			loop(8)
			{
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy04.txt", GetClipMaxX+rand(16,48), rand(140,250), 0, 0, 0);
				wait(13);
			}
		}
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy04.txt", GetClipMaxX+rand(16,48), rand(150,230), 0, 0, ITEMTYPE_BENT_R_BLUE);
		wait(13);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy04.txt", GetClipMaxX+rand(16,48), rand(150,230), 0, 0, ITEMTYPE_BENT_R_GREEN);

		wait(210);

		//@_
		loop(8)
		{
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMaxX+rand(16,48), rand(200,280), 0, 0, 0);
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, 0);
			wait(13);
		}
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, ITEMTYPE_BENT_RED);
		wait(50);

		loop(8)
		{
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMaxX+rand(16,48), rand(200,280), 0, 0, 0);
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, 0);
			wait(13);
		}
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, ITEMTYPE_BENT_BLUE);
		
		loop(2)
		{
			wait(50);
			loop(8)
			{
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMaxX+rand(16,48), rand(200,280), 0, 0, 0);
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, 0);
				wait(13);
			}
		}
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, ITEMTYPE_BENT_RED);
		wait(13);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy05.txt", GetClipMinX-rand(16,48), rand(200,280), 0, 0, ITEMTYPE_BENT_BLUE);
		
		wait(225);

		//΂܂
		let tmp = 0;
		let tmp_bent = [ITEMTYPE_BENT_R_GREEN, ITEMTYPE_BENT_R_GREEN, 0, ITEMTYPE_BENT_BLUE];
		loop(2)
		{
			ascent (let i in 0 .. 5)
			{
				let tx = rand(GetCenterX+8, GetClipMaxX-16);
				let ty = GetClipMinY+64+((i*4)%5)*40+rand(-12,12);
				let it = 0;
				if (i == 4) { it = tmp_bent[tmp]; tmp++; }
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy02.txt", tx, ty, 0, 0, it);
				wait(20);
			}
			wait(60);

			ascent (let i in 0 .. 5)
			{
				let tx = rand(GetClipMinX+16, GetCenterX-8);
				let ty = GetClipMinY+64+((i*4)%5)*40+rand(-12,12);
				let it = 0;
				if (i == 4) { it = tmp_bent[tmp]; tmp++; }
				CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy02.txt", tx, ty, 0, 0, it);
				wait(20);
			}
			wait(60);
		}
		
		wait(90);

		//邮
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX-120, -90, 0, 0, ITEMTYPE_BENT_R_GREEN);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX+120, -90, 0, 0, ITEMTYPE_BENT_R_GREEN);
		wait(90);
		loop(2)
		{
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX+120, -60, 0, 0, 0);
			wait(90);
			CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX-120, -60, 0, 0, 0);
			wait(90);
		}
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX-120, -60, 0, 0, 0);
		CreateEnemyFromFile(GetCurrentScriptDirectory~"enemy03.txt", GetCenterX+120, -60, 0, 0, 0);
		
		wait(400);
		MY_CollectItems(1);

		//JHX
		CreateEnemyBossFromFile(GetCurrentScriptDirectory~"boss.txt",GetCenterX,0,0,0,0);
	}

	function WaitForZeroEnemy(){
		while( GetEnemyNum() != 0 ){ yield; }
	}
}