task ProtectionOfTheStar(){
	let id		= [Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT)];
	let gcsd	= GetCurrentScriptDirectory;
	let img		= [gcsd~".\front\line.png",
					gcsd~".\front\line_add.png"];
	let rgb		= [255,200,150,100,50,0];
	let alpha1	= 0;
	let i		= 0;
	let cc		= 0;
	let dis		= 0;
	let sca1	= 0;
	let scaA	= 0;
	let se01	= gcsd~".\se\ufo.wav";
	let se02	= gcsd~".\se\ufo2.wav";
	let kanapai	= GetCommonDataEx("sys","sys_gauge");
	
	LoadGraphic(img[0]);
	LoadGraphic(img[1]);
	
	loop(3){
		Obj_SetPosition(id[i],MinX+10,CenY+145);
		ObjEffect_SetTexture(id[i],img[0]);
		ObjEffect_SetRenderState(id[i],ALPHA);
		ObjEffect_SetPrimitiveType(id[i],PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_SetLayer(id[i],7);
		ObjEffect_CreateVertex(id[i],4);
		ObjEffect_SetAngle(id[i],0,0,90);
		i++;
	}i=0;
	
	Obj_SetPosition(id[0],MinX+10,CenY+170);
	ObjEffect_SetVertexXY(id[0],0,106/-2,18/-2);
	ObjEffect_SetVertexXY(id[0],1,106/-2,18/2);
	ObjEffect_SetVertexXY(id[0],2,106/2,18/-2);
	ObjEffect_SetVertexXY(id[0],3,106/2,18/2);
	ObjEffect_SetTexture(id[2],img[1]);
	ObjEffect_SetRenderState(id[2],ADD);

	SetCommonDataEx("sys","sys_gauge",0);
	NowGauge(MinX+15,CenY+105);
	
	loop{
		let sgg		= GetCommonDataEx("sys","sys_gauge");
		let sgt		= GetCommonDataEx("sys","sys_trans");
		let tsst	= GetCommonDataEx("title","start_stage2");
		let tact	= GetCommonDataEx("title","act");

		if(sca1<1){scaA+=5;}
		sca1=1*sin(scaA);
		ObjEffect_SetScale(id[0],sca1,0.9);
		ObjEffect_SetScale(id[1],sca1,0.9);
		ObjEffect_SetScale(id[2],sca1,0.9);
		
		if(GetPlayerX<Obj_GetX(id[0])+20&&GetPlayerY>Obj_GetY(id[0])-90){alpha1=50;}
		if(OnEvent==true){
			let sg	= GetCommonDataEx("sys","sys_trans");
			alpha1=0;
			SetCommonDataEx("sys","sys_trans",0);
		}
		
		if(sgg>100){
			SetCommonDataEx("sys","sys_gauge",100);
		}
		
		if(sgg>=100 && sgt==0 && !OnEvent){
			sgt=10;
			PlaySE(se01);
			GetItemEffect(3,GetPlayerX,GetPlayerY,30);
			StarHole(GetPlayerX,GetPlayerY,70,0,0,180,0,0,sgt*60-60);
			SetCommonDataEx("sys","sys_trans",sgt);
		}
		
		Obj_SetPosition(id[1],MinX+10,CenY+220);
		ObjEffect_SetVertexXY(id[1],0,-sgg,12/-2);
		ObjEffect_SetVertexXY(id[1],1,-sgg,12/2);
		ObjEffect_SetVertexXY(id[1],2,0,12/-2);
		ObjEffect_SetVertexXY(id[1],3,0,12/2);
		ObjEffect_SetVertexUV(id[1],0,150-sgg,0);
		ObjEffect_SetVertexUV(id[1],1,150-sgg,4);
		ObjEffect_SetVertexUV(id[1],2,128,0);
		ObjEffect_SetVertexUV(id[1],3,128,4);
		
		cc++;
		Obj_SetPosition(id[2],MinX+10,CenY+220);
		ObjEffect_SetVertexXY(id[2],0,-sgg,12/-2);
		ObjEffect_SetVertexXY(id[2],1,-sgg,12/2);
		ObjEffect_SetVertexXY(id[2],2,0,12/-2);
		ObjEffect_SetVertexXY(id[2],3,0,12/2);
		ObjEffect_SetVertexUV(id[2],0,150-sgg+cc,0);
		ObjEffect_SetVertexUV(id[2],1,150-sgg+cc,4);
		ObjEffect_SetVertexUV(id[2],2,128+cc,0);
		ObjEffect_SetVertexUV(id[2],3,128+cc,4);
		
		if(alpha1<255){alpha1+=15;}
		
		ObjEffect_SetVertexColor(id[0],0,alpha1,255,50,0);
		ObjEffect_SetVertexColor(id[0],1,alpha1,200,0,255);
		ObjEffect_SetVertexColor(id[0],2,alpha1,255,0,0);
		ObjEffect_SetVertexColor(id[0],3,alpha1,255,255,0);
		ObjEffect_SetVertexColor(id[1],0,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[1],1,alpha1,200,255,255);
		ObjEffect_SetVertexColor(id[1],2,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[1],3,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[2],0,alpha1,rgb[0],rgb[0],rgb[0]);
		ObjEffect_SetVertexColor(id[2],1,alpha1,rgb[0],rgb[0],rgb[0]);
		ObjEffect_SetVertexColor(id[2],2,alpha1,rgb[0],rgb[0],rgb[0]);
		ObjEffect_SetVertexColor(id[2],3,alpha1,rgb[0],rgb[0],rgb[0]);
				
		if(sgt!=0){
			DeleteEnemyShotToItem(SHOT);
			loop(5){
				OW_Effect(GetPlayerX+dis*sin(i+cc*5),GetPlayerY+dis*cos(i+cc*5),255,50,0);
				i+=72;
			}
			i=0;
			if(dis<50){
				dis++;
			}
			if(sgg>0){
				if(IsBossExisting==false){sgg-=100/(sgt*60);}
				else{sgg-=100/(sgt*50);}
			}
			SetCommonDataEx("sys","sys_gauge",sgg);
			if(sgg<=0){
				PlaySE(se02);
				SetCommonDataEx("sys","sys_trans",0);
				dis=0;
			}
		}

			if(tact!=10&&tact!=11&&tact!=14||tsst==false){
				Obj_Delete(id[0]);
				Obj_Delete(id[1]);
				Obj_Delete(id[2]);
				break;
			}
		
		yield;
	}
}

