//---------------------
//Vbg֘A֐
//---------------------

//fBCEFCg
//XNvg~߂iubNj֐BK^XNĂԂƁB
function block_DelayWait(let delayTime)
{
	let time = 0;

	WaitEffect(false);
	WaitEffect(true);
	loop(delayTime)
	{
		time++;
		wait_WaitWhileFreeze();
		yield;
	}
	return;

	//--------------------
	task WaitEffect(let gauge)
	{
		let obj = REMY_Effect_CreateObject(img_Wait, 4, 4);
		REMY_Effect_SetVertexSquare(obj, [0, 0, 32, 32], [0, 0], [[100, 150][gauge], 255, 255, [255, 0][gauge]]);
		ObjEffect_SetScale(obj, 1.5, 1.5);
		
		loop(delayTime){
			ObjEffect_SetScale(obj, 1.5 - 0.5 * (time/delayTime), 1.5 - 0.5 * (time/delayTime));

			Obj_SetPosition(obj, GetX(), GetY());
			if(gauge)
			{
				ChangeGauge();
			}
			yield;
		}
		descent(i in 0..5)
		{
			ObjEffect_SetScale(obj, (i/5), (i/5));
			yield;
		}
		Obj_Delete(obj);
		
		//-------
		function ChangeGauge()
		{
			let max_v = 32 * (time / delayTime);
			ObjEffect_SetVertexXY(obj, 1, -16, max_v -16);
			ObjEffect_SetVertexXY(obj, 3, 16, max_v -16);
			ObjEffect_SetVertexUV(obj, 1, 0, max_v);
			ObjEffect_SetVertexUV(obj, 3, 32, max_v);
		}

	}


}//end task


//Ge쐬iIuWFNgVbgj
function func_CreateEnemyShot01(let x, let y, let speed, let angle, let type)
{
	let obj = Obj_Create(OBJ_SHOT);
	let sx = x + 20 * cos(angle);
	let sy = y + 20 * sin(angle);

	Obj_SetPosition(obj, sx, sy);
	Obj_SetSpeed(obj, speed);
	Obj_SetAngle(obj, angle);
	ObjShot_SetDelay(obj, 0);
	ObjShot_ToItem(obj, false);
	ObjShot_SetGraphic(obj, type);

	return obj;

}//end function


//^ɒԂ邩BԂΌȂ
function func_TestFrontEnemy()
{
	let status_list = GetCommonDataDefaultEx("INVADER","Enemies.Status", []);
	let x_list = GetCommonDataDefaultEx("INVADER","Enemies.PositionX",[]);
	let y_list = GetCommonDataDefaultEx("INVADER","Enemies.PositionY",[]);
	let count = length(status_list);

	ascent(i in 0..count)
	{
		if(status_list[i] != _ENEMY_DEAD && y_list[i] > GetY())
		{
			let distX = absolute(x_list[i] - GetX());
			if(distX < 15)
			{
				return true;
			}
		}
	}
	return false;
}//end function


//ɃXL}ł܂ő҂
function block_WaitForStartShot()
{
	loop
	{
		block_WaitTimerTick(2);
		if(!func_TestFrontEnemy()){ break; }
	}
	
}//end function


