
task Powor	//power̒lω^XNBoAP񕜁B
{
loop
{
if(Power>5000){Power=5000;}
	if(GetKeyState(VK_USER)==KEY_PUSH && Power>=1000 && !OnBomb && Kekkaicount==0 && IsForbidBomb==false)
	{
		PlaySE(SE[0]);
		Barrier;
		Power-=1000;
		loop
		{
		if(KekkaiOn==0)
		{
		break;
		}
		SetItemCollectLine(500);//ACeyW
		SetCommonData("KEKKAI",true);
		yield;
		}
	Kekkaicount=10;
	}
if(Kekkaicount>0)
{
	Kekkaicount-=1;
}

SetItemCollectLine(160);//ACeyW
SetCommonData("KEKKAI",false);
if(GetCommonData("STARTPOWER")==5000)
{
	Power=5000;
}
if(GetCommonData("STARTPOWER")==2000)
{
	Power=2000;
}
yield;
}
}

task GetPowerItem//Xe[WPACeACe
{
let ItemCheck=0;//ʃf[^̔z̒`FbNϐ
let XY=[];//ʃf[^̏ɃNbVu߂̕ϐ
let ItemPerFrame=5;//Pt[̍őACei΍j
loop
{
	ItemCheck=length(GetCommonDataDefault("POWER",[]));//t[ʃf[^̒`FbN
	if(ItemCheck>0)
	{//zɒgiACetOĂjꍇ̏
		loop(ItemPerFrame)
		{
			XY=GetCommonDataDefault("POWER",[]);//ʃf[^eϐɓn
			Power+=10;
			if(Power>=5000)
			{
				Power=5000;
			}
			loop(1)
			{
				XY=erase(XY, 0);
			}//̂ł̗vfz񂩂폜
			if(length(XY)==0)
			{//폜̔z񂪋ɂȂꍇ
				SetCommonData("POWER",[]);//ʃf[^ɂ
				break;//ACe[vEo
		
			}
			else
			{
				SetCommonData("POWER",XY);
			}//z񂪋łȂꍇʃf[^ɕύX̔zn
		}
	}
yield;
}
}

task Barrier//oÃ^XNBkƎ蓮̂QB
{
		bonus=1;
		KekkaiOn=1;
		let scax=0;
		let scay=0;
		let angle=0;
  		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
		ObjEffect_SetTexture(obj, imgKekkai);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj, ADD);
		ObjEffect_SetScale(obj, scax,scay);
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -128, -128);
		ObjEffect_SetVertexXY(obj, 1,  128, -128);
		ObjEffect_SetVertexXY(obj, 2,  128,  128);
		ObjEffect_SetVertexXY(obj, 3, -128,  128);
		
		ObjEffect_SetVertexUV(obj, 0,  256,  0);
		ObjEffect_SetVertexUV(obj, 1,  512, 0);
		ObjEffect_SetVertexUV(obj, 2, 512,  256);
		ObjEffect_SetVertexUV(obj, 3, 256, 256);

		ObjEffect_SetVertexColor(obj,0,150,255,255,255);
		ObjEffect_SetVertexColor(obj,1,150,255,255,255);
		ObjEffect_SetVertexColor(obj,2,150,255,255,255);
		ObjEffect_SetVertexColor(obj,3,150,255,255,255);

		
		ObjEffect_SetLayer(obj, 3);
		ObjEffect_SetAngle(obj, 0,0,angle);
		loop(5){
			Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
			scax+=0.1;
			scay+=0.1;
			ObjEffect_SetScale(obj, scax,scay);
			yield;
			}
		parin;
		loop(360){
			if(KekkaiOn==0)
			{
				break;
			}
			Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
			scax-=0.5/360;
			scay-=0.5/360;
			angle+=3;
			ObjEffect_SetScale(obj, scax,scay);
			ObjEffect_SetAngle(obj, 0,0,angle);
			yield;
			}
		if(KekkaiOn==0 && !OnBomb)
		{
		loop(5)
		{
			scax+=0.5;
			scay+=0.5;
			ObjEffect_SetScale(obj, scax,scay);
			yield;
		}
		}
		Obj_Delete(obj);
		if(bonus==1)
		{
			PlaySE(SE[1]);
			Bonus;
			SetPlayerInvincibility(30);
		}
		KekkaiOn=0;
}

task Bonus //k̃^XN
{
	BombBonus+=1;
	SetCommonData("BombBonus",1);
	if(BombBonus==2)
	{
		AddBomb(1);
		BombBonus=0;
		SetCommonData("BombBonus",0);
	}
}

task parin//oÃ^XNB
{
	wait(3);
	loop
	{
		if(GetKeyState(VK_USER)==KEY_PUSH)
		{
			yield;
			PlaySE(SE[1]);
			KekkaiOn=0;
			bonus=0;
			DeleteShot;
			Power+=250;
			break;
		}
		if( GetKeyState(VK_BOMB)==KEY_PUSH && GetPlayerBomb>=1)
		{
			yield;
			KekkaiOn=0;
			bonus=0;
			break;
		}
	if(KekkaiOn==0)
	{
	break;
	}

	yield;
	}
}

task DeleteShot
{
	ascent(let i in 0..30)
	{
		DeleteEnemyShotToItemInCircle(SHOT,GetPlayerX,GetPlayerY,48+i*3);
		wait(1);
	}

}