#e[Stage]
#Title[RAINS̃eXg -I@\-]
#Text[]
#Image[]
#BGM[]
#Player[FREE]
#BackGround[Default]
#ScriptVersion[2]

script_stage_main
{
#include_function".\RAINS_Client_Stage.dnh"
let Csd = GetCurrentScriptDirectory;
let boss = Csd ~ "test.txt";
let count = 0;

let SelectStep = 0;
let p = 0;
let w = 0;

	@Initialize()
	{
		SetRateScoreSystemEnable(false);
		StageTask();
		Initialize_RAINS_Client;
	}
	
	@MainLoop()
	{
		yield;
	}
	
	@Finalize()
	{
	
	}

	@DrawBottomObject
	{
		DrawText("PlayerID@" ~ ToString(RAINS_GetPlayerID),40,380,16,255);
		DrawText("WeaponType@" ~ ToString(RAINS_GetWeaponType),40,400,16,255);
		DrawText("ʃf[^",40,360,16,255);
		if(SelectStep == 1){
			DrawText("@I𒆁i㉺L[ŕύXjF" ~ RAINS_CharName[p % RAINS_MaxID + 1],40,300,16,255);
		}else if(SelectStep == 2){
			DrawText("I𒆁i㉺L[ŕύXjF" ~ToString(w + 1) ,40,300,16,255);
		}
	}

	task StageTask
	{
		loop{
			ForbidBomb(true);
			SelectPlayer;
			ForbidBomb(false);
			Stage();
			RAINS_SetPlayer(0);
			RAINS_ChangeWeapon(0);
		}
	}
	
	function Wait(let frame)
	{
		loop(frame){yield;}
	}
	
	function WaitFor_n_Enemy(let n)
	{
		while(GetEnemyNum() > n){yield;}
	}

	function SelectPlayer
	{
		p = 0;
		w = 0;
		
		Wait(60);
		SelectStep = 1;
		while(GetKeyState(VK_SHOT) != KEY_PUSH){
			if(GetKeyState(VK_UP) == KEY_PUSH && p >= 1){p--;}
			else if(GetKeyState(VK_DOWN) == KEY_PUSH && p < RAINS_MaxID - 1){p++;}
			yield;
		}
		p += 1;
		SelectStep = 2;
		Wait(10);
		while(GetKeyState(VK_SHOT) != KEY_PUSH){
			if(GetKeyState(VK_UP) == KEY_PUSH && w > 0){w--;}
			else if(GetKeyState(VK_DOWN) == KEY_PUSH && w < RAINS_WeaponNum[p] - 1){w++;}
			yield;
		}
		SelectStep = 0;
		Wait(10);
		RAINS_SetPlayer(p);
		RAINS_ChangeWeapon(w);
	}

	function Stage
	{
		//Xe[Wis
		Wait(60);
		CreateEnemyBossFromFile(boss, 0, 0, 0, 0, false);
		WaitFor_n_Enemy(0);
		Wait(180);
		RAINS_WaitForChangePlayer;
	}
}