#e
#Title[ߋ_(JNV)]
#Text[Fusou]
#Image[]
#Player[FREE]
#ScriptVersion[2]
#BackGround[User(.\BG\Map1\O6.png,1,-2)]

script_enemy_main {
	let current = GetCurrentScriptDirectory();
	let imgFusou = current~"Fusou.png";
	let count = 0;
	let counter = 0;
	let Moct = 0;

	@Initialize { 
		SetX(GetCenterX+76);//324
		SetY(GetCenterY-150);//90
		
		SetLife(5000);
		//SetDamageRate(0,0);
		SetTimer(90); 
		SetScore(3500);
		
		LoadGraphic(imgFusou);
		SetTexture(imgFusou);
		LoadUserShotData(current~"WeaponData.txt");
		
		//PlayMusic("BGM\04BossFusou.mp3");
	}
	
	@MainLoop { 
		SetCollisionA(GetX,GetY,12);
		SetCollisionB(GetX,GetY,12);
		MagicCircle(false);
		alternative(GetTimer)
		case(16,59){Concentration01(40);}
		
		if(GetTimer==58){
			if(count%60==0){
				Torii;
				FireShot(5);
				FireShot(6);
				FireShot(7);
				FireShot(8);
			}
		}
		
		if(GetTimer>60){
			if(GetPlayerY>GetY+50){
				if(count%60==0){
					ShotC(3,90);
					ShotE(3,6,90,0);
				}
				MoveA;
			}
			else{
				if(count%100==0){
					if(GetPlayerX<GetX){
					ShotA(300,-2,-1);
					}
					else if(GetPlayerX>GetX){
					ShotA(240,2,1);
					}
				}
				MoveB(150);
			}
		}
		else if(GetTimer>17&&GetTimer<58){
			if(GetPlayerY>GetY+50){
				if(count%40==0){
					ShotC(2,GetAngleToPlayer+rand(-10,10));
					ShotE(5,4,90+rand(-10,10),50);
				}
			MoveA;
			}
			else{
				if(count%40==0&&Moct>200){
					ShotB(-40,10,135,9);
					ShotB(-10,-40,270,-7);
					ShotB(10,-40,270,7);
					ShotB(40,10,45,-9);
					ShotD(8);
					ShotD(-8);
				}
				MoveB(rand(-80,80));
			}
		}
		else if(GetTimer<15){
			if(count%20==0){
				ShotB(-40,10,135,7);
				ShotB(-10,-40,270,-9);
				ShotB(10,-40,270,9);
				ShotB(40,10,45,-7);
				ShotD(8);
				ShotD(-8);
			}
			SetMovePosition03(224,100,15,9);
		}
		if(GetTimer==1||GetEnemyLife<50){
			DeleteEnemyShot(ALL);
		}
		if(Moct==400){Moct=0;}
		count++;;Moct++;
		yield;
	}
	
	@DrawLoop {
		SetColor( 255, 255, 255);
		SetRenderState(ALPHA);
		SetGraphicRect(3,3,101,99);
		
		if(int((GetSpeedX)||(GetSpeedY))==0){
			if(GetTimer>58){
				SetGraphicRect(3,3,101,99);
			}
			else{
				SetGraphicRect(105,3,203,99);
			}
		}
		else if(GetSpeedX<0){
		SetGraphicRect(207,3,305,99);}
		else if(GetSpeedX>0){
		SetGraphicRect(207,103,305,199);}
		
		if(GetPlayerY<GetY+50){
			if(Moct>200){
				SetGraphicRect(3,103,101,199);
			}
			else{
				SetGraphicRect(105,103,203,199);
			}
		}

		//(3,3,101,99)LA
		//(105,3,203,99)
		
		//(207,3,305,99)LB
		//(207,103,305,199)LC
		
		//(3,103,101,199)
		//(105,103,203,199)
		
		DrawGraphic(GetX,GetY);
	}
	
	@Finalize {
		DeleteGraphic(imgFusou);
		DeleteMusic("BGM\04BossFusou.mp3");
	}
	task ShotA(AgA,AgS,AgP){//35.6cmACA//[U[1
		CreateLaserB(1,20,20,BLUE01,10);
		SetLaserDataB(1,0,5,40,0,AgA,AgS,AgA,AgP);
		SetLaserDataB(1,200,0,NULL,NULL,0,0,0,0);
		FireShot(1);
	}
	task ShotB(LX,LY,Lag,AgS){//35.6cmACB//[U[2
		CreateLaserC(2,GetX+LX,GetY+LY,20,20,PURPLE01,0);
		SetLaserDataC(2,0,7,Lag,AgS,0.5,7);
		SetLaserDataC(2,50,NULL,NULL,0,0,0);
		SetLaserDataC(2,70,NULL,NULL,AgS,0.5,7);
		SetLaserDataC(2,120,NULL,NULL,0,0,0);
		FireShot(2);
	}
	task ShotC(Loop,Angle){//15.2cmPC
		let Speed=3;
			loop(Loop){
				CreateShot01(GetX,GetY,Speed,Angle,24,0);
				CreateShot01(GetX+12,GetY-5,Speed,Angle-45,14,0);
				CreateShot01(GetX-12,GetY-5,Speed,Angle+45,14,0);
			Speed+= 1.5;
			}
		}
	task ShotD(Ag){//d
			CreateShotA(3,GetX,GetY-40,4);
			SetShotDataA(3, 0,6,270,Ag,1,7,3);
			SetShotDataA(3,30,4,GetAngleToPlayer,0,0,0,3);
			SetShotDataA(3,60,10,GetAngleToPlayer,0,0,0,3);
			FireShot(3);
		}
	task ShotE(Loop,Speed,Angle,Clip){//BVD
		let Vx =GetCenterX+rand(-150,150);
		let Vy =GetClipMinY+Clip;
		let sg = 0;
			loop(Loop){
				CreateShot01(Vx+sg,Vy-sg,Speed,Angle,6,5);
				CreateShot01(Vx-sg,Vy-sg,Speed,Angle,6,5);
				sg+=30;
			}
		}
	task MoveA{//224,140
		alternative(Moct)
		case(100){SetMovePosition03( 80,190,15,4);}
		case(200){SetMovePosition03(350,240,15,4);}
		case(300){SetMovePosition03(300, 90,15,4);}
		yield;	
	}
	task MoveB(Lh){
		alternative(Moct)
		case(50,150,250,350){SetMovePosition03(GetPlayerX,GetPlayerY+Lh,15,4);}
		yield;
	}
	task Torii{//
		CreateLaserA(5,GetClipMaxX+30,GetClipMinY+10,700,60,RED01,200);
		SetLaserDataA(5,0,180,0,0,4,90);
		SetLaserDataA(5,60,180,0,100,0,0);
		
		CreateLaserA(6,GetClipMinX-30,GetClipMinY-30,700,60,RED01,200);
		SetLaserDataA(6,0,0,0,0,4,90);
		SetLaserDataA(6,60,0,0,100,0,0);
		
		CreateLaserA(7,GetClipMinX,GetClipMaxY-240,700,50,RED01,200);
		SetLaserDataA(7,10,130,4,0,1.5,0);
		SetLaserDataA(7,60,100,0,0,0,0);
		
		CreateLaserA(8,GetClipMaxX,GetClipMaxY-240,700,50,RED01,200);
		SetLaserDataA(8,10,50,-4,0,-1.5,0);
		SetLaserDataA(8,60,80,0,0,0,0);
		yield;
	}
}