task Graze //OCYɊւ^XN
{
	let OldGraze=0;
	loop
	{
		let Graze=GetGraze-OldGraze;
		if(KekkaiOn==1)
		{
		if(Graze> 0)
		{
			loop(Graze)
			{
				Item;
			}
		}
		}
			OldGraze=GetGraze;
		if(Graze<0)
		{
			OldGraze=0;
		}
	yield;
	}
}

task Item //ACeƋɊւ^XN
{
		let bx1=GetPlayerX;
		let by1=GetPlayerY;
		let scax=0.2;
		let scay=0.2;
		let r=0;
		let angle=rand(240,300);

		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgSpell);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -14, -14);
		ObjEffect_SetVertexXY(obj, 1, 14,  -14);
		ObjEffect_SetVertexXY(obj, 2, 14, 14);
		ObjEffect_SetVertexXY(obj, 3,  -14,  14);
		
		ObjEffect_SetVertexUV(obj, 0,  108,  3);
		ObjEffect_SetVertexUV(obj, 1,  136, 3);
		ObjEffect_SetVertexUV(obj, 2, 136,  31);
		ObjEffect_SetVertexUV(obj, 3, 108, 31);

		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_SetAngle(obj, 0,0,0);
		ObjEffect_SetScale(obj, scax,scay);
		Obj_SetPosition(obj,bx1,by1);

		loop(30)
		{
			Obj_SetPosition(obj,bx1+r*cos(angle),by1+r*sin(angle));
			r++;
			yield;
		}
		while(!Obj_BeDeleted(obj))
		{
			angle=atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj));
			Obj_SetAngle(obj,angle);
			Obj_SetSpeed(obj,7.5);
			Obj_SetPosition(obj,Obj_GetX(obj),Obj_GetY(obj));
			if((Obj_GetX(obj)<=GetPlayerX+5 && Obj_GetX(obj)>=GetPlayerX-5) && (Obj_GetY(obj)<=GetPlayerY+5 && Obj_GetY(obj)>=GetPlayerY-5))
			{
				Obj_Delete(obj);
				bonuspoint+=10;
			}
			yield;
		}
}
