#e
#Title[啁uT[@gtC[v]
#Text[~AEXJ[bg̃XyJ[h]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main
{
        let count=0;
        let name    = "啁uT[@gtC[v";
        let csd     = GetCurrentScriptDirectory;
        let imgBoss =csd~"img\dot_remilia.png";
	let imgEnemy=csd~"img\familiar.png";
	let Motion=0;
	let angle=0;
	let bngle=0;
        let cx=GetCenterX();
        let cy=GetCenterY();
	let AnimationA=0;
	let AnimationB=0;
	let AnimationC=0;

    @Initialize {
    CutIn(YOUMU, name, 0, 0, 0, 0, 0);

        SetLife(4000);
        SetTimer(70);
        SetScore(1000000);
        SetDamageRate(100,100);

        SetInvincibility(200);
        SetMovePosition02(GetCenterX(),128,60);
	LoadGraphic(imgEnemy);
	LoadGraphic(imgBoss);
        TAnime1;
    }

        @MainLoop
        {
	if(count==150){
		Motion=1;
		Concentration01(60);
		}

	if(count==200){
		Teviru;
		}
	if(count>=425&&count%400==225){
		Teviru;
		}
	if(count>=425&&count%400==25){
		Teviru;
		}
	if(count>=400&&count%400==200){
		TShot2;
		TAnime2;
		SetMovePosition02(rand(cx-75,cx+75),rand(80,180),50);
		}
	if(count>=400&&count%400==0){
		TShot1;
		TAnime2;
		SetMovePosition02(rand(cx-75,cx+75),rand(80,180),50);
		}
        SetCollisionB(GetX(),GetY(),24);
	SetCollisionA(GetX(),GetY(),32);
        count++;
        yield;
        }

        @DrawLoop {
	if(Motion==0){
		SetRenderState(ALPHA);
		SetTexture(imgBoss);
		SetGraphicScale(1,1);
		SetAlpha(255);
		SetColor(255,255,255);
		SetGraphicAngle(0,0,0);
		SetRenderState(ALPHA);
		SetAlpha(255);
		if(int(GetSpeedX())==0)
		{SetGraphicRect(128*AnimationC,128*AnimationB,127+128*AnimationC,127+128*AnimationB);}
		else if(GetSpeedX()>0){SetGraphicRect(256,384,383,511);}
		else if(GetSpeedX()<0){SetGraphicRect(256,128,383,255);}
		DrawGraphic(GetX(),GetY());
		}
	if(Motion==1){
		SetRenderState(ALPHA);
		SetTexture(imgBoss);
		SetGraphicScale(1,1);
		SetAlpha(255);
		SetColor(255,255,255);
		SetGraphicAngle(0,0,0);
		SetRenderState(ALPHA);
		SetAlpha(255);
		if(int(GetSpeedX())==0)
		{SetGraphicRect(0,128*AnimationB,127,127+128*AnimationB);}
		else if(GetSpeedX()>0){SetGraphicRect(256,256+128*AnimationA,383,383+128*AnimationA);}
		else if(GetSpeedX()<0){SetGraphicRect(256,128*AnimationA,383,127+128*AnimationA);}
		DrawGraphic(GetX(),GetY());
		}
	}

        @Finalize
        {
        }

    	task TAnime1{
			AnimationB=0;
			AnimationC=3;
        		loop(16){yield;}
			AnimationB=1;
        		loop(56){yield;}
			AnimationB=0;
        		loop(8){yield;}
		loop{
			AnimationB=0;
			AnimationC=0;
        		loop(10){yield;}
			AnimationB=1;
        		loop(10){yield;}
			AnimationB=2;
        		loop(10){yield;}
			AnimationB=3;
        		loop(10){yield;}
			}
		}

    	task TAnime2{
			AnimationA=0;
        		loop(10){yield;}
			AnimationA=1;
        		loop(30){yield;}
			AnimationA=0;
        		loop(10){yield;}
		}

    	task TShot1{
		loop(50){shotKunaiA;
		bngle=bngle+67;}
		}

    	task TShot2{
		loop(50){shotKunaiB;
		bngle=bngle-67;}
		}

    	task Teviru{
		loop(5){CreateEnemyFromScript("SUN",GetX,GetY,0,0,1);
		loop(10){yield;}}
		}
    sub shotKunaiA {
        let i = 0;
        while( i < 6 ){
                SetShotDirectionType(ABSOLUTE);
        	CreateShotA(1,GetX+cos(60*i+bngle)*20,GetY+sin(60*i+bngle)*20,5);
        	SetShotDataA(1,0,2,60*i+bngle,0,-0.01,1.5,RED31);
        	FireShot(1);
        	CreateShotA(1,GetX+cos(60*i+bngle)*20,GetY+sin(60*i+bngle)*20,5);
        	SetShotDataA(1,0,2.5,60*i+bngle,0,-0.01,2,RED31);
        	FireShot(1);
		i++;
		}
	yield;
    }

    sub shotKunaiB {
        let i = 0;
        while( i < 6 ){
                SetShotDirectionType(ABSOLUTE);
        	CreateShotA(1,GetX+cos(60*i+bngle)*20,GetY+sin(60*i+bngle)*20,5);
        	SetShotDataA(1,0,2,60*i+bngle,0,-0.01,1.5,BLUE31);
        	FireShot(1);
        	CreateShotA(1,GetX+cos(60*i+bngle)*20,GetY+sin(60*i+bngle)*20,5);
        	SetShotDataA(1,0,2.5,60*i+bngle,0,-0.01,2,BLUE31);
        	FireShot(1);
		i++;
		}
	yield;
    }
}

