#e[Player]	//@XNvgł邱Ƃ܂
#ScriptVersion[2]	//XNvgo[W2K{ł
#Menu[Tj[~N]		//@Iʂŕ\郁j[ł
#Text[Ver.1.10
CF~j}T
{@FunCp[Tj[r[v
@@@@u~NTj[r[v
UЗ́F
Ú͈F
xF
ᑬxF
]	//@Iʂŕ\eLXgł
#Image[.\img\image_sunny.png]
#ReplayName[Sunny]	//vCIɕ\镶łB8ȓłB

script_player_main
{
	let current = GetCurrentScriptDirectory();//JgfBNg擾
	let imgSunny = current~"img\Sunny.png";
	let CutSunny = current~"img\cutin_sunny.png";
	let shotCount = -1;//eAŔ˂邽߂̕ϐ
	let bNextShot = false;//񉟂łeA˂邽߂̕ϐ(Â炢)
	let SubShot = false;
	let angle = 270;

	@Initialize
	{	
		//@̏Ɉ񂾂Ăяo镔ł
		SetPlayerLifeImage(imgSunny,4,0,34,37);//c@̉摜
		LoadGraphic(imgSunny);
		SetSpeed(4,1.5);//ړxݒ
		SetRibirthFrame(7);
		SetInitialBombCount(3);
		LoadPlayerShotData(current~"SunnyShotData.txt");
		SetItemCollectLine(125);//ACeCݒ
		SetCommonData("HYPER",angle);
	}
	
	@MainLoop
	{
	if(!OnBomb){
		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(270,0,9,8);
			}
			if(shotCount%6 == 0)
			{
				MainShot(260,-15,6,6);
				MainShot(280,15,6,6);
			}
		}
		else
		{	//ړ̎e
			if(shotCount%3 == 0)
			{
				PlaySE("sePlayerShot01.wav");
				MainShot(270,0,9,8);
			}
			if(shotCount%6 == 0)
			{
				MainShot(272,5,6,5);
				MainShot(268,-5,6,5);
			}
		}
	angle = 270;
	}

		if(shotCount >= 0)
		{
			shotCount++;
		}
		if(shotCount == 30)
		{
			shotCount=-1;
		}
		} else {shotCount=-1;}

	if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD)
		{
			if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD){angle=angle-0.2;
			SetCommonData("HYPER",angle);}
			else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD){angle=angle+0.2;
			SetCommonData("HYPER",angle);}
			if(GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD){angle=angle-0.2;
			SetCommonData("HYPER",angle);}
			else if(GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD){angle=angle+0.2;
			SetCommonData("HYPER",angle);}
		}
		else
		{
			if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD){angle=angle-1;
			SetCommonData("HYPER",angle);}
			else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD){angle=angle+1;
			SetCommonData("HYPER",angle);}
			if(GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD){angle=angle-1;
			SetCommonData("HYPER",angle);}
			else if(GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD){angle=angle+1;
			SetCommonData("HYPER",angle);}
		}
		SetIntersectionCircle(GetPlayerX,GetPlayerY,1.5);//蔻o^	
		yield;
	}


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

	@Missed{
		}

	@SpellCard
	{	
		if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD)
		{	
		UseSpellCard("Koufu1",true);
		CutIn(KOUMA,"unCp[Tj[r[v",CutSunny);
		}
		else
		{
		UseSpellCard("Koufu2",true);
		CutIn(KOUMA,"u~NTj[r[v",CutSunny);
		}
	}
	
	@DrawLoop
	{
		SetAlpha(255);
		SetColor(255,255,255);
		SetRenderState(ALPHA);
		SetGraphicAngle(0,0,0);
		SetTexture(imgSunny);
		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(imgSunny);
	}
}

}

script_spell Koufu1
{
	let current = GetCurrentScriptDirectory();
	let bom = current~"se\BOM2.wav";
	let i = 0;
     	SetSpeed(1.5,0.5);
	@Initialize
	{
		SetPlayerInvincibility(230);//GԂݒ
		shoot;
	}
	@MainLoop
	{
		CollectItems;
		yield;
	}
	@Finalize
	{
	}


task shoot{
	loop(50){
	Sshot3;
	Sshot3;
	Sshot3;
	Sshot3;
	Sshot3;
	yield;}
	PlaySE(bom);
	Sshot11;
	loop(5){yield;}
	loop(100){
	yield;}
	loop(50){yield;}
     	SetSpeed(4,1.5);
	loop(25){yield;}
	End;
}

task Sshot11{
		let Val = [0,0,0];
		let angle = 0;
		let obj = Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj,GetPlayerX(),GetPlayerY());
		Obj_SetAngle(obj,GetCommonData("HYPER"));
		ObjShot_SetGraphic(obj,2);
		ObjShot_SetDamage(obj,5);
		ObjLaser_SetLength(obj,1000);
		ObjLaser_SetWidth(obj,25);
		
		Val = GetReflectData(GetPlayerX(),GetPlayerY(),GetCommonData("HYPER"));
			
		let obj2 = Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj2,Val[0],Val[1]);
		Obj_SetAngle(obj2,Val[2]);
		ObjShot_SetGraphic(obj2,2);
		ObjShot_SetDamage(obj2,5);
		ObjLaser_SetLength(obj2,1000);
		ObjLaser_SetWidth(obj2,25);
		ObjLaser_SetSource(obj2,false);

	loop(100){
		Val = GetReflectData(GetPlayerX(),GetPlayerY(),GetCommonData("HYPER"));
		Obj_SetPosition(obj,GetPlayerX(),GetPlayerY());
		Obj_SetAngle(obj,GetCommonData("HYPER"));
		Obj_SetPosition(obj2,Val[0],Val[1]);
		Obj_SetAngle(obj2,Val[2]);
		yield;}
	loop(50){
		Val = GetReflectData(GetPlayerX(),GetPlayerY(),GetCommonData("HYPER"));
		Obj_SetPosition(obj,GetPlayerX(),GetPlayerY());
		Obj_SetAngle(obj,GetCommonData("HYPER"));
		Obj_SetAlpha(obj,250-(i*5));
		Obj_SetPosition(obj2,Val[0],Val[1]);
		Obj_SetAngle(obj2,Val[2]);
		Obj_SetAlpha(obj2,250-(i*5));
		i++;
		yield;}
	let angle=270;
	SetCommonData("HYPER",angle);
	Obj_Delete(obj);
	Obj_Delete(obj2);
	#include_function ".\ReflectValue.txt"
}

