

script_enemy_main {
	let imgBoss     = "script\l\img\dot_yuyuko.png";
	#include_function ".\lib\lib_anime_Yuyuko.txt"
	let name = "S҂̑M";
	let xf        = GetClipMaxX / 2 +16;
    let yf        = GetClipMinY + 64;
    let cx=GetCenterX();
@Initialize {
		SetX(GetCenterX);
        SetY(GetClipMinY + 120);
        SetLife(600);
        SetTimer(60);
        SetScore(4000000);
        SetDamageRate(0, 0);
        LoadGraphic(imgBoss);
        SetTexture(imgBoss);
        SetGraphicRect(0, 0, 63, 63);
        CutIn(YOUMU, name, "", 0, 0, 0, 0);
		TMain;
	}
	@MainLoop {
        SetCollisionA(GetX, GetY, 32);
        SetCollisionB(GetX, GetY, 16);

        yield;
    }
    @DrawLoop {
       DrawBoss( imgBoss );
    }

    @Finalize {
        DeleteGraphic(imgBoss);
        loop(7)
		{
			CreateItem(ITEM_SCORE,cx+rand(-100,100),rand(20,100));
		}
		
    }
    task TMain {
        yield;
        fMove;
        concentration;
        BossShotL;
        BossShotNA;
        BossShotNB;
        loop{
	        
        LaserA;
        LaserB;
        LaserC;
        LaserD;
        LaserF;
       }
      }
        sub concentration {
	    let con = 0;
        let wConc = 100;
        Concentration01(wConc);
        wait(wConc);
        SetDamageRate(20, 20);
        SetAction( ACT_STAND, 1 );
    }
	sub fMove {
		SetMovePosition02(xf, yf, 60);
		SetAction(ACT_SPELL, 60);
	}
	
	task BossShotL {
		let LAA = 6;
		loop{
		CreateLaserB(LAA, 8, 20, RED01, 0);
		SetLaserDataB(LAA, 0, 0, 20, 0, 90, 0, 90, 0);
		SetLaserDataB(LAA, 2, 2, NULL, 0, NULL, 0, NULL, rand(1,-1));
		SetShotKillTime(LAA, 360);
		FireShot(LAA);
		wait(390)
	}
	
		
	}
	task BossShotNA {
		loop{
		let ntx = 0;
		loop(24) {
		let NB = 7;
		let angle = GetAngleToPlayer + ntx;
		CreateShotA(NB, GetX, GetY, 0);
		SetShotDataA(NB, 0, 2, angle, 5, 0, 2, BLUE22);
		SetShotDataA(NB, 30, 0, NULL, 0, 0, 0, BLUE22);
		SetShotDataA(NB, 50, 3, NULL, 0, 0, 3, BLUE22);		
		FireShot(NB);
		ntx += 15;
	}
		wait(30);
	}
}
	task BossShotNB {
		loop{
		let ntxb = 0;
		loop(24) {
		let NBB = 7;
		let angle = GetAngleToPlayer + ntxb;
		CreateShotA(NBB, GetX, GetY, 0);
		SetShotDataA(NBB, 0, 2, angle, -5, 0, 2, RED22);
		SetShotDataA(NBB, 30, 0, NULL, 0, 0, 0, RED22);
		SetShotDataA(NBB, 50, 3, NULL, 0, 0, 3, RED22);		
		FireShot(NBB);
		ntxb += 15;
	}
		wait(30);
	}
}
	
	sub LaserA {
		let LA = 1;
		let ALaserBx = rand(GetClipMinX, GetClipMaxX);
		let ALaserEx = rand(GetClipMinX, GetClipMaxX);
		let ALaserBy = GetClipMaxY;
		let ALaserEy = GetClipMinY-100;
		let LMove = 20;
		let span  = GetGapLength(ALaserBx, ALaserBy, ALaserEx, ALaserEy) /LMove;
		CreateLaserA(LA, ALaserBx, GetClipMaxY, 0, 30, RED01, 60);
		SetLaserDataA(LA, 0, rand(-40, -140), 0, span, 0, 0);
		SetLaserDataA(LA, LMove, NULL, 0, 0, 0, 0);
		SetShotKillTime(LA, 130);
		FireShot(LA);
		wait(50)
}
sub LaserB {
		let LB = 2;
		let BLaserBx = rand(GetClipMinX, GetClipMaxX);
		let BLaserEx = rand(GetClipMinX, GetClipMaxX);
		let BLaserBy = GetClipMaxY;
		let BLaserEy = GetClipMinY-100;
		let LMoveb = 20;
		let spanb  = GetGapLength(BLaserBx, BLaserBy, BLaserEx, BLaserEy) /LMoveb;
		CreateLaserA(LB, BLaserBx, GetClipMaxY, 0, 30, BLUE01, 60);
		SetLaserDataA(LB, 0, rand(-40, -140), 0, spanb, 0, 0);
		SetLaserDataA(LB, LMoveb, NULL, 0, 0, 0, 0);
		SetShotKillTime(LB, 130);
		FireShot(LB);
		wait(50)
}
sub LaserC {
		let LC = 3;
		let CLaserBy = rand(GetClipMinY, GetClipMaxY);
		let CLaserEy = rand(GetClipMinY, GetClipMaxY);
		let CLaserBx = GetClipMinX;
		let CLaserEx = GetClipMaxX+100;
		let LMovec = 20;
		let spanc  = GetGapLength(CLaserBx, CLaserBy, CLaserEx, CLaserEy) /LMovec;
		CreateLaserA(LC, CLaserBx, CLaserBy, 0, 30, GREEN01, 60);
		SetLaserDataA(LC, 0, rand(-50, 50), 0, spanc, 0, 0);
		SetLaserDataA(LC, LMovec, NULL, 0, 0, 0, 0);
		SetShotKillTime(LC, 130);
		FireShot(LC);
		wait(50)
}

sub LaserD {
		let LD = 4;
		let DLaserBy = rand(GetClipMinY, GetClipMaxY);
		let DLaserEy = rand(GetClipMinY, GetClipMaxY);
		let DLaserBx = GetClipMinX;
		let DLaserEx = GetClipMaxX+100;
		let LMoved = 20;
		let spand  = GetGapLength(DLaserBx, DLaserBy, DLaserEx, DLaserEy) /LMoved;
		CreateLaserA(LD, DLaserBx, DLaserBy, 0, 30, YELLOW01, 60);
		SetLaserDataA(LD, 0, rand(-50, 50), 0, spand, 0, 0);
		SetLaserDataA(LD, LMoved, NULL, 0, 0, 0, 0);
		SetShotKillTime(LD, 130);
		FireShot(LD);
		wait(50)
}

		sub LaserF {
		let LF = 5;
		let FLaserBy = rand(GetClipMinY, GetClipMaxY);
		let FLaserEy = rand(GetClipMinY, GetClipMaxY);
		let FLaserBx = GetClipMinX;
		let FLaserEx = GetClipMaxX+100;
		let LMovef = 20;
		let Fkaku = GetGapAngle(FLaserBx, FLaserBy, GetPlayerX, GetPlayerY);
		let spanf  = GetGapLength(FLaserBx, FLaserBy, FLaserEx, FLaserEy) /LMovef;
		CreateLaserA(LF, FLaserBx, FLaserBy, 0, 30, WHITE01, 60);
		SetLaserDataA(LF, 0, Fkaku, 0, spanf, 0, 0);
		SetLaserDataA(LF, LMovef, NULL, 0, 0, 0, 0);
		SetShotKillTime(LF, 130);
		FireShot(LF);
		wait(50)
}
	sub setGraphicMove {
        if(GetSpeedX < 0) {
            SetAction( ACT_MOVE_L, 1 );
        } else {
            SetAction( ACT_MOVE_R, 1 );
        } 
       }
#include_function ".\prg\function_value.txt"
    function wait(w) {
        loop(w) { yield; }
    }
   }