script_enemy SUN
{//SUN
	let count=0;
	let imgAngle=0;
        let cx=GetCenterX();
        let cy=GetCenterY();
	let Zoom=0;
	let COLOR=255;
	let angleA=0;
	let angleB=0;
	let csd     = GetCurrentScriptDirectory;
	let imgEnemy=csd~"img\familiar.png";
	@Initialize
	{
		SetLife(30);
		SetX(GetEnemyX);
		SetY(GetEnemyY);
		SetMovePosition02(rand(cx-150,cx+150),rand(80,180),50);
	}
	
	@MainLoop
	{
		imgAngle+=4;
		if(imgAngle>360){imgAngle=0;}

		Zoom+=0.02;
		if(Zoom>1){Zoom=1;}

        	if(count>=50&&count<=100&&count%25==0)
        	{
        		angleA = GetAngleToPlayer;
        		angleB = rand(-0.2,0.2);
        		let shot01 = 1;
        		SetShotDirectionType(ABSOLUTE);
        		CreateShotA(shot01,GetX,GetY,5);
        		SetShotDataA(shot01,0,3,angleA,angleB,0.01,4,RED22);
        		SetShotDataA(shot01,30,NULL,NULL,0,0.01,4,RED22);
        		FireShot(shot01);
			CreateLaserC(2,GetX,GetY,10,50,RED01,0);
			SetLaserDataC(2,0,3,angleA,angleB,0.01,4);
			SetLaserDataC(2,30,NULL,NULL,0,0.01,4);
			FireShot(2);
        	}
        	if(count>100)
        	{
        		COLOR=COLOR-5.1;
        	}
        	if(count==150)
        	{
        		VanishEnemy();
        	}
		count++;
	}
	
	@Finalize
	{//ǂ݂񂾃t@C폜
	}
	
	@DrawLoop
	{//`
		SetGraphicRect(0,0,47,47);
		SetTexture(imgEnemy);
		SetGraphicScale(Zoom,Zoom);
		SetColor(COLOR,0,0);
		SetRenderState(ALPHA);
		SetGraphicAngle(0,0,imgAngle);
		DrawGraphic(GetX(),GetY());
		SetRenderState(ALPHA);
		SetGraphicAngle(0,0,-imgAngle);
		DrawGraphic(GetX(),GetY());
	}
}