script_enemy FAMI1{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 0, 48);
		ObjEffect_SetVertexUV(Obj, 1, 0, 96);
		ObjEffect_SetVertexUV(Obj, 2, 48, 48);
		ObjEffect_SetVertexUV(Obj, 3, 48, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(16){
			loop(8){
				shot(4,GetAngle+90+angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle--;
			stop+=3;
			wait(6);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,86);
		SetShotDataA(1,stop,0,NULL,0,0,0,86);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,86);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,86,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,86,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI2{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 48, 48);
		ObjEffect_SetVertexUV(Obj, 1, 48, 96);
		ObjEffect_SetVertexUV(Obj, 2, 96, 48);
		ObjEffect_SetVertexUV(Obj, 3, 96, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(16){
			loop(8){
				shot(4,GetAngle+90+angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle--;
			stop+=3;
			wait(6);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,81);
		SetShotDataA(1,stop,0,NULL,0,0,0,81);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,81);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,81,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,81,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI3{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 96, 48);
		ObjEffect_SetVertexUV(Obj, 1, 96, 96);
		ObjEffect_SetVertexUV(Obj, 2, 144, 48);
		ObjEffect_SetVertexUV(Obj, 3, 144, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(8){
			loop(16){
				shot(3,GetAngle-90-angle,stop,time);
				shot(3,GetAngle-90-angle,stop+5,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle-=7;
			stop+=10;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,84);
		SetShotDataA(1,stop,0,NULL,0,0,0,84);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,84);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,84,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,84,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI4{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 144, 48);
		ObjEffect_SetVertexUV(Obj, 1, 144, 96);
		ObjEffect_SetVertexUV(Obj, 2, 192, 48);
		ObjEffect_SetVertexUV(Obj, 3, 192, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(8){
			loop(16){
				shot(3,GetAngle-90-angle,stop,time);
				shot(3,GetAngle-90-angle,stop+5,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle-=5;
			stop+=10;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,83);
		SetShotDataA(1,stop,0,NULL,0,0,0,83);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,83);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,83,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,83,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI5{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 0, 48);
		ObjEffect_SetVertexUV(Obj, 1, 0, 96);
		ObjEffect_SetVertexUV(Obj, 2, 48, 48);
		ObjEffect_SetVertexUV(Obj, 3, 48, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=300;
		shotA;
		loop(30){
			loop(3){
				shot(4,GetAngle+90+angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=1;
			stop+=2;
			time-=1;
			wait(2);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,86);
		SetShotDataA(1,stop,0,NULL,0,0,0,86);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,86);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,86,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,86,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI6{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 48, 48);
		ObjEffect_SetVertexUV(Obj, 1, 48, 96);
		ObjEffect_SetVertexUV(Obj, 2, 96, 48);
		ObjEffect_SetVertexUV(Obj, 3, 96, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=300;
		shotA;
		loop(30){
			loop(3){
				shot(4,GetAngle+90+angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=1;
			stop+=2;
			time-=1;
			wait(2);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,81);
		SetShotDataA(1,stop,0,NULL,0,0,0,81);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,81);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,81,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,81,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI7{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 192, 48);
		ObjEffect_SetVertexUV(Obj, 1, 192, 96);
		ObjEffect_SetVertexUV(Obj, 2, 240, 48);
		ObjEffect_SetVertexUV(Obj, 3, 240, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<180){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=300;
		shotA;
		loop(30){
			loop(3){
				shot(4,GetAngle-90-angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=1;
			stop+=2;
			time-=1;
			wait(2);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,87);
		SetShotDataA(1,stop,0,NULL,0,0,0,87);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,87);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,87,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,87,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI8{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 240, 48);
		ObjEffect_SetVertexUV(Obj, 1, 240, 96);
		ObjEffect_SetVertexUV(Obj, 2, 288, 48);
		ObjEffect_SetVertexUV(Obj, 3, 288, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<180){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=300;
		shotA;
		loop(30){
			loop(3){
				shot(4,GetAngle-90-angle-1,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=1;
			stop+=2;
			time-=1;
			wait(2);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,82);
		SetShotDataA(1,stop,0,NULL,0,0,0,82);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,82);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,82,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,82,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI9{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 96, 48);
		ObjEffect_SetVertexUV(Obj, 1, 96, 96);
		ObjEffect_SetVertexUV(Obj, 2, 144, 48);
		ObjEffect_SetVertexUV(Obj, 3, 144, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(20){
			loop(3){
				shot(4,GetAngle+90+angle+2,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=1;
			time-=8;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,84);
		SetShotDataA(1,stop,0,NULL,0,0,0,84);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,84);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,84,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,84,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI10{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 144, 48);
		ObjEffect_SetVertexUV(Obj, 1, 144, 96);
		ObjEffect_SetVertexUV(Obj, 2, 192, 48);
		ObjEffect_SetVertexUV(Obj, 3, 192, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle-180),cenY+pos*sin(angle-180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(20){
			loop(3){
				shot(4,GetAngle+90+angle+2,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=1;
			time-=8;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,83);
		SetShotDataA(1,stop,0,NULL,0,0,0,83);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,83);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,83,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,83,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI11{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 0, 48);
		ObjEffect_SetVertexUV(Obj, 1, 0, 96);
		ObjEffect_SetVertexUV(Obj, 2, 48, 48);
		ObjEffect_SetVertexUV(Obj, 3, 48, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(20){
			loop(3){
				shot(4,GetAngle-90-angle-2,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=1;
			time-=8;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,86);
		SetShotDataA(1,stop,0,NULL,0,0,0,86);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,86);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,86,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,86,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI12{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 48, 48);
		ObjEffect_SetVertexUV(Obj, 1, 48, 96);
		ObjEffect_SetVertexUV(Obj, 2, 96, 48);
		ObjEffect_SetVertexUV(Obj, 3, 96, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle-180),cenY+pos*sin(angle-180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(20){
			loop(3){
				shot(4,GetAngle-90-angle-2,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=1;
			time-=8;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,81);
		SetShotDataA(1,stop,0,NULL,0,0,0,81);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,81);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,81,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,81,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI13{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 192, 48);
		ObjEffect_SetVertexUV(Obj, 1, 192, 96);
		ObjEffect_SetVertexUV(Obj, 2, 240, 48);
		ObjEffect_SetVertexUV(Obj, 3, 240, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<140){pos+=2;}
				angle+=3;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(20){
			loop(3){
				shot(4,GetAngle+90+angle+2,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=1;
			time-=8;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,87);
		SetShotDataA(1,stop,0,NULL,0,0,0,87);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,87);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,87,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,87,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI14{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 288, 48);
		ObjEffect_SetVertexUV(Obj, 1, 288, 96);
		ObjEffect_SetVertexUV(Obj, 2, 336, 48);
		ObjEffect_SetVertexUV(Obj, 3, 336, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<140){pos+=2;}
				angle+=3;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		let angle=0;
		let stop=10;
		let time=360;
		shotA;
		loop(20){
			loop(3){
				shot(4,GetAngle+90+angle+2,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=1;
			time-=8;
			wait(10);
		}
		VanishEnemy;
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,85);
		SetShotDataA(1,stop,0,NULL,0,0,0,85);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,85);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,85,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,85,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI15{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 96, 48);
		ObjEffect_SetVertexUV(Obj, 1, 96, 96);
		ObjEffect_SetVertexUV(Obj, 2, 144, 48);
		ObjEffect_SetVertexUV(Obj, 3, 144, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(420);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=490;
		loop{
			shot(4,GetAngle+90+angle,stop,time);
			PlaySE(seShot2);
			angle+=0.4;
			stop+=0.4;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=10;
		let time=490;
		loop{
			shot(4,GetAngle+90+angle,stop,time);
			PlaySE(seShot2);
			angle+=0.6;
			stop+=0.4;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,94);
		SetShotDataA(1,stop,0,NULL,0,0,0,94);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,94);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,84,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,84,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI16{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 288, 48);
		ObjEffect_SetVertexUV(Obj, 1, 288, 96);
		ObjEffect_SetVertexUV(Obj, 2, 336, 48);
		ObjEffect_SetVertexUV(Obj, 3, 336, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle+=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX+pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(420);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=490;
		loop{
			shot(4,GetAngle+90+angle,stop,time);
			PlaySE(seShot2);
			angle+=0.4;
			stop+=0.4;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=10;
		let time=490;
		loop{
			shot(4,GetAngle+90+angle,stop,time);
			PlaySE(seShot2);
			angle+=0.6;
			stop+=0.4;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,89);
		SetShotDataA(1,stop,0,NULL,0,0,0,89);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,89);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle-90,85,0);
			CreateShot01(GetX,GetY,0.5,GetAngle-90,85,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI17{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 240, 48);
		ObjEffect_SetVertexUV(Obj, 1, 240, 96);
		ObjEffect_SetVertexUV(Obj, 2, 288, 48);
		ObjEffect_SetVertexUV(Obj, 3, 288, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		shotD;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=480;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			angle+=0.2;
			stop+=1;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=10;
		let time=480;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			angle+=0.4;
			stop+=1;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotD{
		let angle=0;
		let stop=10;
		let time=480;
		loop(6){
			loop(6){
				shot(4,GetAngle-90-angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=1;
			stop+=1;
			time-=16;
			wait(20);
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,91);
		SetShotDataA(1,stop,0,NULL,0,0,0,91);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,91);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,82,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,82,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI18{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 192, 48);
		ObjEffect_SetVertexUV(Obj, 1, 192, 96);
		ObjEffect_SetVertexUV(Obj, 2, 240, 48);
		ObjEffect_SetVertexUV(Obj, 3, 240, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		shotD;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=480;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			angle+=0.2;
			stop+=1;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=10;
		let time=480;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			angle+=0.4;
			stop+=1;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotD{
		let angle=0;
		let stop=10;
		let time=480;
		loop(6){
			loop(6){
				shot(4,GetAngle-90-angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=1;
			stop+=1;
			time-=16;
			wait(20);
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,92);
		SetShotDataA(1,stop,0,NULL,0,0,0,92);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,92);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,87,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,87,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI19{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 0, 48);
		ObjEffect_SetVertexUV(Obj, 1, 0, 96);
		ObjEffect_SetVertexUV(Obj, 2, 48, 48);
		ObjEffect_SetVertexUV(Obj, 3, 48, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(420);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=480;
		loop{
			if(stop!=50){shot(4,GetAngle-90-angle,stop,time);}
			PlaySE(seShot2);
			angle+=0.5;
			stop+=2;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=10;
		let time=480;
		loop(18){
			loop(6){
				shot(4,GetAngle-90-angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=3;
			time-=5;
			wait(10);
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,95);
		SetShotDataA(1,stop,0,NULL,0,0,0,95);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,95);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,86,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,86,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI20{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 144, 48);
		ObjEffect_SetVertexUV(Obj, 1, 144, 96);
		ObjEffect_SetVertexUV(Obj, 2, 192, 48);
		ObjEffect_SetVertexUV(Obj, 3, 192, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(420);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=480;
		loop{
			if(stop!=50){shot(4,GetAngle-90-angle,stop,time);}
			PlaySE(seShot2);
			angle+=0.5;
			stop+=2;
			time-=3;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=10;
		let time=480;
		loop(18){
			loop(6){
				shot(4,GetAngle-90-angle,stop,time);
				time-=2;
				PlaySE(seShot2);
				wait(2);
			}
			angle+=2;
			stop+=3;
			time-=5;
			wait(10);
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,89);
		SetShotDataA(1,stop,0,NULL,0,0,0,89);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,89);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,83,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,83,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI21{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 48, 48);
		ObjEffect_SetVertexUV(Obj, 1, 48, 96);
		ObjEffect_SetVertexUV(Obj, 2, 96, 48);
		ObjEffect_SetVertexUV(Obj, 3, 96, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=2;
		let time=420;
		loop{
			if(stop!=0){shot(4,GetAngle-90-angle-3,stop,time);}
			PlaySE(seShot2);
			angle+=0.001;
			stop+=0.5;
			time-=2;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=2;
		let time=420;
		loop{
			if(stop!=0){shot(4,GetAngle-90-angle-4,stop,time);}
			PlaySE(seShot2);
			angle+=0.002;
			stop+=1;
			time-=2;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,94);
		SetShotDataA(1,stop,0,NULL,0,0,0,94);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,94);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,89,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,89,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI22{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 96, 48);
		ObjEffect_SetVertexUV(Obj, 1, 96, 96);
		ObjEffect_SetVertexUV(Obj, 2, 144, 48);
		ObjEffect_SetVertexUV(Obj, 3, 144, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(360);
		VanishEnemy;
	}


	task shotB{
		let angle=0;
		let stop=2;
		let time=420;
		loop{
			if(stop!=0){shot(4,GetAngle-90-angle-3,stop,time);}
			PlaySE(seShot2);
			angle+=0.001;
			stop+=0.5;
			time-=2;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=2;
		let time=420;
		loop{
			if(stop!=0){shot(4,GetAngle-90-angle-4,stop,time);}
			PlaySE(seShot2);
			angle+=0.002;
			stop+=1;
			time-=2;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,91);
		SetShotDataA(1,stop,0,NULL,0,0,0,91);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,91);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,92,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,92,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI23{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 0, 48);
		ObjEffect_SetVertexUV(Obj, 1, 0, 96);
		ObjEffect_SetVertexUV(Obj, 2, 48, 48);
		ObjEffect_SetVertexUV(Obj, 3, 48, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2.2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=420;
		loop{
			loop(8){
				shot(3,GetAngle-90-angle,stop,time);
				PlaySE(seShot2);
				time-=2;
				wait(2);
			}
			angle+=2;
			stop+=4;
			time-=1;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=15;
		let time=420;
		loop{
			loop(8){
				shot(3,GetAngle-90-angle,stop,time);
				PlaySE(seShot2);
				time-=2;
				wait(2);
			}
			angle+=2;
			stop+=4;
			time-=1;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,92);
		SetShotDataA(1,stop,0,NULL,0,0,0,92);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,92);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,94,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,94,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI24{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 288, 48);
		ObjEffect_SetVertexUV(Obj, 1, 288, 96);
		ObjEffect_SetVertexUV(Obj, 2, 336, 48);
		ObjEffect_SetVertexUV(Obj, 3, 336, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2.2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=10;
		let time=420;
		loop{
			loop(8){
				shot(3,GetAngle-90-angle,stop,time);
				PlaySE(seShot2);
				time-=2;
				wait(2);
			}
			angle+=2;
			stop+=4;
			time-=1;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=15;
		let time=420;
		loop{
			loop(8){
				shot(3,GetAngle-90-angle,stop,time);
				PlaySE(seShot2);
				time-=2;
				wait(2);
			}
			angle+=2;
			stop+=4;
			time-=1;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,95);
		SetShotDataA(1,stop,0,NULL,0,0,0,95);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,95);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,93,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,93,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}


script_enemy FAMI25{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 192, 48);
		ObjEffect_SetVertexUV(Obj, 1, 192, 96);
		ObjEffect_SetVertexUV(Obj, 2, 240, 48);
		ObjEffect_SetVertexUV(Obj, 3, 240, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle),cenY+pos*sin(angle),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=5;
		let time=300;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			time--;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=5;
		let time=210;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			time--;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,90);
		SetShotDataA(1,stop,0,NULL,0,0,0,90);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,90);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,95,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,95,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}

script_enemy FAMI26{
	let imgeff   = GetCurrentScriptDirectory ~ ".\img\familiar.png";
	let seShot2	= GetCurrentScriptDirectory ~ ".\se\shoot13.wav";
	let effectangle=0;
	let cenX=GetCenterX;
	let cenY=GetCenterY;

	@Initialize{
	SetLife(500);
	LoadGraphic(imgeff);
	Main;
	}

	@DrawLoop{
	AuraEffect;
	}

	task AuraEffect{
		let x=GetX;let y=GetY;
		let Obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(Obj,imgeff);
		ObjEffect_SetLayer(Obj,1);
		ObjEffect_SetRenderState(Obj,ADD);
		ObjEffect_SetPrimitiveType(Obj,PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_CreateVertex(Obj,4);
		ObjEffect_SetAngle(Obj,0,0,effectangle);

		ObjEffect_SetVertexXY(Obj, 0, -24, -24);
		ObjEffect_SetVertexXY(Obj, 1, -24,  24);
		ObjEffect_SetVertexXY(Obj, 2,  24, -24);
		ObjEffect_SetVertexXY(Obj, 3,  24,  24);

		ObjEffect_SetVertexUV(Obj, 0, 144, 48);
		ObjEffect_SetVertexUV(Obj, 1, 144, 96);
		ObjEffect_SetVertexUV(Obj, 2, 192, 48);
		ObjEffect_SetVertexUV(Obj, 3, 192, 96);

		let scale=1.0;let alpha=128;
		while(alpha>10)
		{
			Obj_SetPosition(Obj,x,y);
			ObjEffect_SetScale(Obj,scale,scale);
			ascent(a in 0..4)
			{
				ObjEffect_SetVertexColor(Obj,a,alpha,255,255,255);
			}
			alpha-=20;
			scale+=0.01;
			yield;
		}
		Obj_Delete(Obj);
	}

	@MainLoop{
		yield;
	}

	task Main{
		yield;
		EffectAngle;
		move;
		wait(120);
		attack;
	}

	task EffectAngle{
		loop{
			effectangle-=10;
			wait(1);
			yield;
		}
	}

	task move{
		let pos=0;
		loop{
			let angle=0;
			while(angle<360){
				SetMovePosition02(cenX-pos*cos(angle+180),cenY+pos*sin(angle+180),1);
				if(pos<200){pos+=2;}
				angle+=2;
				wait(1);
			}
			yield;
		}
	}

	task attack{
		shotA;
		shotB;
		shotC;
		wait(360);
		VanishEnemy;
	}

	task shotB{
		let angle=0;
		let stop=5;
		let time=300;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			time--;
			wait(2);
			yield;
		}
	}

	task shotC{
		let angle=0;
		let stop=5;
		let time=210;
		loop{
			shot(4,GetAngle-90-angle,stop,time);
			PlaySE(seShot2);
			time--;
			wait(2);
			yield;
		}
	}

	task shot(speed,angle,stop,time){
		CreateShotA(1,GetX,GetY,10);
		SetShotDataA(1,0,speed,angle,0,0,0,93);
		SetShotDataA(1,stop,0,NULL,0,0,0,93);
		SetShotDataA(1,time,0,NULL,0,0.1,speed,93);
		FireShot(1);
	}

	task shotA{
		loop{
			CreateShot01(GetX,GetY,1,GetAngle+90,91,0);
			CreateShot01(GetX,GetY,0.5,GetAngle+90,91,0);
			PlaySE(seShot2);
			wait(1);
			yield;
		}
	}

	@Finalize{
	}

	function wait(let n){loop(n){yield;}}
}