//GB
//UFO

script_enemy_main{

//{`̓Ǎ
#include_function".\enemy_define.txt"

let se_UFO;

@Initialize{

	se_UFO = GetCommonDataEx("INVADER", "System.Directory.System") ~ "se\jump00.wav";

	SetScore(0);
	SetLife(const_EnemyLifeZero + 160);
	SetDamageRate(20, 00);
	SetTexture(img_Enemy);

	func_Initialize();

	main_TestBeamCollision;
	main_TestDefeat();
	//main_TestDeadLine();
	main_FadeOutVanish();

	main_MainRoutine();
}


@MainLoop{

	SetCollisionA(GetX(), GetY(), 15);
	SetCollisionB(GetX(), GetY(), 8);
	yield;
}

let animation_frame = 0;
@DrawLoop{

	animation_frame++;
	let rect = func_GetAnimationRect(_GRA_UFO, animation_frame);
	SetGraphicRect(rect[0], rect[1], rect[2], rect[3]);

	SetRenderState(ADD);

	func_GetColor();
	DrawGraphic(GetX(), GetY());

}


@Finalize{

	//func_Finalize();

}

task main_MainRoutine(){

	loop(10){ yield; }
	main_MoveRoutine();
	main_ShotRoutine();
	main_BarrierBreakerShot();

}//end task

task main_MoveRoutine()
{
	if(g_MoveType == _MOVETYPE_SLAVE)
	{
		main_MoveRoutineA(g_Param01, g_Param02);
		loop
		{
			wait_WaitWhileFreeze();
			loop(20){ yield; }
			PlaySE(se_UFO);
		}

	}
	else if(g_MoveType == _MOVETYPE_ROUND)
	{
		main_MoveRoutineB(g_Param01, g_Param02, g_Param03, false);
	}
	else if(g_MoveType == _MOVETYPE_ROUNDTICK)
	{
		main_MoveRoutineB(g_Param01, g_Param02, g_Param03, true);
	}


}//

task main_ShotRoutine()
{
	let stage = GetCommonDataDefaultEx("INVADER", "Stage.Count", 1);
	func_SetShotPatern_UFO(stage);

}//
task main_Vanish()
{
	g_Alive = false;

	func_DeleteBBShot();
	//func_TestNagoya();

	VanishEnemy();
}//end task


#include_function".\enemy_basic.txt"
#include_function".\enemy_move_routine.txt"
#include_function".\enemy_shot.txt"
#include_function".\enemy_shot_func.txt"
#include_function".\enemy_shot_routine.txt"

#include_function".\enemy_patern_UFO.txt"

#include_function"..\lib_REMY\include_effect.txt"
#include_function"..\lib_REMY\include_tool.txt"

}//end script

#include_script".\enemy_script_missile.txt"
