//--------------------------
//p[^\
//--------------------------


task main_Indicator_Base()
{

	yield;
	
	local{
		let baseX = 525;
		let baseY = 385;
		let obj = REMY_Effect_CreateObject(img_Console, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [0,0,96,64], [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetScale(obj, 2.0, 2.0);

	}

	local{
		let baseX = 525;
		let baseY = 265;
		let obj = REMY_Effect_CreateObject(img_Console, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [0,0,96,64], [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetScale(obj, 2.0, 1.0);

	}

	local{
		let baseX = 525;
		let baseY = 65;
		let obj = REMY_Effect_CreateObject(img_Title, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [0, 0, 384, 64], [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetScale(obj, 0.6, 0.6);

	}

	local{
		let baseX = 525;
		let baseY = 105;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj, func_GetGraphicRect("EVERLASTING"), [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetScale(obj, 1, 1);

	}


}//end task 



//r[Q[W
//CVbgQ[W
task main_Indicator_BeamGauge()
{
	let baseX = 450;
	let baseY = 430;
	let energy = 0;

	yield;

	Gauge();
	Frame();
	ChargedOKText();

	loop
	{
		energy = func_ObjBeam_GetEnergy(0);
		loop(1){ yield; }
	}

	task Frame()
	{
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [128,176,144,256], [0, 40], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetScale(obj, 1.0, 1.0);

	}//end task 

	task Gauge()
	{
		let light = false;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		ascent(i in 0..4)
		{
			ObjEffect_SetVertexXY(obj, i, [-8, 8, -8, 8][i], [-1, -1, 0, 0][i] );
			ObjEffect_SetVertexUV(obj, i, [144, 160, 144, 160][i], [182, 182, 256, 256][i] );
			ObjEffect_SetVertexColor(obj,i, 255, 128, 128, 128);
		}
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetScale(obj, 1.0, 1.0);

		loop{
			SetGauge();
			TestChange();
			yield;
		}
		
		function TestChange()
		{
			if(energy == 100)
			{
				if(!light){ REMY_Effect_SetColorSquare(obj, [255, 128, 255, 128]);}
				light = true;
			}
			else if(light)
			{
				REMY_Effect_SetColorSquare(obj, [255, 240, 120, 120]);
				light = false;
			}
		}

		function SetGauge()
		{
			let height = 74 * energy / 100;

			ascent(i in 0..2)
			{
				ObjEffect_SetVertexXY(obj, i, [-8, 8, -8, 8][i], [-height, -height, 0, 0][i] );
				ObjEffect_SetVertexUV(obj, i, [144, 160, 144, 160][i], [256 - height, 256 - height, 256, 256][i] );
			}

		}

	}//end task

	task ChargedOKText()
	{
		let light = false;

		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [128,160,144,176], [0, 0], [255, 0, 0, 0]);
		Obj_SetPosition(obj, baseX, baseY - 90);
		ObjEffect_SetScale(obj, 1.0, 1.0);

		loop
		{
			if(energy == 100)
			{
				if(!light){ REMY_Effect_SetColorSquare(obj, [255, 128, 255, 128]); }
				light = true;
			}
			else if(light)
			{
				REMY_Effect_SetColorSquare(obj, [255, 0, 0, 0]);
				light = false;
			}
			yield;
		}

	}


	
}//end task


//GNXgVbgXgbN\
task main_Indicator_BeamExtraStock()
{
	let baseX = 475;
	let baseY = 365;
	let stock = 0;
	let stockmax = 1;

	yield;

	ExtraShotText();
	ascent(i in 0..50)
	{
		GaugeChip(i);
	}

	loop
	{
		stock = func_Beam_GetStockCount();
		stockmax = func_Beam_GetStockMaxCount();
		loop(3){ yield; }
	}

	task GaugeChip(let n)
	{
		let enable = IsEnable();
		let enable_old = false;
		let state_old = 0;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [160, 240, 176, 256], [0, 0], [255, 0, 0, 0]);
		Obj_SetPosition(obj, baseX + (n % 15) * 9, baseY + trunc(n / 15) * 20);
		ObjEffect_SetScale(obj, 1.4, 1.4);

		loop{
			TestChange();
			loop(2){ yield; }
		}
		
		function TestChange()
		{
			enable = IsEnable();
			if(enable != enable_old)
			{
				enable_old = enable;
				REMY_Effect_SetColorSquare(obj, [255, [0, 240][enable], [0, 240][enable], [0, 240][enable]]);
			}
			if(!enable){return;}
			
			local
			{
				let state = GetChargingState();
				if(state != state_old)
				{
					state_old = state;
					SetGraphic(state);
				}
			}
		}

		function IsEnable()
		{
			return (n+1) <= stockmax;
		}
		function IsReady()
		{
			return (n+1) <= stock;
		}
		function IsCharging()
		{
			return (n == stock);
		}
		function GetChargingState()
		{
			if(IsReady()){return 3;}
			else if(IsCharging()){ return func_Beam_GetPower(); }
			else {return 0;}
		}

		//OtBbN̕ύX
		function SetGraphic(let val)
		{
			alternative(val)
			case(0){ REMY_Effect_SetUVSquare(obj, [160, 240, 176, 256]); }
			case(1){ REMY_Effect_SetUVSquare(obj, [176, 240, 192, 256]); }
			case(2){ REMY_Effect_SetUVSquare(obj, [192, 240, 208, 256]); }
			case(3){ REMY_Effect_SetUVSquare(obj, [208, 240, 224, 256]); }
		}
		

	}//end task
	

	function ExtraShotText()
	{
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [160, 224, 256, 240], [-48, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX-10, baseY - 20 );
		ObjEffect_SetScale(obj, 1.0, 1.0);

	}//end function
	
}//end task



//r[Q[W
//XyVVbgQ[W
task main_Indicator_SpecialBeamGauge()
{
	let baseX = 480;
	let baseY = 420;
	let energy_rate = 0;

	yield;

	Gauge();
	Frame();
	Icon();
	Cost();
	Text();
	Level();

	loop
	{
		energy_rate = func_SpecialBeam_GetEnergyRate;
		loop(1){ yield; }
	}

	task Icon()
	{
		let equip = 0;
		let short_energy = false;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj,func_GetGraphicRect("ITEM_NONE"), [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetScale(obj, 1.0, 1.0);

		loop{
			loop(2){ yield;}
			if( func_SpecialBeam_GetEquip() != equip)
			{
				equip = func_SpecialBeam_GetEquip();
				let UV = func_GetGraphicRect(["ITEM_NONE","ITEM_RAPIER","ITEM_SPREAD","ITEM_ERASE","ITEM_FREEZE"][equip]);
				REMY_Effect_SetUVSquare(obj, UV);
			}

			if(!short_energy && func_Beam_GetStockCount() < func_SpecialBeam_GetCost() )
			{
				REMY_Effect_SetColorSquare(obj, [255, 255, 50, 50]);
				short_energy = true;
			}
			else if(short_energy && func_Beam_GetStockCount() >= func_SpecialBeam_GetCost() )
			{
				REMY_Effect_SetColorSquare(obj, [255, 255, 255, 255]);
				short_energy = false;
			}
		}
	}

	task Cost()
	{
		let cost = 0;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj,func_GetGraphicRect("COST1"), [0, 0], [0, 255, 255, 255]);
		Obj_SetPosition(obj, baseX + 14, baseY+13);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetScale(obj, 1.0, 1.0);

		loop{
			loop(2){ yield;}
			if( func_SpecialBeam_GetCost() != cost)
			{
				cost = func_SpecialBeam_GetCost();
				if(cost == 0){REMY_Effect_SetColorSquare(obj, [0, 255, 255, 255]);}
				else{ REMY_Effect_SetColorSquare(obj, [255, 255, 255, 255]); }

				let UV = func_GetGraphicRect(["COST1","COST1","COST2","COST3","COST4","COST5","COST6"][cost]);
				REMY_Effect_SetUVSquare(obj, UV);
			}
		}
	}


	task Text()
	{
		let equip = 0;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj,func_GetGraphicRect("NONE"), [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX + 45, baseY - 8);
		ObjEffect_SetScale(obj, 1.0, 1.0);

		loop{
			loop(2){ yield;}
			if( func_SpecialBeam_GetEquip() != equip)
			{
				equip = func_SpecialBeam_GetEquip();
				let UV = func_GetGraphicRect(["NONE","RAPIER","SPREAD","ERASE","FREEZE"][equip]);
				REMY_Effect_SetUVSquare(obj, UV);
			}
		}
	}

	task Level()
	{
		let level = 0;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj,func_GetGraphicRect("LEVEL0"), [0, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX + 75, baseY - 8);
		ObjEffect_SetScale(obj, 1.0, 1.0);

		loop{
			loop(2){ yield;}
			if( func_SpecialBeam_GetLevel() != level)
			{
				level = func_SpecialBeam_GetLevel();
				let UV = func_GetGraphicRect(["LEVEL0","LEVEL1","LEVEL2","LEVEL3"][level]);
				REMY_Effect_SetUVSquare(obj, UV);
			}
		}
	}


	task Frame()
	{
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj, [112,176,120,256], [0, 40], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX + 20, baseY + 8);
		ObjEffect_SetScale(obj, 1.0, 1.0);
		ObjEffect_SetAngle(obj, 0,0,90);

	}//end task 

	task Gauge()
	{
		let light = false;
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		ascent(i in 0..4)
		{
			ObjEffect_SetVertexXY(obj, i, [-4, 4, -4, 4][i], [-1, -1, 0, 0][i] );
			ObjEffect_SetVertexUV(obj, i, [120, 128, 120, 128][i], [182, 182, 256, 256][i] );
			ObjEffect_SetVertexColor(obj,i, 255, 128, 128, 128);
		}
		Obj_SetPosition(obj, baseX + 20, baseY + 8);
		ObjEffect_SetScale(obj, 1.0, 1.0);
		ObjEffect_SetAngle(obj, 0, 0, 90);

		loop{
			SetGauge();
			TestChange();
			yield;
		}
		
		function TestChange()
		{
			if(energy_rate == 1)
			{
				if(!light){ REMY_Effect_SetColorSquare(obj, [255, 128, 255, 128]);}
				light = true;
			}
			else if(light)
			{
				REMY_Effect_SetColorSquare(obj, [255, 240, 120, 120]);
				light = false;
			}
		}

		function SetGauge()
		{
			let height = 74 * energy_rate;

			ascent(i in 0..2)
			{
				ObjEffect_SetVertexXY(obj, i, [-4, 4, -4, 4][i], [-height, -height, 0, 0][i] );
				ObjEffect_SetVertexUV(obj, i, [120, 128, 120, 128][i], [256 - height, 256 - height, 256, 256][i] );
			}

		}

	}//end task



	
}//end task



//XRA̕`
task main_Indicator_Score()
{
	let baseX = 450;
	let baseY = 265;
	let score = 0;
	let hiscore = 0;

	yield;

	Text();
	Text2();
	Score();
	HiScore();

	loop
	{
		score = func_Score_Get();
		hiscore = func_Score_GetHiScore();
		loop(2){ yield; }
	}

	task Text()
	{
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj,func_GetGraphicRect("SCORE"), [-24, 0], [255, 255, 255, 255]);
		Obj_SetPosition(obj, baseX, baseY);
		ObjEffect_SetScale(obj, 1.0, 1.0);
	}
	task Text2()
	{
		let obj = REMY_Effect_CreateObject(img_System, 4, 8);
		REMY_Effect_SetVertexSquare(obj,func_GetGraphicRect("HISCORE"), [-40, 0], [255, 255, 155, 155]);
		Obj_SetPosition(obj, baseX, baseY + 18);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetScale(obj, 1.0, 1.0);

	}

	task Score()
	{
		let old_score = 0;
		let changed = false;
		ascent(i in 0..6)
		{
			Num(i);
		}

		loop
		{
			loop(2){ yield; }
			if(score != old_score){
				changed = true;
				old_score = score;
			}else{ changed = false; }
		}

		//-------
		task Num(let place)
		{
			let obj = REMY_Effect_CreateObject(img_System, 4, 8);
			REMY_Effect_SetVertexSquare(obj, func_GetNumberRect(score, place), [-24, 0], [255, 255, 255, 255]);
			Obj_SetPosition(obj, baseX + 130 - place * 8, baseY);
			ObjEffect_SetRenderState(obj, ALPHA);
			ObjEffect_SetScale(obj, 1.0, 1.0);
			loop{
				yield;
				if(changed){
					REMY_Effect_SetUVSquare(obj, func_GetNumberRect(score, place));
				}
			}
		}

	}

	task HiScore()
	{
		let old_score = 0;
		let changed = false;
		ascent(i in 0..6)
		{
			Num(i);
		}

		loop
		{
			loop(2){ yield; }
			if(hiscore != old_score){
				changed = true;
				old_score = hiscore;
			}else{ changed = false; }
		}

		//-------
		task Num(let place)
		{
			let obj = REMY_Effect_CreateObject(img_System, 4, 8);
			REMY_Effect_SetVertexSquare(obj, func_GetNumberRect(hiscore, place), [-24, 0], [255, 255, 155, 155]);
			Obj_SetPosition(obj, baseX + 130 - place * 8, baseY + 18);
			ObjEffect_SetRenderState(obj, ALPHA);
			ObjEffect_SetScale(obj, 1.0, 1.0);
			loop{
				yield;
				if(changed){
					REMY_Effect_SetUVSquare(obj, func_GetNumberRect(hiscore, place));
				}
			}
		}

	}



}//end draw


//JE^
task main_Indicator_BeamCounter()
{
	let baseX = 436;
	let baseY = 435;
	let counter = 0;

	yield;

	Counter();

	loop
	{
		counter = ((func_Beam_GetShotCount() - 1) % 15) + 1;
		loop(2){ yield; }
	}

	task Counter()
	{
		let old_counter = 0;
		let changed = false;
		ascent(i in 0..2)
		{
			Num(i);
		}

		loop
		{
			loop(2){ yield; }
			if(counter != old_counter){
				changed = true;
				old_counter = counter;
			}else{ changed = false; }
		}

		//-------
		task Num(let place)
		{
			let obj = REMY_Effect_CreateObject(img_System, 4, 8);
			REMY_Effect_SetVertexSquare(obj, func_GetNumberRect(counter, place), [-24, 0], [255, 255, 255, 255]);
			Obj_SetPosition(obj, baseX - place * 6, baseY);
			ObjEffect_SetRenderState(obj, ALPHA);
			ObjEffect_SetScale(obj, 0.7, 0.7);
			loop{
				yield;
				if(changed){
					REMY_Effect_SetUVSquare(obj, func_GetNumberRect(counter, place));
				}
			}
		}

	}


}//end draw



//vC[XgbN̕`
task main_Indicator_Stock()
{
	let baseX = 458;
	let baseY = 246;
	let stock = 0;

	yield;

	Stock();

	loop
	{
		stock = GetPlayerLife() - const_PlayerLifeZero;
		loop(2){ yield; }
	}


	task Stock()
	{
		let old_stock = 0;
		let changed = false;
		ascent(i in 0..8)
		{
			Icon(i);
		}

		loop
		{
			loop(2){ yield; }
			if(stock != old_stock){
				OutputDebugString(1, "ext", 5);
				changed = true;
				old_stock = stock;
			}else{ changed = false; }
		}

		//-------
		task Icon(let id)
		{
			let obj = REMY_Effect_CreateObject(img_System, 4, 8);
			REMY_Effect_SetVertexSquare(obj, func_GetGraphicRect("PLAYER_STOCK"), [0, 0], [0, 50, 200, 100]);
			Obj_SetPosition(obj, baseX + id * 14, baseY);
			ObjEffect_SetRenderState(obj, ALPHA);
			ObjEffect_SetScale(obj, 1.0, 1.0);
			loop{
				yield;
				if(changed){
					OutputDebugString(1, "ext", 6);

					if(id < stock){ REMY_Effect_SetColorSquare(obj, [255,  50, 200, 100]); }
					else{ REMY_Effect_SetColorSquare(obj, [0,  50, 200, 100]); }
					OutputDebugString(1, "ext", 7);
				}
			}
		}

	}


}//end draw

