#e[Player]	//@XNvgł邱Ƃ܂
#ScriptVersion[2]	//XNvgo[W2K{ł
#Menu[X^[Tt@CA]		//@Iʂŕ\郁j[ł
#Text[Ver.1.10
CFX^[V[g
Tu@FT[`V[g
{@FuV[eBOX^[v
UЗ́F
Ú͈F
xF
ᑬxF
\́F̎
E{
@XEWJB
]	//@Iʂŕ\eLXgł
#Image[.\img\image_star.png]
#ReplayName[Star]	//vCIɕ\镶łB8ȓłB

script_player_main
{
	let current = GetCurrentScriptDirectory();//JgfBNg擾
	let imgStar = current~"img\Star.png";
	let CutStar = current~"img\cutin_star.png";
	let shotCount = -1;//eAŔ˂邽߂̕ϐ
	let bNextShot = false;//񉟂łeA˂邽߂̕ϐ(Â炢)
	let SubShot = false;

	@Initialize
	{	
		//@̏Ɉ񂾂Ăяo镔ł
		SetPlayerLifeImage(imgStar,4,0,34,37);//c@̉摜
		LoadGraphic(imgStar);
		SetSpeed(4,1.5);//ړxݒ
		SetRibirthFrame(7);
		SetInitialBombCount(3);
		LoadPlayerShotData(current~"StarShotData.txt");
		SetItemCollectLine(150);//ACeCݒ
	}
	
	@MainLoop
	{
		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(!OnMissed && !OnEvent){
		if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD)
		{	//ᑬړ̎e
			if(shotCount%3 == 0)
			{
				PlaySE("sePlayerShot01.wav");
				MainShot(265);
				MainShot(270);
				MainShot(275);
			}
			if(shotCount%4==0)
			{
				SubShot = !SubShot;
				if(SubShot)
				{
					SarchShot(9,300);
					SarchShot(9,0);
					SarchShot(9,60);
					SarchShot(-9,120);
					SarchShot(-9,180);
					SarchShot(-9,240);
				}
			}
		}
		else
		{	//ړ̎e
			if(shotCount%3 == 0)
			{
				PlaySE("sePlayerShot01.wav");
				MainShot(265);
				MainShot(270);
				MainShot(275);
			}
			if(shotCount%6 == 0)
			{
				SubShot = !SubShot;
				if(SubShot)
				{
					SarchShot(-9,240);
					SarchShot(-6,250);
					SarchShot(-3,260);
					SarchShot(3,280);
					SarchShot(6,290);
					SarchShot(9,300);
				}
			}
		}

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


task MainShot(Angle){
	let dAngle = 0;
	let obj = Obj_Create(OBJ_SHOT);
	Obj_SetPosition(obj,GetPlayerX,GetPlayerY-10);
	Obj_SetSpeed(obj,7);
	Obj_SetAngle(obj,Angle);
	ObjShot_SetDamage(obj,3);
	ObjShot_SetPenetration(obj,1);
	ObjShot_SetGraphic(obj,1);
	Obj_SetAlpha(obj,155);

	while(!Obj_BeDeleted(obj)){
		if(Obj_IsIntersected(obj)){
			Obj_SetSpeed(obj,0.5);
			ObjShot_FadeDelete(obj);
			}
		yield;
		}
}

task SarchShot(pX, Angle){
	let Tcount = 0;
	let dAngle = 0;
	let obj = Obj_Create(OBJ_SHOT);
	Obj_SetPosition(obj,GetPlayerX+pX,GetPlayerY);
	Obj_SetSpeed(obj,5);
	Obj_SetAngle(obj,Angle);
	ObjShot_SetDamage(obj,2);
	ObjShot_SetPenetration(obj,1);
	ObjShot_SetGraphic(obj,2);
	Obj_SetAlpha(obj,155);

	while(!Obj_BeDeleted(obj)&&Tcount<20)
	{
		if(dAngle < 36){dAngle+=2;}
		if(GetEnemyNum>0)
		{
			let enemyX = GetEnemyX;
			let enemyY = GetEnemyY;
			let toAngle = atan2(enemyY - Obj_GetY(obj), enemyX - Obj_GetX(obj));
			let scalar1 = cos(Angle - toAngle);
			let scalar2 = cos(dAngle);
			if(scalar1 < scalar2)
			{
				let scalarR = cos(Angle - toAngle + dAngle);
				let scalarL = cos(Angle - toAngle - dAngle);
				if(scalarR > scalarL){Angle+= dAngle;}
				else{Angle-= dAngle;}
			}
			else{Angle = toAngle;}
			Obj_SetAngle(obj, Angle);

			if(scalar1 < scalar2)
			{
				let scalarR = cos(Angle - toAngle + dAngle);
				let scalarL = cos(Angle - toAngle - dAngle);
				if(scalarR > scalarL){Angle+= dAngle;}
				else{Angle-= dAngle;}
			}
		Tcount++;
		}
		if(Obj_IsIntersected(obj)){
			Obj_SetSpeed(obj,0.5);
			ObjShot_FadeDelete(obj);
			}
		yield;
	}
	while(!Obj_BeDeleted(obj)){
		if(Obj_IsIntersected(obj)){
			Obj_SetSpeed(obj,0.5);
			ObjShot_FadeDelete(obj);
			}
		yield;
		}
}

	@Missed{
		}

	@SpellCard
	{	
		UseSpellCard("Hoshifu",true);
		CutIn(KOUMA,"uV[eBOX^[v",CutStar);
	}
	
	@DrawLoop
	{
		SetAlpha(255);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		SetGraphicAngle(0,0,0);
		SetTexture(imgStar);
		if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
		{
			SetGraphicRect(40,0,79,38);
		}
		else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
		{
			SetGraphicRect(80,0,119,38);
		}
		else 
		{
			SetGraphicRect(0,0,39,38);
		}
		DrawGraphic(GetPlayerX(), GetPlayerY());	
	}
	
	@Finalize
	{
		DeleteGraphic(imgStar);
	}
}

}

script_spell Hoshifu
{
	@Initialize
	{
		SetPlayerInvincibility(220);//GԂݒ
		shoot;
		SYUGO;
	}
	@MainLoop
	{
		CollectItems;
		yield;
	}
	@Finalize
	{
	}


task shoot{
	loop(50){yield;}
	loop(20){
	Sshot(3);
	loop(1){yield;}
	Sshot(4);
	loop(1){yield;}
	Sshot(5);
	loop(1){yield;}
	yield;}
}

task Sshot(tama){
	let obj = Obj_Create(OBJ_SHOT);
	let time = rand(0,360);
	let time2 = rand(-2,2);
	Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
	Obj_SetAngle(obj,time);
	Obj_SetSpeed(obj,rand(2,3));
	ObjShot_SetDamage(obj,0.5);
	ObjShot_SetPenetration(obj,200);
	ObjShot_SetGraphic(obj,tama);
	Obj_SetAlpha(obj,155);
	PlaySE("seSuperNaturalBorder1.wav");
	loop(100){
	Obj_SetAngle(obj,time);
	time=time+time2;
	yield;}
}

task SYUGO{
	loop(220){yield;}
		SuperNaturalBorder(750);
		End;
		}
}
}