let img_ender = GetCurrentScriptDirectory~"enderplayer.png";

let imgEBG1=GetCurrentScriptDirectory~"\enderbg2.png";
let imgEBG2=GetCurrentScriptDirectory~"\enderbg1.png";

task EnderSCBG{
	let frame=0;
	LoadGraphic(imgEBG1);
	LoadGraphic(imgEBG2);
	let obj1=CreateBG(imgEBG1,2,2,[0,0,0],ALPHA);
	let obj2=CreateBG(imgEBG1,2,2,[0,0,90],ADD);
//	let obj3=CreateBG(imgRBG2,0.8,3,[0,0,40],ALPHA);
//	let obj3=CreateBG(imgRBG2,0,0,[0,0,40],ALPHA);
	let alpha=0;
	loop(60){
		alpha+=170/60;
		MoveBG(obj1,frame*2,frame/2,alpha,0,0);
		MoveBG(obj2,frame*2,frame/2,alpha,0,0);
		frame++;
		yield;
	}
	while(StopEffect==0){
		MoveBG(obj1,frame*2,frame/2,alpha,0,0);
		MoveBG(obj2,frame*2,frame/2,alpha,0,0);
		frame++;
		yield;
	}
	loop(60){
		alpha-=170/60;
		MoveBG(obj1,frame*2,frame/2,alpha,0,0);
		MoveBG(obj2,frame*2,frame/2,alpha,0,0);
		frame++;
		yield;
	}
	Obj_Delete(obj1);
	Obj_Delete(obj2);
	DeleteGraphic(imgEBG1);
	DeleteGraphic(imgEBG2);	
}

task EnderCharge(angle,type){
	let obj=Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj,img_ender);
	ObjEffect_CreateVertex(obj,4);
	ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN);
	ObjEffect_SetUVRect(obj,486-type*25,1,506-type*25,26);
	ObjEffect_SetXYRect(obj,-20,-20,20,20);
	ObjEffect_SetAngle(obj,0,0,angle+90);
	let alpha=0;
	let k=0;
	let offset=0;
	let frame=0;
	let xv=cos(angle);
	let yv=sin(angle);
	loop(30){
		if(alpha<1){
			alpha+=1/10;
			k=0;
			loop(4){
				ObjEffect_SetVertexColor(obj,k,alpha*150,255,255,255);
				k++;
			}
		}
		offset=cos(frame*(90/30));
		Obj_SetPosition(obj,GetPlayerX+xv*offset*70,GetPlayerY+yv*offset*70);
		ObjEffect_SetScale(obj,offset,offset);
		frame++;
		yield;
	}

	Obj_Delete(obj);
}


task EnderBoom(type,x,y,xv,yv,size,color,expand,time){
	let obj=Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj,img_ender);
	ObjEffect_SetRenderState(obj,ADD);
	ObjEffect_CreateVertex(obj,4);
	ObjEffect_SetLayer(obj,2);
	ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN);
	ObjEffect_SetUVRect(obj,449-70*type,36,448+62-70*type,35+62);
	ObjEffect_SetXYRect(obj,-20,-20,20,20);
	let angle=rand(0,360);
	let angvel=rand(-10,10);
	let alpha=255;
	let k;
	loop(time){
		Obj_SetPosition(obj,x,y);	
		x+=xv;
		y+=yv;
		ObjEffect_SetAngle(obj,0,0,angle);
		angle+=angvel;
		alpha-=255/time;
		k=0;
		loop(4){
			ObjEffect_SetVertexColor(obj,k,alpha,color[0],color[1],color[2]);
			k++;
		}
		ObjEffect_SetScale(obj,size,size);
		size+=expand;
		yield;
	}

	Obj_Delete(obj);
}
sub SetThing{if(ExPlayer){
img_ender=GetCurrentScriptDirectory~"enderplayer2.png";
}}
task EnderBoomRandom(type,x,y,xv,yv,size,color,expand,time){
	let obj=Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj,img_ender);
	ObjEffect_SetRenderState(obj,ADD);
	ObjEffect_CreateVertex(obj,4);
	ObjEffect_SetLayer(obj,2);
	ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN);
	ObjEffect_SetUVRect(obj,449-70*type,36,448+62-70*type,35+62);
	ObjEffect_SetXYRect(obj,-20,-20,20,20);
	let angle=rand(0,360);
	let angvel=rand(5,10)*RandDir;
	let alpha=255;
	let k;
	let angle1=rand(-80,80);
	let angle2=rand(-80,80);
	loop(time){
		Obj_SetPosition(obj,x,y);	
		x+=xv;
		y+=yv;
		ObjEffect_SetAngle(obj,angle1,angle2,angle);
		angle+=angvel;
		alpha-=255/time;
		k=0;
		loop(4){
			ObjEffect_SetVertexColor(obj,k,alpha,color[0],color[1],color[2]);
			k++;
		}
		ObjEffect_SetScale(obj,size,size);
		size+=expand;
		yield;
	}

	Obj_Delete(obj);
}
task EnderSpark(color,x,y,xv,yv,angle,angvel,size,alpha,time){
	let obj=Obj_Create(OBJ_EFFECT);
	ObjEffect_SetTexture(obj,img_ender);
	ObjEffect_SetRenderState(obj,ALPHA);
	ObjEffect_CreateVertex(obj,4);
	ObjEffect_SetLayer(obj,2);
	ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN);
	ObjEffect_SetUVRect(obj,486-color*25,1,506-color*25,26);
	ObjEffect_SetXYRect(obj,-20,-20,20,20);
	let sizeadd=size/time;
	let k=0;
	loop(4){
		ObjEffect_SetVertexColor(obj,k,alpha,255,255,255);
		k++;
	}
	loop(time){
		Obj_SetPosition(obj,x,y);
		x+=xv;
		y+=yv;
		ObjEffect_SetAngle(obj,0,0,angle+90);
		angle+=angvel;
		size-=sizeadd;
		ObjEffect_SetScale(obj,size,size);
		yield;
	}

	Obj_Delete(obj);
}
