#ScriptVersion[3]
#Title[""]
#Text[""]
#System["./cmn/system/SystemBoss.txt"]

#include "./cmn/common.txt"
#include "./cmn/commonFunc.txt"

@Initialize
{
	T_Stage();
}

@MainLoop
{
	yield;
}

@Finalize
{
}

task T_Stage
{
	if(IsReplay)
	{
		LoadCommonDataAreaFromReplayFile("");
		SetAreaCommonData(CONFIG,CNF_CHARACTER,GetCommonData(CNF_CHARACTER,0));
	}
	else
	{
		SaveCommonDataAreaToReplayFile("");
		let C_Array = [];
		alternative(GetAreaCommonData(CONFIG,CNF_CHARACTER,0))
		case(0){
			C_Array = GetAreaCommonData(SPELL_RECORD,REIMU_A_CHALLENGE,[]);
			C_Array[GetCommonData(SPELL_NUMBER,0)] = C_Array[GetCommonData(SPELL_NUMBER,0)] + 1;
			SetAreaCommonData(SPELL_RECORD,REIMU_A_CHALLENGE,C_Array);
		}
		case(1){
			C_Array = GetAreaCommonData(SPELL_RECORD,REIMU_B_CHALLENGE,[]);
			C_Array[GetCommonData(SPELL_NUMBER,0)] = C_Array[GetCommonData(SPELL_NUMBER,0)] + 1;
			SetAreaCommonData(SPELL_RECORD,REIMU_B_CHALLENGE,C_Array);
		}
	}
	
	SetStgFrame(0,0,GetScreenWidth(),GetScreenHeight(),20,80);
	SetPlayerClip(GetClipMinX(),GetClipMinY(),GetClipMaxX(),GetClipMaxY());
	let dir = GetCurrentScriptDirectory();
	
	// {XĐ
	let path;
	alternative(GetCommonData(SPELL_NUMBER,0))
	case(0){	path = dir ~ "boss/sakuya/Plural.txt";	}
	case(1){	path = dir ~ "boss/suwako/Plural.txt";	}
	case(2){	path = dir ~ "boss/raiko/Plural.txt";	}
	case(3){	path = dir ~ "boss/alice/Plural.txt";	}
	let idScript = LoadScript(path);
	StartScript(idScript);
	AddScore(50000);
	
	// G{XV[I܂őҋ@
	while(!IsCloseScript(idScript) && GetPlayerState() != STATE_END)
	{
		yield;
	}
	
	if(!IsReplay)
	{
		if(GetPlayerState() != STATE_END){
			loop(60){	yield;	}
			let lifeB = GetPlayerLife()*50000;
			AddScore(lifeB);
			let bombB = GetPlayerSpell()*20000;
			AddScore(bombB);
			let txtObj = CreateText(100,100,"{[iX",32,64,191,255);
			let bnsObj = CreateText(160,160,IntToString(lifeB+bombB),32,64,191,255);
			
			let array = [];
			alternative(GetAreaCommonData(CONFIG,CNF_CHARACTER,0))
			case(0){
				array = GetAreaCommonData(SPELL_RECORD,REIMU_A_GET,[]);
				array[GetCommonData(SPELL_NUMBER,0)] = array[GetCommonData(SPELL_NUMBER,0)] + 1;
				SetAreaCommonData(SPELL_RECORD,REIMU_A_GET,array);
				if(array[GetCommonData(SPELL_NUMBER,0)] == 1){
					array = GetAreaCommonData(SPELL_RECORD,REIMU_A_FIRST,[]);
					array[GetCommonData(SPELL_NUMBER,0)] = GetAreaCommonData(SPELL_RECORD,REIMU_A_CHALLENGE,[])[GetCommonData(SPELL_NUMBER,0)];
					SetAreaCommonData(SPELL_RECORD,REIMU_A_FIRST,array);
				}
			}
			case(1){
				array = GetAreaCommonData(SPELL_RECORD,REIMU_B_GET,[]);
				array[GetCommonData(SPELL_NUMBER,0)] = array[GetCommonData(SPELL_NUMBER,0)] + 1;
				SetAreaCommonData(SPELL_RECORD,REIMU_B_GET,array);
				if(array[GetCommonData(SPELL_NUMBER,0)] == 1){
					array = GetAreaCommonData(SPELL_RECORD,REIMU_B_FIRST,[]);
					array[GetCommonData(SPELL_NUMBER,0)] = GetAreaCommonData(SPELL_RECORD,REIMU_B_CHALLENGE,[])[GetCommonData(SPELL_NUMBER,0)];
					SetAreaCommonData(SPELL_RECORD,REIMU_B_FIRST,array);
				}
			}
			loop(60){	yield;	}
			Obj_Delete(txtObj);
			Obj_Delete(bnsObj);
		}
		
		if(GetAreaCommonData(CONFIG,CNF_CHARACTER,0) == 0)
		{
			let array = GetAreaCommonData(SPELL_RECORD,REIMU_A_SCORE,[]);
			if(array[GetCommonData(SPELL_NUMBER,9)] < GetScore)
			{
				array[GetCommonData(SPELL_NUMBER,9)] = GetScore;
			}
			SetAreaCommonData(SPELL_RECORD,REIMU_A_SCORE,array);
		}
		else if(GetAreaCommonData(CONFIG,CNF_CHARACTER,0) == 1)
		{
			let array = GetAreaCommonData(SPELL_RECORD,REIMU_B_SCORE,[]);
			if(array[GetCommonData(SPELL_NUMBER,9)] < GetScore)
			{
				array[GetCommonData(SPELL_NUMBER,9)] = GetScore;
			}
			SetAreaCommonData(SPELL_RECORD,REIMU_B_SCORE,array);
		}
	}
	
	loop(45){	yield;	}
	
	CloseStgScene();
}
