#e[Player]	//@XNvgł邱Ƃ܂
#ScriptVersion[2]	//XNvgo[W2K{ł
#Menu[g]		//@Iʂŕ\郁j[ł
#Text[IWidliVer.1.01j
VbgFFꖳ
{@@FʌuZuXwXv
UЗ́F`
Ú͈F
xF
ᑬxF
\́Faf
EQ[W^ɁA
@UserL[ŋ͂ȃ[U[B
]	//@Iʂŕ\eLXgł
#Image[.\img\image_meirin.png]
#ReplayName[MeirinEX]	//vCIɕ\镶łB8ȓłB

script_player_main
{
	let current = GetCurrentScriptDirectory();//JgfBNg擾
	let imgMeirin = current~"img\Meirin.png";
	let CutMeirin = current~"img\cutin_meirin.png";
	let bom1 = current~"se\BOM1.wav";
	let bom2 = current~"se\BOM2.wav";
	let shotCount = -1;//eAŔ˂邽߂̕ϐ
	let bNextShot = false;//񉟂łeA˂邽߂̕ϐ(Â炢)
	let angle = 0;
	let GcountA = 0;
	let GcountB = 0;
	let Flag = false;
	let Nikuzan = false;
	let imgAngle=0;

	@Initialize
	{	
		//@̏Ɉ񂾂Ăяo镔ł
		SetPlayerLifeImage(imgMeirin,0,1,20,46);//c@̉摜
		LoadGraphic(imgMeirin);
		LoadGraphic(CutMeirin);
		SetSpeed(6,2);//ړxݒ
		SetRibirthFrame(7);
		SetInitialBombCount(3);
		LoadPlayerShotData(current~"MeirinShotData.txt");
		SetItemCollectLine(128);//ACeCݒ
		SetRateScoreSystemEnable(false);
	}
	
	@MainLoop
	{
	imgAngle+=16;
	if(imgAngle>360){imgAngle=0;}
		if(!OnBomb){
		//t[s镔ł
		//
		if((GetKeyState(VK_SHOT)==KEY_PUSH || GetKeyState(VK_SHOT)==KEY_HOLD || bNextShot==true) && shotCount==-1)
		{
			shotCount = 0;
			bNextShot = false;
		}
		if(GetKeyState(VK_SHOT)==KEY_HOLD && shotCount>0)
		{
			bNextShot = true;
		}
		if(GcountB<100&&Flag==false)
		{
			GcountB=GetGraze-GcountA;
		} else if(GcountB>99&&Flag==false)
		{
			PlaySE(bom1);
			Flag=true;
			Nikuzan=true;
		}

	    if(!OnMissed&&!OnEvent){
		if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD)
		{	//ᑬړ̎e
			if(shotCount%3==0)
			{
				PlaySE("sePlayerShot01.wav");
				CreatePlayerShot01(GetPlayerX()+cos(angle)*10,GetPlayerY()+sin(angle)*10, 14, 270, 1.1, 2, 1);
				CreatePlayerShot01(GetPlayerX()+cos(angle+51)*10,GetPlayerY()+sin(angle+51)*10, 14, 270, 1.1, 2, 2);
				CreatePlayerShot01(GetPlayerX()+cos(angle+102)*10,GetPlayerY()+sin(angle+102)*10, 14, 270, 1.1, 2, 3);
				CreatePlayerShot01(GetPlayerX()+cos(angle+153)*10,GetPlayerY()+sin(angle+153)*10, 14, 270, 1.1, 2, 4);
				CreatePlayerShot01(GetPlayerX()+cos(angle-153)*10,GetPlayerY()+sin(angle-153)*10, 14, 270, 1.1, 2, 5);
				CreatePlayerShot01(GetPlayerX()+cos(angle-102)*10,GetPlayerY()+sin(angle-102)*10, 14, 270, 1.1, 2, 6);
				CreatePlayerShot01(GetPlayerX()+cos(angle-51)*10,GetPlayerY()+sin(angle-51)*10, 14, 270, 1.1, 2, 7);
				angle=angle+5;
			}
		}
		else
		{	//ړ̎e
			if(shotCount%3==0)
			{
				PlaySE("sePlayerShot01.wav");
				CreatePlayerShot01(GetPlayerX()+cos(angle)*20, GetPlayerY()+sin(angle)*20, 14, 270, 1.1, 2, 1);
				CreatePlayerShot01(GetPlayerX()+cos(angle+51)*20, GetPlayerY()+sin(angle+51)*20, 14, 270, 1.1, 2, 2);
				CreatePlayerShot01(GetPlayerX()+cos(angle+102)*20, GetPlayerY()+sin(angle+102)*20, 14, 270, 1.1, 2, 3);
				CreatePlayerShot01(GetPlayerX()+cos(angle+153)*20, GetPlayerY()+sin(angle+153)*20, 14, 270, 1.1, 2, 4);
				CreatePlayerShot01(GetPlayerX()+cos(angle-153)*20, GetPlayerY()+sin(angle-153)*20, 14, 270, 1.1, 2, 5);
				CreatePlayerShot01(GetPlayerX()+cos(angle-102)*20, GetPlayerY()+sin(angle-102)*20, 14, 270, 1.1, 2, 6);
				CreatePlayerShot01(GetPlayerX()+cos(angle-51)*20, GetPlayerY()+sin(angle-51)*20, 14, 270, 1.1, 2, 7);
				angle=angle+5;
			}		
		}
		if(GetKeyState(VK_USER)==KEY_PUSH && Nikuzan==true){	//[U[L[
			Nikuzan=false;
			USER_L;
		}
	}

		if(shotCount >= 0)
		{
			shotCount++;
		}
		if(shotCount == 30)
		{
			shotCount=-1;
		}
		} else {shotCount=-1;}
		SetIntersectionCircle(GetPlayerX,GetPlayerY,1);//蔻o^	
		yield;
	}

	@Missed{
		if(OnBorderOfLife==false){
		GcountA=GetGraze;
		Nikuzan=false;
		GcountB=0;
		Flag=false;}
		if(GetPlayerLife<1){
		GcountA=0;
		Nikuzan=false;
		GcountB=0;
		Flag=false;}
		}

	@SpellCard
	{	
		UseSpellCard("Seven", true);
		CutIn(KOUMA,"ʌuZuXwXv",CutMeirin);
	}
	
	@DrawLoop
	{
		if(GetPlayerX()>298&&GetPlayerY()>410){SetAlpha(100);} else {SetAlpha(255);}
		//`惋[vBXLbvȂ1t[1s܂

		if(Nikuzan==true){
		SetGraphicRect(4,139,105,147);
		SetTexture(imgMeirin);
		SetGraphicScale(1,1);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		DrawGraphic(357,455);
		} else {
		SetGraphicRect(4,147,105,155);
		SetTexture(imgMeirin);
		SetGraphicScale(GcountB*0.01,1);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		DrawGraphic(307+GcountB/2,455);
		}
		SetGraphicRect(1,123,108,137);
		SetTexture(imgMeirin);
		SetGraphicScale(1,1);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		DrawGraphic(357,455);

		if(Nikuzan==true){//~
		SetGraphicRect(1,47,77,123);
		SetTexture(imgMeirin);
		SetGraphicScale(1,1);
		SetAlpha(100);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		SetGraphicAngle(0,0,imgAngle);
		DrawGraphic(GetPlayerX(),GetPlayerY());
		}
		SetAlpha(255);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		SetGraphicAngle(0,0,0);
		SetTexture(imgMeirin);
		if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
		{
			SetGraphicRect(23,1,43,46);
		}
		else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
		{
			SetGraphicRect(46,1,66,46);
		}
		else 
		{
			SetGraphicRect(0,1,20,46);
		}
		DrawGraphic(GetPlayerX(), GetPlayerY());	
	}
	
	@Finalize
	{
		//XNvgIɈ񂾂Ăяo镔ł
		DeleteGraphic(imgMeirin);
	}

task USER_L{
		SetPlayerInvincibility(100);//GԂݒ
	loop(1){
		PlaySE(bom2);
		USER_LA(0,0,0);
		USER_LA(1,0,51);
		USER_LA(2,0,102);
		USER_LA(3,0,153);
		USER_LA(4,0,-153);
		USER_LA(5,0,-102);
		USER_LA(6,0,-51);
		}
	loop(100){yield;}
	loop(1){
		GcountA=GetGraze;
		GcountB=0;
		Flag=false;
		}
}

task USER_LA(angleB,angleC,angleD){
	let OnPlayerMissed=false;
	let i=1;
	let angleA=rand(0,360);
	let obj=Obj_Create(OBJ_LASER);
	Obj_SetPosition(obj,GetPlayerX()+cos(angleC+angleD)*35, GetPlayerY()+sin(angleC+angleD)*35);
	Obj_SetSpeed(obj,1);
	Obj_SetAngle(obj,-90);
	ObjShot_SetGraphic(obj,11+angleB);
	ObjShot_SetDamage(obj,3);
	ObjShot_SetDelay(obj,3);
	ObjLaser_SetLength(obj,600);
	ObjLaser_SetWidth(obj,7);

	loop(50){
	Obj_SetPosition(obj,GetPlayerX()+cos(angleC+angleD)*35, GetPlayerY()+sin(angleC+angleD)*35);
	angleC=angleC+1;
	yield;}
	loop(50){
	Obj_SetAlpha(obj,250-i*5);
	Obj_SetPosition(obj,GetPlayerX()+cos(angleC+angleD)*35, GetPlayerY()+sin(angleC+angleD)*35);
	angleC=angleC+1;
	i++;
	yield;}
	Obj_Delete(obj);
}
}

script_spell Seven
{
	let current = GetCurrentScriptDirectory();
	let bom3 = current~"seBomb_ReimuA.wav";
	let bom4 = current~"se\PowerSE01.wav";
	let i = 0;
     	SetSpeed(0,0);
	@Initialize
	{
		SetPlayerInvincibility(220);//GԂݒ
		attack;
	}
	@MainLoop
	{
		CollectItems;//{̓ACeĂ
		yield;
	}
	@Finalize
	{
	}

task attack{
	loop(60){yield;}
	loop(1){
		PlaySE(bom3);
		flow(0,-1,0);
		flow(1,1,0);
		flow(2,-1,0);
		flow(3,1,0);
		flow(4,-1,0);
		flow(5,1,0);
		flow(6,-1,0);
		flow(0,-1,120);
		flow(1,1,120);
		flow(2,-1,120);
		flow(3,1,120);
		flow(4,-1,120);
		flow(5,1,120);
		flow(6,-1,120);
		flow(0,-1,-120);
		flow(1,1,-120);
		flow(2,-1,-120);
		flow(3,1,-120);
		flow(4,-1,-120);
		flow(5,1,-120);
		flow(6,-1,-120);
		}
	loop(160){yield;}
     	SetSpeed(6,2);
	loop(40){yield;}
	End;
}

task flow(angleB,angleC,angleD){
	let angleA=0;
	let obj=Obj_Create(OBJ_LASER);
	Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
	Obj_SetSpeed(obj,1);
	Obj_SetAngle(obj,-60+angleD-angleB*10);
	ObjShot_SetGraphic(obj,11+angleB);
	ObjShot_SetDamage(obj,4);
	ObjShot_SetDelay(obj,3);
	ObjLaser_SetLength(obj,600);
	ObjLaser_SetWidth(obj,7);

	loop(75){yield;}
	PlaySE(bom4);
	loop(25){yield;}

	loop(50){
	Obj_SetAlpha(obj,250-i/4);
	Obj_SetAngle(obj,-60+angleD-angleB*10+angleA*angleC);
	angleA=angleA+3;
	i++;
	yield;}
	Obj_Delete(obj);
}


}