// Ƀ{X̏ݒsCN[hpXNvgł
// {X̊eXyJĂ΂܂

//---------------------------------------------------------------------------------

//Ăяop萔
//fBNg
let csd = GetCurrentScriptDirectory;

//蔻摜
let setcol = csd ~ "\img\col.png";

//wi摜
let bgg = csd ~ "\img\bgg.jpg";

//CN[hpXNvgĂ
/*
 *@ALL		FׂẴXNvgɋʂėp֐
 *@SE		Fʉ炷
 *@SHOT	FVbg֌W
 *
 */
#include_function ".\INCLUDE\ALL.txt"
#include_function ".\INCLUDE\SE.txt"
#include_function ".\INCLUDE\SHOT.txt"
#include_function ".\_index_UserShot.dnh"

let bgframe = 0;	//wit[

//[U`e摜̃fBNg
let shotAll = csd ~ "\shot_All.dnh";

//hbg摜
let imgBoss = csd ~ "\img\dot2.png";

//Rate\ɂ
SetRateScoreSystemEnable(false);

//O
SpellCount;
PlayerCol;

//---------------------------------------------------------------------------------

//{XJbgC
function _CutIn(let name){
	CutIn(YOUMU, name, "Ȃ", 0, 0, 0, 0);
}

//XyJ^C}[
task SpellCount{
	let count = 0;

	loop{
		if(!(count == GetTimer)){
			if(GetTimer <= 5){
				PlaySE(SE_TIME2);
			}else if(GetTimer <= 10){
				PlaySE(SE_TIME1);
			}
		}
		count = GetTimer;
		yield;
	}
}


//摜ǂݍ݃^XN
task _LoadGraphic {
	LoadUserShotData(shotAll);
        LoadGraphic(imgBoss);
	LoadGraphic(bgg);
}

//{X`悷^XN
//   @nAnm	: `悷摜
//
task BossDraw(let nAnm){
	SetTexture(imgBoss);
	SetGraphicScale(1,1);
	SetGraphicAngle(0,0,0);
	SetAlpha(255);
	SetGraphicRect(0, 0, 64, 64);
	DrawGraphic(GetX, GetY);
}


task BgDraw{

	SetTexture(bgg);
	SetGraphicScale(1,1);
	SetGraphicAngle(0,0,0);
	SetAlpha(255);
	SetGraphicRect(0, 0, 386, 450);
	DrawGraphic(GetCenterX, GetCenterY);

	bgframe += 1;
	
}

//@蔻`
task PlayerCol{
	
	LoadGraphic(setcol);

	yield;

	loop{
		let obj = Obj_Create(OBJ_EFFECT);

		if(GetPlayerMoveState == MOVE_SLOW){
			//obj = Obj_Create(OBJ_EFFECT);
			ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);//v~eBu^Cvݒ
			ObjEffect_CreateVertex(obj, 4);//_4
			ObjEffect_SetTexture(obj,setcol);
			ObjEffect_SetLayer(obj,4);

			//lp`Ɋe_̍Wݒ
			ObjEffect_SetVertexXY(obj, 0, -5, -5);
			ObjEffect_SetVertexXY(obj, 1, -5,  5);
			ObjEffect_SetVertexXY(obj, 2,  5, -5);
			ObjEffect_SetVertexXY(obj, 3,  5,  5);
		
			//lp`Ɋe_UVlݒB
			ObjEffect_SetVertexUV(obj, 0,  0,  0);
			ObjEffect_SetVertexUV(obj, 1,  0, 10);
			ObjEffect_SetVertexUV(obj, 2, 10,  0);
			ObjEffect_SetVertexUV(obj, 3, 10, 10);

			Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
		}

		yield;
		
		Obj_Delete(obj);
		
		//yield;
	}
}


    // ړ
    // dist	:ړ͈
    function BossMoveEX(let dist){
	let dist2 = dist + rand(-dist/10, dist/10);	//ړ = ړɈړ10%̑O덷
	let theta = rand(0,360);
	
	let nX = cos(theta) * dist2;
	let nY = sin(theta) * dist2;
	
	BossMoveEXtoPlayer(absolute(nX), nY, GetClipMinX + 32, GetClipMinY + 32, GetClipMaxX - 32, GetClipMinY + 160);
    }

    // Aړ(g胋[v̈ꕔBossMoveEXgݍœƎv܂)
    // dist	:ړ͈
    // w	:ҋ@
    task BossMoveEXloop(let dist, let w){
	yield;
	
	loop{
		BossMoveEX(dist);
		loop(w){ yield; }
	}
    }

    // ړ֐
    // nX,nY	:ړ͈()
    // left,top,right,bottom	:̈
    function BossMoveEXtoPlayer(let nX, let nY, let left, let top, let right, let bottom) {
        let x = 0;
        let y = 0;
	
	//ɕsȂ炱̒lMĉ
	let MAXSPEED = 3;	//ő呬x
	let SLOW = 15;		//x

        if(GetPlayerX < GetX) {
        	x = GetX - nX;
        	if(x < left) {
        		x = GetX + nX;
        	}
        }else{
        	x = GetX + nX;
        	if(right < x) {
         		x = GetX - nX;
        	}
        }
        y = GetY + nY;
        if(y < top) {
        	y = top;
        }else if(bottom < y) {
        	y = bottom;
        }

        SetMovePosition03(x, y, SLOW, MAXSPEED);
    }


