script_enemy_main
{
	#include_function ".\Bullet_function.txt"
	#include_function ".\Enemy function.txt"

	@Initialize{
	SetCommonData("E31_X",GetX);
	SetCommonData("E31_Y",GetY);
	SetX(GetCenterX);
	SetY(0);
	SetLife(1);
	SetScore(40000);
	SetDamageRate(0,0);
	LoadGraphic(imgyoukou);
	LoadGraphic(imgzako);
	SetTexture(imgyoukou);
	SetGraphicRect(384,0,512,128);
	Shot(GetArgument);
	Move();
	}

	@MainLoop{
	ChackBonus;
	yield;
	}

	@DrawLoop{
	DrawGraphic(GetX,GetY);
	}

	@Finalize{
	loop(300 + scorebonus * 20){
	let x = rand(GetClipMinX,GetClipMaxX);
	let y = rand(32,128);
	CreateItem(ITEM_SCORE,x,y);
	}
	}

	task Shot(level){
	loop(100){yield;}
	let angle = -90;
	loop{
	if(level != 2){
	CreateEnemyFromScript("MAGICALFAIRY",GetX,GetY,0,angle,level);
	}
	if(level >= 1){
	CreateEnemyFromScript("MAGICALFAIRY",GetX,GetY,0,angle+90,level);
	CreateEnemyFromScript("MAGICALFAIRY",GetX,GetY,0,angle-90,level);
	}
	if(level >= 2){
	CreateEnemyFromScript("MAGICALFAIRY",GetX,GetY,0,angle+140,level);
	CreateEnemyFromScript("MAGICALFAIRY",GetX,GetY,0,angle-140,level);
	}
	loop(100){yield;}
	}
	}

	task Move(){
	yield;
	SetMovePosition02(GetCommonData("E31_X"),GetCommonData("E31_Y"),80);
	loop(160){yield;}
	SetMovePosition02(GetCenterX-80,GetY-32,60);
	loop(60){yield;}
	loop(2){
	SetMovePosition02(GetCenterX-76,GetY+64,120);
	loop(150){yield;}
	SetMovePosition02(GetCenterX+80,GetY-64,120);
	loop(150){yield;}
	SetMovePosition02(GetCenterX+76,GetY+64,120);
	loop(150){yield;}
	SetMovePosition02(GetCenterX-80,GetY-64,120);
	loop(150){yield;}
	}	
	VanishEnemy;
	}
}

script_enemy MAGICALFAIRY
{
	#include_function ".\Bullet_function.txt"
	#include_function ".\Enemy function.txt"

	@Initialize{
	SetCommonData("E30_X",GetX);
	SetCommonData("E30_Y",GetY);
	SetX(GetX);
	SetY(GetY);
	SetLife(80);
	SetScore(0);
	SetDamageRate(100,33);
	SetTexture(imgzako);
	SetGraphicRect(256,128,320,192);
	Shot(GetArgument);
	Move();
	LoadUserShotData(GetCurrentScriptDirectory~"11-221Shot_f[^.txt");
	}

	@MainLoop{
	SetCollisionA(GetX,GetY,32);
	SetCollisionB(GetX,GetY,24);
	ChackBonus;
	MagicPointReduce;
	yield;
	if(GetLife <= 50){SetCommonData("BE_LIFE",false);}
	}

	@DrawLoop{
	DrawGraphic(GetX,GetY);
	}

	@Finalize{
	if(BeVanished() == false){
	MagicPointAddNormal(2);
	MagicPowerAdd(true);
	}
	}

	task Shot(level){
	loop(100){yield;}
	let angle = GetAngle;
	AroundToShot(GetX,GetY,16,10,0,1,90,0,false,false,37,20);
	if(level >= 2){
	AroundToShot(GetX,GetY,32,10,0,1,86,0,false,false,37,20);
	AroundToShot(GetX,GetY,64,10,0,1,82,0,false,false,37,20);
	}
	if(level >= 3){
	AroundToShot(GetX,GetY,16,8,0,1,88,0,false,false,37,20);
	AroundToShot(GetX,GetY,16,8,0,1,84,0,false,false,37,20);
	}
	loop{yield;}
	}

	task Move(){

	function GetGapX(xA,gapLength,gapAngle){
	return xA + gapLength * cos( gapAngle );
	}

	function GetGapY(yA,gapLength,gapAngle){
	return yA + gapLength * sin( gapAngle );
	}

	yield;
	SetMovePosition02(GetGapX(GetX,200,GetAngle),GetGapY(GetY,200,GetAngle),300);
	loop(300){yield;}
	VanishEnemy;
	}

}