//--------------------
//GfBO
//Ƃقǂ̂̂ł͂Ȃ
//--------------------

let m_Ending_IsEnding = false;
let m_Ending_ColorRate = 0;
let m_Ending_Counter = -440;
let m_Ending_ScreenY = -100;



//GfBOis̃C[`
task main_Ending_MainRoutine()
{
	ForbidShot(true);
	ForbidBomb(true);

	func_Score_ResetContinueData();

	let con = false;
	func_Stage_SetStatus(_STAGE_ENDING);
	m_Ending_IsEnding = true;
	
	func_LoadEnding();
	main_EndingMessage();

	ascent(i in 1..61){
		m_Ending_ColorRate = (i/60);
		yield;
	}
	m_Ending_ColorRate = 1;

	music();
	loop
	{
		if(REMY_Stick_Hold(_KEY_SHOT) || REMY_Stick_Hold(_KEY_SKIP))
		{
			m_Ending_Counter += 9;
		}
		if(m_Ending_Counter > 3500){ m_Ending_Counter += 2; }
		else if(m_Ending_Counter > 3000){ m_Ending_Counter += 1.5; }
		else{ m_Ending_Counter += 1; }

		if(m_Ending_Counter > 4200 && !con){ con = true; congra();  }
		if(m_Ending_Counter > 4500){ break;  }

		m_Ending_ScreenY = -10 + m_Ending_Counter * 0.25;

		yield;
	}
	FadeOutMusic(bgm_BgmEnding, 10);

	loop(200){yield;}
	SetPlayerX(GetCenterX());
	ClearStage();
	//m_Ending_IsEnding = false;
	

	task congra()
	{
		let obj = REMY_Effect_CreateObject(img_Ending2, 4, 7);
		ObjEffect_SetRenderState(obj, ALPHA);
		Obj_SetPosition(obj, GetCenterX(), GetCenterY());
		REMY_Effect_SetVertexSquare(obj, [0,0,384,64], [0,0], [0,255,255,255]);

		ascent(i in 1..201){
			let alpha = 255 * (i/200);
			REMY_Effect_SetColorSquare(obj, [alpha,255,255,255]);
			yield;
		}
	}


	task music()
	{
		loop(200){ yield; }
		PlayMusic(bgm_BgmEnding);
		
	}

}//end function

//GfBObZ[W\p
task main_EndingMessage()
{

	let obj = REMY_Effect_CreateObject(img_Ending, 8, 7);
	ObjEffect_SetRenderState(obj, ALPHA);
	Obj_SetPosition(obj, GetCenterX(), GetCenterY());

	ascent(i in 0..8)
	{
		ObjEffect_SetVertexXY(obj, i, [-192, 192][i%2], [-160, -80, 80, 160][trunc(i/2)]);
		ObjEffect_SetVertexUV(obj, i, [0, 384][i%2], 0);
		let rate = [0.1, 1, 1, 0.1][trunc(i/2)];
		ObjEffect_SetVertexColor(obj, i, 255 * rate, 255, 255, 255);
	}

	loop
	{
		ascent(i in 0..8)
		{
			let v = m_Ending_ScreenY + [-160, -80, 80, 160][trunc(i/2)];
			v = REMY_Math_Max(v, -80);
			v = REMY_Math_Min(v, 1024 + 60);
			ObjEffect_SetVertexUV(obj, i, [0, 384][i%2], v);
		}
		yield;
	}

}//end task


//
function draw_Ending_GameEnding()
{
	if(!m_Ending_IsEnding){ return; }

	let col = 255 * m_Ending_ColorRate;
	SetTexture(img_Title);
	SetGraphicRect(496, 48, 512, 64);
	SetGraphicScale(30, 30);
	SetRenderState(SUBTRACT);
	SetColor(col,col, col);
	DrawGraphic(GetCenterX(), GetCenterY());

	SetRenderState(ALPHA);
	SetTexture(img_Ending_Back);
	SetAlpha(col);
	SetGraphicScale(1, 1);
	SetColor(105,105,105);
	SetGraphicRect(0, 0, 384, 448);
	DrawGraphic(GetCenterX(), GetCenterY());

}//end function

function func_IsEnding()
{
	return m_Ending_IsEnding;
}

