//GB


script_enemy_main{

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


@Initialize{

	func_Initialize();

	SetScore(0);
	SetLife(const_EnemyLifeZero + func_GetLife());
	SetDamageRate(20, 10);
	SetTexture(img_Enemy);

	main_TestBeamCollision;
	main_TestDefeat();
	main_TestDeadLine();

	main_MainRoutine();
}


@MainLoop{

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

let animation_frame = 0;
@DrawLoop{

	animation_frame++;
	let rect = func_GetAnimationRect(g_GraType, 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);
	}
	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);
	alternative(g_GraType)
	case(_GRA_JELLY){ func_SetShotPatern_Back(stage); }
	case(_GRA_CRAB){ func_SetShotPatern_Middle(stage); }
	case(_GRA_SHELL){ func_SetShotPatern_Front(stage); }

}//

task main_Vanish()
{
	g_Alive = false;
	func_DeleteBBShot();
	func_TestNagoya();
	SetCommonDataEx("INVADER","ScoreBonus.LastEnemyDistance",  const_DeadLine - GetY());

	VanishEnemy();
}//end task


function func_GetLife()
{
	alternative(g_GraType)
	case(_GRA_JELLY){ return 160; }
	case(_GRA_CRAB){ return 80; }
	case(_GRA_SHELL){ return 40; }

}//end function


#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_front.txt"
#include_function".\enemy_patern_middle.txt"
#include_function".\enemy_patern_back.txt"

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

}//end script

#include_script".\enemy_script_missile.txt"
