//GB
//{XP

script_enemy_main{

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


@Initialize{


	SetScore(0);
	SetLife(const_EnemyLifeZero + 1000);
	SetCommonDataEx("INVADER","EnemyBoss.Life",1000);
	SetDamageRate(20, 00);
	SetTexture(img_Boss1);

	func_Initialize();
	func_Boss_Initialize();

	main_TestBeamCollisionBoss;
	main_TestDefeat();
	main_Boss_EffectShield();
	main_Boss_EffectLife(1000 ,  100);

	//main_TestDeadLine();
	//main_FadeOutVanish();

	main_MainRoutine();
}


@MainLoop{

	SetCollisionA(GetX(), GetY(), 20);
	SetCollisionB(GetX(), GetY(), 18);
	yield;
}

let animation_frame = 0;
@DrawLoop{

	let rect = func_GetAnimationRect(g_GraType, 0);
	SetGraphicRect(rect[0], rect[1], rect[2], rect[3]);

	SetRenderState(ADD);

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

}


@Finalize{

	//func_Finalize();
	SetCommonDataEx("INVADER","EnemyBoss.Life",000);

}

task main_MainRoutine(){

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

}//end task

task main_MoveRoutine()
{

	SetMovePosition03(GetCenterX(), 180, 10, 8);
	loop
	{
		yield;
		func_SetPosition();
	}

}//

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

}//

task main_Vanish()
{

	g_GraType = _GRA_BOSS2;
	PlaySE(se_BossDefeat);
	loop(60){ yield; }

	SetMovePosition02(GetCenterX(), -200, 30);

	loop(60){ yield; }
	//main_Enemy_DestroyAll();
	g_Alive = false;

	loop(200){ yield; }
	SetCommonDataEx("INVADER","Enemy.SpecialItem", [GetX(), GetY(), _ITEMTYPE_1UP]);
	SetCommonDataEx("INVADER","ScoreBonus.LastEnemyDistance",  const_DeadLine - GetY());
	loop(20){ yield; }
	VanishEnemy();

}//end task


#include_function".\enemy_basic.txt"
#include_function".\enemy_bossbasic.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"..\lib_REMY\include_effect.txt"
#include_function"..\lib_REMY\include_tool.txt"

}//end script