
let imgRBG1=GetCurrentScriptDirectory~"\raibysbg2.png";
let imgRBG2=GetCurrentScriptDirectory~"\raibysbg1.png";
let imgRBG3=GetCurrentScriptDirectory~"\raibysbg3.png";
task RaibysSCBG{
	let frame=0;
	let obj1=CreateBG(imgRBG1,2,2,[0,0,0],ALPHA);
	let obj2=CreateBG(imgRBG1,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);
		MoveBG(obj3,(floor((frame)/2+1)%2)*128,-floor(frame/4)*21,alpha/2,128,0);
		frame++;
		yield;
	}
	while(StopEffect==0){
		MoveBG(obj1,frame*2,frame/2,alpha,0,0);
		MoveBG(obj2,frame*2,frame/2,alpha,0,0);
		MoveBG(obj3,(floor((frame)/2+1)%2)*128,-floor(frame/4)*21,alpha/2,128,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);
		MoveBG(obj3,(floor((frame)/2+1)%2)*128,-floor(frame/4)*21,alpha/2,128,0);
		frame++;
		yield;
	}
	Obj_Delete(obj1);
	Obj_Delete(obj2);
	Obj_Delete(obj3);
}
task FilmGrain{
	let obj=Obj_Create(OBJ_EFFECT);
	Obj_SetPosition(obj,GetCenterX,GetCenterY);
	ObjEffect_SetTexture(obj,imgRBG3);
	ObjEffect_SetLayer(obj,6);
	ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN);
	ObjEffect_CreateVertex(obj,4);
	ObjEffect_SetScale(obj,1,1.5);
	ObjEffect_SetXYRect(obj,-200,-200,200,200);
	let angle;
	let x;
	let y;
	let k=0;
	let frame=0;
	let alpha=1/60;
	while(alpha>0){
		if(frame<=0){
			angle=rand(0,360);
			x=rand(0,256);
			y=rand(0,256);
			k=0;
			loop(4){
				ObjEffect_SetVertexUV(obj,k,x+cos(angle)*300,y+sin(angle)*300);
				ObjEffect_SetVertexColor(obj,k,alpha*255,255,255,255);
				k++;
				angle+=90;
			}
			frame=rand_int(2,3);
		}
		if(StopEffect==0){
			alpha+=1/60;
		}else{
			alpha-=1/60;
		}
		alpha=center(0,alpha,1);
		frame--;
		yield;
	}
	Obj_Delete(obj);
}
sub ForbidFormChange{
	SetCommonData("ForbidFormChange",true);
}
sub AllowFormChange{
	SetCommonData("ForbidFormChange",false);
}
sub MotionBlurRaibys{
	SetCommonData("RaibysBlur",true);
}
sub MotionBlurRaibysOff{
	DeleteCommonData("RaibysBlur");
}