task ProtectionOfTheStarItem(type,x,y,speed,angle){
//ACeo֐i1j
//type	ACẽ^CvB0񕜁A1񕜁A2񕜁A3S
//x		oWX
//y		oWY
//speed	x
//angle	px

	let id		= [Obj_Create(OBJ_SHOT),
				Obj_Create(OBJ_EFFECT)];
	let gcsd	= GetCurrentScriptDirectory;
	let img		= gcsd~".\front\effect_tiny.png";
	let rgb		= [255,200,150,100,50,0];
	let alpha1	= 200;
	let i		= 0;
	let cc		= 0;
	let r		= trunc(rand(0,100));
	let r2		= trunc(rand(1,3));
	let gt		= false;
	let sca1	= 0;
	let scaA	= 0;
	let sca2	= 0;
	let scaB	= 0;
	let ang1	= 0;
	let angA	= 0;
	let tdif	= GetCommonDataEx("title","Diffi");
	let score	= 0;
	let sp1		= 0;
	let spA		= 0;
	let delete	= false;
	let fc		= 0;
	let trance	= false;
	let rate	= 1;
	
	LoadGraphic(img);
	
	Obj_SetPosition(id[0],x,y);
	Obj_SetSpeed(id[0],speed);
	Obj_SetAngle(id[0],angle);
	Obj_SetAutoDelete(id[0],false);
	Obj_SetAlpha(id[0],0);
	Obj_SetCollisionToPlayer(id[0],false);
	ObjShot_SetBombResist(id[0],true);
	ObjShot_SetGraphic(id[0],WHITE05);
	
	Obj_SetPosition(id[1],Obj_GetX(id[0]),Obj_GetY(id[0]));
	ObjEffect_SetTexture(id[1],img);
	ObjEffect_SetRenderState(id[1],ALPHA);
	ObjEffect_SetPrimitiveType(id[1],PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(id[1],3);
	ObjEffect_CreateVertex(id[1],4);
	alternative(type)
	case(0){
		ObjEffect_SetVertexXY(id[1],0,20/-2,20/-2);
		ObjEffect_SetVertexXY(id[1],1,20/-2,20/2);
		ObjEffect_SetVertexXY(id[1],2,20/2,20/-2);
		ObjEffect_SetVertexXY(id[1],3,20/2,20/2);
		ObjEffect_SetVertexColor(id[1],0,alpha1,55,255,255);
		ObjEffect_SetVertexColor(id[1],1,alpha1,55,255,255);
		ObjEffect_SetVertexColor(id[1],2,alpha1,55,255,255);
		ObjEffect_SetVertexColor(id[1],3,alpha1,55,255,255);
	}case(1){
		ObjEffect_SetVertexXY(id[1],0,26/-2,26/-2);
		ObjEffect_SetVertexXY(id[1],1,26/-2,26/2);
		ObjEffect_SetVertexXY(id[1],2,26/2,26/-2);
		ObjEffect_SetVertexXY(id[1],3,26/2,26/2);
		ObjEffect_SetVertexColor(id[1],0,alpha1,255,255,55);
		ObjEffect_SetVertexColor(id[1],1,alpha1,255,255,55);
		ObjEffect_SetVertexColor(id[1],2,alpha1,255,255,55);
		ObjEffect_SetVertexColor(id[1],3,alpha1,255,255,55);
	}case(2){
		ObjEffect_SetVertexXY(id[1],0,32/-2,32/-2);
		ObjEffect_SetVertexXY(id[1],1,32/-2,32/2);
		ObjEffect_SetVertexXY(id[1],2,32/2,32/-2);
		ObjEffect_SetVertexXY(id[1],3,32/2,32/2);
		ObjEffect_SetVertexColor(id[1],0,alpha1,255,55,255);
		ObjEffect_SetVertexColor(id[1],1,alpha1,255,55,255);
		ObjEffect_SetVertexColor(id[1],2,alpha1,255,55,255);
		ObjEffect_SetVertexColor(id[1],3,alpha1,255,55,255);
	}case(3){
		ObjEffect_SetVertexXY(id[1],0,42/-2,42/-2);
		ObjEffect_SetVertexXY(id[1],1,42/-2,42/2);
		ObjEffect_SetVertexXY(id[1],2,42/2,42/-2);
		ObjEffect_SetVertexXY(id[1],3,42/2,42/2);
		ObjEffect_SetVertexColor(id[1],0,alpha1,255,55,55);
		ObjEffect_SetVertexColor(id[1],1,alpha1,255,55,55);
		ObjEffect_SetVertexColor(id[1],2,alpha1,255,55,55);
		ObjEffect_SetVertexColor(id[1],3,alpha1,255,55,55);
	}
	ObjEffect_SetVertexUV(id[1],0,129,34);
	ObjEffect_SetVertexUV(id[1],1,129,64);
	ObjEffect_SetVertexUV(id[1],2,160,34);
	ObjEffect_SetVertexUV(id[1],3,160,64);
	
	alternative(tdif)
	case("easy"){
		score=500000+1000+GetGraze*120;
	}case("normal"){
		score=500000+2000+GetGraze*120;
	}case("hard"){
		score=500000+3000+GetGraze*120;
		rate=1.5;
	}case("lunatic"){
		score=500000+4000+GetGraze*120;
		rate=2;
	}case("extra"){//25000000
		score=500000+GetGraze*100;
	}
	
	loop{
		let ogx		= Obj_GetX(id[0]);
		let ogy		= Obj_GetY(id[0]);
		let pa		= atan2(GetPlayerY-ogy,GetPlayerX-ogx);
		let sgg		= GetCommonDataEx("sys","sys_gauge");
		let sgt		= GetCommonDataEx("sys","sys_trans");
		
		if(ang1<360){angA+=6;}
		ang1=360*sin(angA);
		ObjEffect_SetAngle(id[1],0,0,ang1+cc);

		if(sca1<1){scaA+=6;}
		sca1=1*sin(scaA);
		if(sca2<1&&delete==true){scaB+=6;}
		sca2=1*sin(scaB);
		ObjEffect_SetScale(id[1],sca1+0.1*sin(cc*3)-sca2,sca1+0.1*sin(cc*3)-sca2);
		
		if(sca2>=1){
			Obj_Delete(id[0]);
			Obj_Delete(id[1]);
			break;
		}
		
		if(sgt!=0){
			trance=true;
			ObjEffect_SetVertexUV(id[1],0,129,33);
			ObjEffect_SetVertexUV(id[1],1,129,64);
			ObjEffect_SetVertexUV(id[1],2,160,33);
			ObjEffect_SetVertexUV(id[1],3,160,64);
			ObjEffect_SetVertexColor(id[1],0,alpha1,55,55,255);
			ObjEffect_SetVertexColor(id[1],1,alpha1,55,55,255);
			ObjEffect_SetVertexColor(id[1],2,alpha1,55,55,255);
			ObjEffect_SetVertexColor(id[1],3,alpha1,55,55,255);
		}
		
		cc+=2;
		Obj_SetPosition(id[1],ogx,ogy);
		
		if(ogx<GetPlayerX+60&&ogx>GetPlayerX-60&&
			ogy<GetPlayerY+60&&ogy>GetPlayerY-60){
				gt=true;
				delete=true;
		}
		if(gt==true){
			fc++;
			if(sp1<10){spA+=6;}
			sp1=10*sin(spA);
			Obj_SetSpeed(id[0],sp1);
			Obj_SetAngle(id[0],pa);
		}
		if(fc==1){
			alternative(type)
			case(0){
				if(sgt==0&&trance==false){GetItemEffect(0,ogx,ogy,30);}
				if(sgt!=0||trance==true){
					if(OnEnemySpell){
						score=score*2;
					}
					GetScoreEffect(score,ogx,ogy,30);
					AddScore(score);
				}
				if(sgg<100&&sgt==0&&trance==false){sgg+=100/60*rate;}
			}
			case(1){
				if(sgt==0&&trance==false){GetItemEffect(0,ogx,ogy,30);}
				if(sgt!=0||trance==true){
					if(OnEnemySpell){
						score=score*2;
					}
					GetScoreEffect(score,ogx,ogy,30);
					AddScore(score);
				}
				if(sgg<100&&sgt==0&&trance==false){sgg+=100/30*rate;}
			}
			case(2){
				if(sgt==0&&trance==false){GetItemEffect(0,ogx,ogy,30);}
				if(sgt!=0||trance==true){
					if(OnEnemySpell){
						score=score*2;
					}
					GetScoreEffect(score,ogx,ogy,30);
					AddScore(score);
				}
				if(sgg<100&&sgt==0&&trance==false){sgg+=100/15*rate;}
			}
			case(3){
				if(sgt==0&&trance==false){GetItemEffect(0,ogx,ogy,30);}
				if(sgt!=0||trance==true){
					if(OnEnemySpell){
						score=score*2;
					}
					GetScoreEffect(score,ogx,ogy,30);
					AddScore(score);
				}
				if(sgg<100&&sgt==0&&trance==false){sgg+=100}
			}
			SetCommonDataEx("sys","sys_gauge",sgg);
		}
		
		if(ogx>MaxX+100||ogx<MinX-100||ogy>MaxY+100||ogy<MinY-100){
			Obj_Delete(id[0]);
			Obj_Delete(id[1]);
			break;
		}
		
		if(Obj_BeDeleted(id[0])==true||OnEvent==true){
			Obj_Delete(id[0]);
			Obj_Delete(id[1]);
			break;
		}
		
		yield;
	}
}

task OW_Effect(x,y,r,g,b){
	let id       = Obj_Create(OBJ_EFFECT);
	let img00    = GetCurrentScriptDirectory~".\eff\light.png";
	let rgb      = [r,g,b];
	let alpha    = 255;
	let spin     = 0;
	let sca1     = 0.2;
	let sca2     = 0.2;

	LoadGraphic(img00);

	Obj_SetPosition(id,x,y);
	if(GetKeyState(VK_LEFT)==KEY_FREE&&GetKeyState(VK_RIGHT)==KEY_FREE&&
		GetKeyState(VK_UP)==KEY_FREE&&GetKeyState(VK_DOWN)==KEY_FREE){
		Obj_SetSpeed(id,5);
		Obj_SetAngle(id,90);
	}
	ObjEffect_SetTexture(id,img00);
	ObjEffect_SetRenderState(id,ADD);
	ObjEffect_SetPrimitiveType(id,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetScale(id,sca1,sca2);
	ObjEffect_SetAngle(id,0,0,0);
	ObjEffect_SetLayer(id,3);
	ObjEffect_CreateVertex(id,4);
	ObjEffect_SetVertexXY(id,0,50/-2,50/-2);
	ObjEffect_SetVertexXY(id,1,50/-2,50/2);
	ObjEffect_SetVertexXY(id,2,50/2,50/-2);
	ObjEffect_SetVertexXY(id,3,50/2,50/2);
	ObjEffect_SetVertexUV(id,0,0,0);
	ObjEffect_SetVertexUV(id,1,0,50);
	ObjEffect_SetVertexUV(id,2,50,0);
	ObjEffect_SetVertexUV(id,3,50,50);
	
	loop{
		ObjEffect_SetScale(id,sca1,sca2);
		
		if(alpha>0){alpha-=255/25;}
		ObjEffect_SetVertexColor(id,0,alpha,rgb[0],rgb[1],rgb[2]);
		ObjEffect_SetVertexColor(id,1,alpha,rgb[0],rgb[1],rgb[2]);
		ObjEffect_SetVertexColor(id,2,alpha,rgb[0],rgb[1],rgb[2]);
		ObjEffect_SetVertexColor(id,3,alpha,rgb[0],rgb[1],rgb[2]);
		
		if(alpha<=0||OnEvent==true){
			Obj_Delete(id);
			break;
		}
		
		yield;
	}
}

task GetItemEffect(type,x,y,long){
	let id		= Obj_Create(OBJ_EFFECT);
	let gcsd	= GetCurrentScriptDirectory;
	let img		= gcsd~".\front\effect_tiny.png";
	let sca1	= 0;
	let scaA	= 0;
	let die		= 0;
	
	LoadGraphic(img);
	
	Obj_SetPosition(id,x,y);
	Obj_SetSpeed(id,1);
	Obj_SetAngle(id,270);
	ObjEffect_SetTexture(id,img);
	ObjEffect_SetRenderState(id,ALPHA);
	ObjEffect_SetPrimitiveType(id,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(id,3);
	ObjEffect_CreateVertex(id,4);
	ObjEffect_SetVertexXY(id,0,76/-2,16/-2);
	ObjEffect_SetVertexXY(id,1,76/-2,16/2);
	ObjEffect_SetVertexXY(id,2,76/2,16/-2);
	ObjEffect_SetVertexXY(id,3,76/2,16/2);
	alternative(type)
	case(0){
		ObjEffect_SetVertexUV(id,0,167,181);
		ObjEffect_SetVertexUV(id,1,167,197);
		ObjEffect_SetVertexUV(id,2,243,181);
		ObjEffect_SetVertexUV(id,3,243,197);
	}case(1){
		ObjEffect_SetVertexUV(id,0,167,203);
		ObjEffect_SetVertexUV(id,1,167,219);
		ObjEffect_SetVertexUV(id,2,243,203);
		ObjEffect_SetVertexUV(id,3,243,219);
	}case(2){
		ObjEffect_SetVertexUV(id,0,167,225);
		ObjEffect_SetVertexUV(id,1,167,241);
		ObjEffect_SetVertexUV(id,2,243,225);
		ObjEffect_SetVertexUV(id,3,243,241);
	}
	
	loop{
		die++;
		if(sca1<1&&die>long){scaA+=2;}
		sca1=1*sin(scaA);
		ObjEffect_SetScale(id,1,1-sca1);

		if(sca1>=1){
			Obj_Delete(id);
			break;
		}
		
		yield;
	}
}

task GetScoreEffect(numeric,x,y,long){
	let id		= [Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT)];
	let gcsd	= GetCurrentScriptDirectory;
	let img		= gcsd~".\front\effect_tiny.png";
	let sca1	= 0;
	let scaA	= 0;
	let cc		= 0;
	let i		= 0;
	let rect1	= [0,13,27,41,56,71,85,100,114,129];
	let rect2	= [236,236,236,235,236,236,235,236,236,235];
	let rect3	= [12,26,40,55,69,84,98,113,128,142];
	let rect4	= [248,248,248,247,248,249,248,248,248,248];
	let rgb		= [255,150,100,50,0];
	let mxscre	= [truncate(numeric%10),
					truncate((numeric%100)/10),
					truncate((numeric%1000)/100),
					truncate((numeric%10000)/1000),
					truncate((numeric%100000)/10000),
					truncate((numeric%1000000)/100000),
					truncate((numeric%10000000)/1000000)];
	
	LoadGraphic(img);
	
	if(numeric>=9999999){
		mxscre[0]=9;
		mxscre[1]=9;
		mxscre[2]=9;
		mxscre[3]=9;
		mxscre[4]=9;
		mxscre[5]=9;
		mxscre[6]=9;
	}
	
	loop(7){
		ObjEffect_SetTexture(id[i],img);
		ObjEffect_SetRenderState(id[i],ALPHA);
		ObjEffect_SetPrimitiveType(id[i],PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_SetScale(id[i],0,1-sca1);
		ObjEffect_SetLayer(id[i],7);
		ObjEffect_CreateVertex(id[i],4);
		ObjEffect_SetVertexXY(id[i],0,-4,-5);
		ObjEffect_SetVertexXY(id[i],1,-4,5);
		ObjEffect_SetVertexXY(id[i],2,4,-5);
		ObjEffect_SetVertexXY(id[i],3,4,5);
		ObjEffect_SetVertexUV(id[i],0,rect1[mxscre[i]],rect2[mxscre[i]]);
		ObjEffect_SetVertexUV(id[i],1,rect1[mxscre[i]],rect4[mxscre[i]]);
		ObjEffect_SetVertexUV(id[i],2,rect3[mxscre[i]],rect2[mxscre[i]]);
		ObjEffect_SetVertexUV(id[i],3,rect3[mxscre[i]],rect4[mxscre[i]]);
		ObjEffect_SetVertexColor(id[i],0,255,rgb[0],rgb[0],rgb[3]);
		ObjEffect_SetVertexColor(id[i],1,255,rgb[0],rgb[0],rgb[3]);
		ObjEffect_SetVertexColor(id[i],2,255,rgb[0],rgb[0],rgb[3]);
		ObjEffect_SetVertexColor(id[i],3,255,rgb[0],rgb[0],rgb[3]);
		i++;
	}
	i=0;
	
	Obj_SetPosition(id[0],x+24,y);
	Obj_SetPosition(id[1],x+16,y);
	Obj_SetPosition(id[2],x+8,y);
	Obj_SetPosition(id[3],x,y);
	Obj_SetPosition(id[4],x-8,y);
	Obj_SetPosition(id[5],x-16,y);
	Obj_SetPosition(id[6],x-24,y);
	
	loop{
		let gex		= Obj_GetX(id[0]);
		let gey		= Obj_GetY(id[0]);
		
		cc++;
		if(cc>30&&sca1<1){scaA+=6;}
		sca1=1.0*sin(scaA);
		if(numeric>=0){
			ObjEffect_SetScale(id[0],1,1-sca1);
		}if(numeric>=10){
			ObjEffect_SetScale(id[1],1,1-sca1);
		}if(numeric>=100){
			ObjEffect_SetScale(id[2],1,1-sca1);
		}if(numeric>=1000){
			ObjEffect_SetScale(id[3],1,1-sca1);
		}if(numeric>=10000){
			ObjEffect_SetScale(id[4],1,1-sca1);
		}if(numeric>=100000){
			ObjEffect_SetScale(id[5],1,1-sca1);
		}if(numeric>=1000000){
			ObjEffect_SetScale(id[6],1,1-sca1);
		}
		
		loop(7){
			Obj_SetPosition(id[i],Obj_GetX(id[i]),Obj_GetY(id[i])-1);
			i++;
		}
		i=0;
		
		if(sca1>=1){
			loop(7){
				Obj_Delete(id[i]);
				i++;
			}
			i=0;
			break;
		}
		yield;
	}
}

task NowGauge(x,y){
	let id		= [Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT),
					Obj_Create(OBJ_EFFECT)];
	let rect1	= [43,84,123,162,201,242,284,322,361,402];
	let rect3	= [77,116,157,196,238,274,315,354,394,433];
	let i		= 0;
	let alpha1	= 0;
	let alpha2	= 0;
	let texture	= csd~".\front\ms_txt.png";
	let texture2= csd~".\front\score.png";
	let cc		= 0;

	LoadGraphic(texture);
	LoadGraphic(texture2);
	loop(2){
		ObjEffect_SetTexture(id[i],texture2);
		ObjEffect_SetRenderState(id[i],ALPHA);
		ObjEffect_SetPrimitiveType(id[i],PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_SetLayer(id[i],8);
		ObjEffect_SetScale(id[i],0.7,0.6);
		ObjEffect_CreateVertex(id[i],4);
		ObjEffect_SetVertexXY(id[i],0,12/-2,32/-2);
		ObjEffect_SetVertexXY(id[i],1,12/-2,32/2);
		ObjEffect_SetVertexXY(id[i],2,12/2,32/-2);
		ObjEffect_SetVertexXY(id[i],3,12/2,32/2);
		i++;
	}
	i=0;
	
	ObjEffect_SetTexture(id[3],texture);
	ObjEffect_SetRenderState(id[3],ALPHA);
	ObjEffect_SetPrimitiveType(id[3],PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(id[3],8);
	ObjEffect_SetScale(id[3],0.8,0.6);
	ObjEffect_CreateVertex(id[3],4);
	ObjEffect_SetVertexXY(id[3],0,14/-2,32/-2);
	ObjEffect_SetVertexXY(id[3],1,14/-2,32/2);
	ObjEffect_SetVertexXY(id[3],2,14/2,32/-2);
	ObjEffect_SetVertexXY(id[3],3,14/2,32/2);
	ObjEffect_SetVertexUV(id[3],0,227,100);
	ObjEffect_SetVertexUV(id[3],1,227,132);
	ObjEffect_SetVertexUV(id[3],2,240,100);
	ObjEffect_SetVertexUV(id[3],3,240,132);
	
	Obj_SetPosition(id[0],x+10,y);
	Obj_SetPosition(id[1],x,y);
	Obj_SetPosition(id[2],x-10,y);
	Obj_SetPosition(id[3],x+20,y);
	
	loop{
		let tsst	= GetCommonDataEx("title","start_stage2");
		let tact	= GetCommonDataEx("title","act");
		let sgg		= GetCommonDataEx("sys","sys_gauge");
		let gauge1  = truncate(sgg%10);
		let gauge2  = truncate((sgg%100)/10);
		
		if(GetPlayerX<Obj_GetX(id[1])+20&&GetPlayerY>Obj_GetY(id[1])){
			alpha1=50;
			alpha2=50;
		}
		if(OnEvent==true){
			alpha1=0;
			alpha2=0;
		}
		
		Obj_SetPosition(id[0],x,y);//̈
		Obj_SetPosition(id[1],x-10,y);//\̈
		Obj_SetPosition(id[2],x-10,y);//S̈
		Obj_SetPosition(id[3],x+10,y);
		
		if(sgg<100){
			ObjEffect_SetVertexUV(id[0],0,rect1[gauge1],40);
			ObjEffect_SetVertexUV(id[0],1,rect1[gauge1],95);
			ObjEffect_SetVertexUV(id[0],2,rect3[gauge1],40);
			ObjEffect_SetVertexUV(id[0],3,rect3[gauge1],95);
			ObjEffect_SetVertexUV(id[1],0,rect1[gauge2],40);
			ObjEffect_SetVertexUV(id[1],1,rect1[gauge2],95);
			ObjEffect_SetVertexUV(id[1],2,rect3[gauge2],40);
			ObjEffect_SetVertexUV(id[1],3,rect3[gauge2],95);
		}
		
		if(alpha1<255){alpha1+=15;}
		if(alpha2<255&&sgg>=10){alpha2+=15;}
		if(sgg<10){alpha2=0;}
		ObjEffect_SetVertexColor(id[0],0,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[0],1,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[0],2,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[0],3,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[1],0,alpha2,255,255,255);
		ObjEffect_SetVertexColor(id[1],1,alpha2,255,255,255);
		ObjEffect_SetVertexColor(id[1],2,alpha2,255,255,255);
		ObjEffect_SetVertexColor(id[1],3,alpha2,255,255,255);
		ObjEffect_SetVertexColor(id[3],0,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[3],1,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[3],2,alpha1,255,255,255);
		ObjEffect_SetVertexColor(id[3],3,alpha1,255,255,255);
		
		if(tact!=10&&tact!=11&&tact!=14||tsst==false){
			Obj_Delete(id[0]);
			Obj_Delete(id[1]);
			Obj_Delete(id[2]);
			Obj_Delete(id[3]);
			break;
		}
		
		yield;
	}
}

task ExtendLine(){
	let count1	= 0;
	let count2	= 0;
	let count3	= 0;
	let count4	= 0;
	let count5	= 0;
	let count6	= 0;
	let count7	= 0;
	let alpha	= 0;
	let sca1	= 0;
	let scaA	= 0;
	let display	= false;
	let timer	= 0;
	let id		= Obj_Create(OBJ_EFFECT);
	let texture	= csd~".\front\ex.png";
	
	LoadGraphic(texture);
	
	Obj_SetPosition(id,CenX,CenY-150);
	ObjEffect_SetTexture(id,texture);
	ObjEffect_SetRenderState(id,ALPHA);
	ObjEffect_SetPrimitiveType(id,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(id,8);
	ObjEffect_CreateVertex(id,4);
	ObjEffect_SetVertexXY(id,0,460/-2,160/-2);
	ObjEffect_SetVertexXY(id,1,460/-2,160/2);
	ObjEffect_SetVertexXY(id,2,460/2,160/-2);
	ObjEffect_SetVertexXY(id,3,460/2,160/2);
	ObjEffect_SetVertexUV(id,0,0,0);
	ObjEffect_SetVertexUV(id,1,0,159);
	ObjEffect_SetVertexUV(id,2,460,0);
	ObjEffect_SetVertexUV(id,3,460,159);

	loop{
		let gs		= GetScore();
		let pla	= GetCommonDataEx("mss","dpla");
		
		if(gs>=10000000&&pla<=5){
			count1++;
		}if(gs>=20000000&&pla<=6){
			count2++;
		}if(gs>=40000000&&pla<=7){
			count3++;
		}if(gs>=60000000&&pla<=8){
			count4++;
		}if(gs>=80000000&&pla<=9){
			count5++;
		}if(gs>=100000000&&pla<=10){
			count6++;
		}if(gs>=140000000&&pla<=11){
			count7++;
		}
		
		if(count1==1||count2==1||count3==1||count4==1||count5==1||
			count6==1||count7==1){
			ExtendPlayer(1);
			PlaySE(extend);
			display=true;
		}
		
		if(display==true){
			timer++;
		}else{
			timer=0;
		}
		if(timer==180){display=false;}
		
		if(sca1<0.5&&display==true){scaA+=5;}
		if(sca1>0&&display==false){scaA+=5;}
		sca1=0.5*sin(scaA);
		ObjEffect_SetScale(id,1-sca1,sca1);
		
		if(alpha<255&&display==true){alpha+=15;}
		if(alpha>0&&display==false){alpha-=15;}
		if(alpha<=0&&display==false){
			sca1=0;
			scaA=0;
		}
		ObjEffect_SetVertexColor(id,0,alpha,255,255,255);
		ObjEffect_SetVertexColor(id,1,alpha,255,255,255);
		ObjEffect_SetVertexColor(id,2,alpha,255,255,255);
		ObjEffect_SetVertexColor(id,3,alpha,255,255,255);
		
		yield;
	}
}

task ExtendLineEX(){
	let count1	= 0;
	let count2	= 0;
	let alpha	= 0;
	let sca1	= 0;
	let scaA	= 0;
	let display	= false;
	let timer	= 0;
	let id		= Obj_Create(OBJ_EFFECT);
	let texture	= csd~".\front\ex.png";
	
	LoadGraphic(texture);
	
	Obj_SetPosition(id,CenX,CenY-150);
	ObjEffect_SetTexture(id,texture);
	ObjEffect_SetRenderState(id,ALPHA);
	ObjEffect_SetPrimitiveType(id,PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetLayer(id,8);
	ObjEffect_CreateVertex(id,4);
	ObjEffect_SetVertexXY(id,0,460/-2,160/-2);
	ObjEffect_SetVertexXY(id,1,460/-2,160/2);
	ObjEffect_SetVertexXY(id,2,460/2,160/-2);
	ObjEffect_SetVertexXY(id,3,460/2,160/2);
	ObjEffect_SetVertexUV(id,0,0,0);
	ObjEffect_SetVertexUV(id,1,0,159);
	ObjEffect_SetVertexUV(id,2,460,0);
	ObjEffect_SetVertexUV(id,3,460,159);

	loop{
		let gs		= GetScore();
		let pla	= GetCommonDataEx("mss","dpla");
		
		if(gs>=50000000){
			count1++;
		}if(gs>=100000000){
			count2++;
		}
		if(count1==1||count2==1){
			ExtendPlayer(1);
			PlaySE(extend);
			display=true;
		}
		
		if(display==true){
			timer++;
		}else{
			timer=0;
		}
		if(timer==180){display=false;}
		
		if(sca1<0.5&&display==true){scaA+=5;}
		if(sca1>0&&display==false){scaA+=5;}
		sca1=0.5*sin(scaA);
		ObjEffect_SetScale(id,1-sca1,sca1);
		
		if(alpha<255&&display==true){alpha+=15;}
		if(alpha>0&&display==false){alpha-=15;}
		if(alpha<=0&&display==false){
			sca1=0;
			scaA=0;
		}
		ObjEffect_SetVertexColor(id,0,alpha,255,255,255);
		ObjEffect_SetVertexColor(id,1,alpha,255,255,255);
		ObjEffect_SetVertexColor(id,2,alpha,255,255,255);
		ObjEffect_SetVertexColor(id,3,alpha,255,255,255);
		
		yield;
	}
}