task Sshot3{
	let obj3 = Obj_Create(OBJ_LASER);
	Obj_SetPosition(obj3,GetPlayerX,GetPlayerY);
	ObjLaser_SetSource(obj3,false);
	Obj_SetAngle(obj3,rand(0,360));
	Obj_SetAlpha(obj3,250);
	Obj_SetSpeed(obj3,0);
	ObjShot_SetDamage(obj3,0);
	ObjShot_SetGraphic(obj3,2);
	ObjShot_SetDelay(obj3,3);
	ObjLaser_SetLength(obj3,700);
	ObjLaser_SetWidth(obj3,5);
	loop(10){yield;}
	Obj_Delete(obj3);
}

}


script_spell Koufu2
{
	let current = GetCurrentScriptDirectory();
	let bom = current~"se\BOM2.wav";
	let i = 0;
	@Initialize
	{
		SetPlayerInvincibility(350);//GԂݒ
		shoot;
	}
	@MainLoop
	{
		CollectItems;
		yield;
	}
	@Finalize
	{
	}


task shoot{
	loop(50){
	Sshot3;
	Sshot3;
	Sshot3;
	Sshot3;
	Sshot3;
	yield;}
	PlaySE(bom);
	Sshot11(270);
	Sshot11(30);
	Sshot11(150);
	loop(300){yield;}
	End;
}

task Sshot11(EX){
		let Val = [0,0,0];
		let angle = 0;
		let obj3 = Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj3,GetPlayerX(),GetPlayerY());
		Obj_SetAngle(obj3,GetCommonData("HYPER")+EX);
		ObjShot_SetGraphic(obj3,2);
		ObjShot_SetDamage(obj3,2);
		ObjLaser_SetLength(obj3,1000);
		ObjLaser_SetWidth(obj3,25);
		
		Val = GetReflectData(GetPlayerX(),GetPlayerY(),GetCommonData("HYPER")+EX);
			
		let obj4 = Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj4,Val[0],Val[1]);
		Obj_SetAngle(obj4,Val[2]);
		ObjShot_SetGraphic(obj4,2);
		ObjShot_SetDamage(obj4,3);
		ObjLaser_SetLength(obj4,1000);
		ObjLaser_SetWidth(obj4,25);
		ObjLaser_SetSource(obj4,false);

	loop(250){
		Val = GetReflectData(GetPlayerX(),GetPlayerY(),EX+angle);
		Obj_SetPosition(obj3,GetPlayerX(),GetPlayerY());
		Obj_SetAngle(obj3,EX+angle);
		Obj_SetPosition(obj4,Val[0],Val[1]);
		Obj_SetAngle(obj4,Val[2]);
		angle=angle+1.5;
		yield;}
	loop(50){
		Val = GetReflectData(GetPlayerX(),GetPlayerY(),EX+angle);
		Obj_SetPosition(obj3,GetPlayerX(),GetPlayerY());
		Obj_SetAngle(obj3,EX+angle);
		Obj_SetAlpha(obj3,250-(i*5));
		Obj_SetPosition(obj4,Val[0],Val[1]);
		Obj_SetAngle(obj4,Val[2]);
		Obj_SetAlpha(obj4,250-(i*5));
		angle=angle+2;
		i++;
		yield;}
	angle=270;
	SetCommonData("HYPER",angle);
	Obj_Delete(obj3);
	Obj_Delete(obj4);
	#include_function ".\ReflectValue.txt"
}

task Sshot3{
	let obj3 = Obj_Create(OBJ_LASER);
	Obj_SetPosition(obj3,GetPlayerX,GetPlayerY);
	ObjLaser_SetSource(obj3,false);
	Obj_SetAngle(obj3,rand(0,360));
	Obj_SetAlpha(obj3,250);
	Obj_SetSpeed(obj3,0);
	ObjShot_SetDamage(obj3,0);
	ObjShot_SetGraphic(obj3,2);
	ObjShot_SetDelay(obj3,3);
	ObjLaser_SetLength(obj3,700);
	ObjLaser_SetWidth(obj3,5);
	loop(10){yield;}
	Obj_Delete(obj3);
}

}