#e[Single]
#ScriptVersion[3]
#Title["th15_DistEffect"]
#Text["Pj^`F{Xŵ炬GtFNg(HLSL)"]
#Background["script/default_system/Default_Background_IceMountain.txt"]


let DIR = GetCurrentScriptDirectory;

//摜̎w
let imgBossEfect	 = DIR ~ "img/eff_aura.png";
let imgBLACK		 = DIR ~ "img/black.png";

//{X̃I[GtFNg{̂CN[h
#include "./lib_BossAuraEffect.txt"

//{X̗h炬GtFNg{̂CN[h
#include "./lib_DistEffect.txt"

//----------------------------------------------------
//O[oϐ錾
//̈ʒuŐ錾ϐ̓XNvgŜŗLłB
//̉ӏł̕ϐւ̑́A萔ȊȎ͍s܂B
//(sۏႳȂߗȂǂ̎gp͂ł܂)
//----------------------------------------------------
let objEnemy; //GIuWFNg
let objPlayer; //@IuWFNg
let frame = 0; //GɎgpJE^(@MainLoop1Â܂)

let ex = 0;//Wi[pϐ
let ey = 0;

//----------------------------------------------------
//G̓
//----------------------------------------------------
@Event
{
	alternative(GetEventType())
	case(EV_REQUEST_LIFE)
	{
		//GCtvꂽ
		SetScriptResult(5000);//Ct500ɐݒ
	}
	case(EV_REQUEST_TIMER){
		//^C}[vꂽ
		SetScriptResult(777);//Ԃ77bɐݒ
	}
}

@Initialize
{

	//@IuWFNg擾
	objPlayer = GetPlayerObjectID();

	//GIuWFNg𐶐o^
	objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
	ObjEnemy_Regist(objEnemy);

	//G摜̐ݒ
	let imgRumia = DIR ~ "img/Rumia.png"; //G摜t@C
	ObjPrim_SetTexture(objEnemy, imgRumia); //摜t@Cǂݍ
	ObjSprite2D_SetSourceRect(objEnemy,64, 1, 127, 64); //`挳`(64,1) - (127,64)ɐݒ
	ObjSprite2D_SetDestCenter(objEnemy); //`𒆐S(0, 0)ɐݒ

	//W(cx, 120)60t[Ĉړ
	let cx = GetStgFrameWidth() / 2;//STGV[̒SxW擾
	ObjMove_SetDestAtFrame(objEnemy, cx, 120, 60);
	TAura(objEnemy,0);
	TWaveCircle_Shadertask(objEnemy,0);
	LoadMagicCircle(90);
}

    // OtBbN̐ݒ
    sub SetGraphicStop  { ObjSprite2D_SetSourceRect(objEnemy,  0,  0, 64, 64); }
    sub SetGraphicPose  { ObjSprite2D_SetSourceRect(objEnemy, 64,  0,128, 64); }
    sub SetGraphicLeft  { ObjSprite2D_SetSourceRect(objEnemy,128,  0,192, 64); }
    sub SetGraphicRight { ObjSprite2D_SetSourceRect(objEnemy,192,  0,256, 64); }

    sub SetGraphicMove {
	if(cos(ObjMove_GetAngle(objEnemy))*ObjMove_GetSpeed(objEnemy) <  0) { SetGraphicLeft(); }
	else { SetGraphicRight(); }
    }
//@wWJXNvg[h
task LoadMagicCircle(frame){
	let path = DIR ~ "Default_System_MagicCircle.txt";
	let id = LoadScript(path);
	loop(frame){yield;}
	StartScript(id);
	//XyJ[h𔭓
	let objScene = GetEnemyBossSceneObjectID();
	ObjEnemyBossScene_StartSpell(objScene);
}
@MainLoop
{
	//G̍W擾Ċi[
	ex = ObjMove_GetX(objEnemy);
	ey = ObjMove_GetY(objEnemy);

	if(frame == 90)
	{
		ObjMove_SetDestAtFrame(objEnemy, rand(192-100, 192+100), rand(50, 200), 60);
		SetGraphicMove();
	}
	if(frame == 150)
	{
		SetGraphicStop();
	}
	if(frame == 180)
	{
		//frame180ɂȂs镔
		SetGraphicPose;
		frame = 0;//frame0ɂ
	}

	//蔻o^
	ObjEnemy_SetIntersectionCircleToShot(objEnemy, ex, ey, 32);//蔻(@ep)o^
	ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ex, ey, 24);//蔻(̓p)o^

	frame++;
		
	//Ct0
	if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) <= 0)
	{
		//Ct0ɂȂ瑦ɏI
		//{͔GtFNg̃^XNo^A
		//GtFNgI҂āAXNvgI܂B
		
		Obj_Delete(objEnemy);
		loop(60){yield;}
		CloseScript(GetOwnScriptID());
		return;
	}

	yield;
}
