//炮F̐ݒ
let Dist_red		 = [255, 80, 64];
let Dist_orange		 = [255,128, 16];
let Dist_yellow		 = [224,224, 32];
let Dist_green		 = [ 96,255, 80];
let Dist_cyan		 = [ 52,228,200];
let Dist_blue		 = [ 78,105,255];
let Dist_purple		 = [224, 64,224];
let Dist_white		 = [148,150,160];

let Dist_rose		 = [208, 78,114];
let DistColor_Pattern08 = [
Dist_red,
Dist_orange,
Dist_yellow,
Dist_green,
Dist_cyan,
Dist_blue,
Dist_purple,
Dist_white,
Dist_rose
];

//----------------------------------------------------
//{X͂̂炬GtFNg
//----------------------------------------------------
task TWaveCircle_Shadertask(objEnemy,c)
{	let color = DistColor_Pattern08[c];
	let r = color[0];
	let g = color[1];
	let b = color[2];
	
	//_O^[QbgɎgpeNX`
	let renderTexture = GetReservedRenderTargetName(0);

	let frame = 0; //t[
	let baseEffectRadius = 144; //GtFNga
	let effectRadius = 0; //GtFNga


	let priEffectMin = 20; //GtFNgŏDx
	let priEffectMax = 28; //GtFNgőDx


	let frameWidth = GetStgFrameWidth();
	let frameHeight = GetStgFrameHeight();
	let frameLeft = GetStgFrameLeft();
	let frameRight = frameLeft + frameWidth;
	let frameTop = GetStgFrameTop();
	let frameBottom = frameTop + frameHeight;

	let enemyX = ObjMove_GetX(objEnemy); //GWX
	let enemyY = ObjMove_GetY(objEnemy); //GWY
	//--------------------------------
	//_~[
	blowDummy(priEffectMax);
	//--------------------------------
	//䂪݃IuWFNg
	let objWave = ObjPrim_Create(OBJ_SPRITE_2D); //2DXvCgIuWFNg
	ObjPrim_SetTexture(objWave, renderTexture); //eNX`ݒ
	ObjSprite2D_SetSourceRect(objWave, frameLeft, frameTop, frameRight, frameBottom);
	ObjSprite2D_SetDestRect(objWave, 0, 0, frameWidth, frameHeight);
	Obj_SetRenderPriorityI(objWave, priEffectMax + 1);

	//䂪݃IuWFNgɃVF[_ݒ
	let pathShader = DIR ~ "DistEffect_HLSL.txt";
	ObjShader_SetShaderF(objWave, pathShader);
	ObjShader_SetTechnique(objWave, "TecWave");


	while(!Obj_IsDeleted(objEnemy))
	{
		//GtFNga
		effectRadius = min(effectRadius+baseEffectRadius/60,baseEffectRadius);

		enemyX = ObjMove_GetX(objEnemy); //GWX
		enemyY = ObjMove_GetY(objEnemy); //GWY

		//--------------------------------
		//Dx20`28(wi)GtFNgp̃eNX`ɕ`
		//VF[_
		RenderToTextureA1(renderTexture, priEffectMin, priEffectMax, true);

		//--------------------------------
		//VF[_Ƀp[^ݒ
		ObjShader_SetFloat(objWave, "frame_", frame);
		ObjShader_SetFloat(objWave, "enemyX_", enemyX + frameLeft);
		ObjShader_SetFloat(objWave, "enemyY_", enemyY + frameTop);
		ObjShader_SetFloat(objWave, "waveRadius_",baseEffectRadius);
		ObjShader_SetFloat(objWave, "waveC_R", r);
		ObjShader_SetFloat(objWave, "waveC_G", g);
		ObjShader_SetFloat(objWave, "waveC_B", b);

		frame++;
		yield;
	}
	ObjShader_ResetShader(objWave);
	//GtFNgpIuWFNg폜
	Obj_Delete(objWave);
	ClearInvalidRenderPriority();
	//_OeNX`Alphalh~p摜
	task blowDummy(max)
	{
		//炬GtFNgyу|[Yʂ̕\h~p_~[摜
		let objShadow = ObjPrim_Create(OBJ_SPRITE_2D); //2DXvCgIuWFNg
		Obj_SetRenderPriorityI(objShadow,max); //`Dxݒ
		ObjPrim_SetTexture(objShadow, imgBLACK); //eNX`ݒ
		ObjRender_SetBlendType(objShadow, BLEND_ADD_RGB);
		ObjSprite2D_SetSourceRect(objShadow, 0, 0, 640, 480); //`挳ݒ(0, 0)-(640,480)
		ObjSprite2D_SetDestCenter(objShadow);
		ObjRender_SetScaleXYZ(objShadow, 1.2, 1.2, 0); //TCYύX(sȂ̂łQ炢傫ڂ)
		ObjRender_SetPosition(objShadow, 640/2, 480/2, 0);
		while(!Obj_IsDeleted(objEnemy)){yield;}
		Obj_Delete(objShadow);
	}
}
