script_enemy_main {
	
	let time = 0;
	let phase = 1;
	let rate = 2;
	let kaku = 10;
	let score = 200;
	let lv = 0;
	let angle = GetAngle();
	let rank = GetSpeed();
	let arg = GetArgument();
	let ex = GetCommonData("ex");
	let mapx = GetX();
	let mapy = GetY();
	let imgEnemy = GetCurrentScriptDirectory~"img\zakotank2.png";
	let tama = GetCurrentScriptDirectory~"tama.txt";
	let se1 = GetCurrentScriptDirectory~"wav\se1.wav";
	let se8 = GetCurrentScriptDirectory~"wav\se8.wav";
	if(ex==1){rank=4;}
	@Initialize(){
		SetLife( 120 );
		SetInvincibility( 10 );
		LoadGraphic( imgEnemy );
		LoadUserShotData( tama );
		SetX(mapx-GetCommonData("bgx"));
		SetY(GetCommonData("bgy")-mapy);
		if(arg==0){
			if( (|angle|) ==107){Tmove107;}
			if( (|angle|) ==503){Tmove503;}
		}
		else{setmove(angle,arg);}
		Tshot;
		Tgazou2(1,1,48,48);
		Tgazou3(48,1,96,48,24);
		layer = 0;
	}
	@MainLoop {
		if(phase==1&&GetLife<=100){
			phase-=1;
			if(lv==0||GetPoint>0){DeleteEnemyShotImmediatelyInCircle(SHOT, GetX, GetY+10, 35);}
			PlaySE(se8);
			Tdeath(4,24,2,1);
		}
		if(GetX<12||GetX>436||GetY<16){
			SetInvincibility( 5 );
		}
		//if(time>500&&GetY>500){VanishEnemy;}
		if(time>1000){VanishEnemy;}
		if(phase>=1){SetCollisionA(GetX, GetY, 24);}
		SetX(mapx-GetCommonData("bgx"));
		SetY(GetCommonData("bgy")-mapy);
		if(GetCommonData("kakusei")>0){lv=1}
		else{lv=0}
		time++;
		yield;
	}
	@Finalize() {
	}
	@DrawLoop {
	}

	task Tshot{
		yield;
		wait(60+sin(GetCommonData("ransu")*73)*20-rank*15);
		SetCommonData("ransu",GetCommonData("ransu")+1);
		loop{
			if(phase<=0){return;}
			if(GetX>42&&GetX<406&&GetY>16&&GetY<(250+rank*25)&&(GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2>150^2){
				let p=GetAngleToPlayer();
				p+=-p%12+6;
				let a=0;
				loop(3+rank/2){
					CreateShotFromScript( "shot1",GetX()+cos(p)*22, GetY()+sin(p)*22, 2.3+a*(0.35+ex*0.15), p, 0, 06);
					a++;
				}
				if(ex==1){
					let a=0;
					loop(2+rank/2){
						CreateShotFromScript( "shot1",GetX()+cos(p)*22, GetY()+sin(p)*22, 2.55+a*(0.35+ex*0.15), p+8, 0, 04);
						CreateShotFromScript( "shot1",GetX()+cos(p)*22, GetY()+sin(p)*22, 2.55+a*(0.35+ex*0.15), p-8, 0, 04);
						a++;
					}
				}
			}
			if(lv==0){wait(45-rank*9);}
			wait(12);
		}
	}
	task Tmove107{
		angle=90;
		setmove(90,200);
		wait(200);
		angle=32;
		setmove(32,30);
		wait(30);
		angle=0;
		setmove(0,300);
		wait(300);
		VanishEnemy;
	}
	task Tmove503{
		let r=angle/503;
		angle = 90;
		setmove(angle,50);
		wait(50);
		angle = 90+45*r;
		setmove(angle,40);
		wait(40);
		angle = 90+90*r;
		setmove(angle,400);
		wait(400);
		VanishEnemy;
	}

	task setmove(a,t) {
		loop(t) {
			mapx+=cos(a)*0.8;mapy-=sin(a)*0.8;
			yield;
		}
	}



    #include_function".\efanction.txt"
    #include_function".\effobj.txt"
}

#include_script".\escript.txt"