//SystemObj

task GetGcount{
	GrazePoit=GetGraze-Gcount;
	if(GrazePoit==200){SideLife+=10;GrazePoit=0;}
	yield;
}

task GrazeSystem{
	if(OnBorderOfLife==false){
		Gcount=GetGraze;
		GrazePoit=0;
	}
	if(GetPlayerLife<1){
		Gcount=0;
		GrazePoit=0;
	}
	yield;
}

task GetPain{//ˮ`Pw
	if(Life==0){
		SetIntersectionCircle(GetPlayerX,GetPlayerY,10);
	}
	else if(Life>0&&GetEnemyShotCountEx(GetPlayerX,GetPlayerY,30,ALL)>=1){
		Life=Life-GetEnemyShotCountEx(GetPlayerX,GetPlayerY,20,ALL);
		DeleteEnemyShotImmediatelyInCircle(SHOT,GetPlayerX,GetPlayerY,20);
		ForbidBomb(false);
	}
	if(Life>80){Life=80;}
	if(Life<0){Life=0;}
	yield;
}

task SidePain(Xobj,Yobj){//Ǳ~{~ǻPw
	if(SideLife>0&&GetEnemyShotCountEx(Xobj,Yobj,20,ALL)>=1){
		SideLife=SideLife-GetEnemyShotCountEx(Xobj,Yobj,10,ALL);
		DeleteEnemyShotImmediatelyInCircle(SHOT,Xobj,Yobj,10);
	}
	if(SideLife>10){SideLife=10;}
	if(SideLife<0){SideLife=0;}
	yield;
}

task LifeDraw(MaxHp){//ǤǪ
	let Hp=(Life/MaxHp)*143;
	LifeEffect(GetClipMinX+70,GetClipMaxY-20,6,60,149,75);
	LifeEffect((GetClipMinX+Hp)/2+15,GetClipMaxY-20,6,80,Hp+6,95);
	yield;
}

task LifeEffect(Lx,Ly,a,b,c,d){
	let obj=Obj_Create(OBJ_EFFECT);
	Obj_SetPosition(obj,Lx,Ly);
	ObjEffect_SetTexture(obj,Img[1]);
	ObjEffect_SetLayer(obj,4);
	ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_CreateVertex(obj,4);
	loop(2){
		let GraphicXY=[a,b,c,d];
		let Vx=(GraphicXY[2]-GraphicXY[0])/2;
		let Vy=(GraphicXY[3]-GraphicXY[1])/2;
			ObjEffect_SetVertexUV(obj,0,GraphicXY[0],GraphicXY[1]);
			ObjEffect_SetVertexUV(obj,1,GraphicXY[0],GraphicXY[3]);
			ObjEffect_SetVertexUV(obj,2,GraphicXY[2],GraphicXY[1]);
			ObjEffect_SetVertexUV(obj,3,GraphicXY[2],GraphicXY[3]);
			ObjEffect_SetVertexXY(obj,0,-Vx,-Vy);
			ObjEffect_SetVertexXY(obj,1,-Vx,Vy);
			ObjEffect_SetVertexXY(obj,2,Vx,-Vy);
			ObjEffect_SetVertexXY(obj,3,Vx,Vy);
		yield;
	}
	Obj_Delete(obj);
	yield;
}