#e
#Title[Tv]
#Text[Not蔲]
#Image[]
#BGM[]
#Player[FREE]
#PlayLevel[]
#BackGround[]
#ScriptVersion[2]

script_enemy_main {

    // XNvg܂ł̃pX̎擾
    let csd        = GetCurrentScriptDirectory();

    // G摜̃pX
    let imgBoss    = csd ~ "\ExRumia.png";

    // ʒu̐ݒ
    let xIni       = GetCenterX()  + 1;
    let yIni       = GetClipMinY() + 120;

    // e`t@C̃pX
    let shotData   = csd ~ "\shotdata_th128_alpha.txt";
    //let shotData   = csd ~ "\shotdata_th128_add.txt";

    @Initialize {

	LoadGraphic(imgBoss);
	SetTexture(imgBoss);

	SetLife(400);
	SetTimer(69);
	SetDamageRate(0,0);

	SetEnemyMarker(true);
	SetRateScoreSystemEnable(false);
	SetEffectForZeroLife(0, 0, 0);
	SetShotAutoDeleteClip(32, 32, 32, 32);

	LoadUserShotData(shotData);

	MainTask();

    }

    @MainLoop {
	SetCollisionA(GetX, GetY, 32);
	SetCollisionB(GetX, GetY, 32);

	yield;
    }

    @DrawLoop {
	DrawGraphic(GetX, GetY);
    }

    @Finalize {
	DeleteGraphic(imgBoss);
    }

    // C^XN
    task MainTask {

	yield;

	StandBy();
	loop {
	    Shot1();
	    loop(60) { yield; }
	    Shot2();
	    loop(60) { yield; }
	}
    }

    // ʒuֈړ
    function StandBy {
	SetMovePositionRandom01(416, 464, 5, xIni, yIni, xIni, yIni);
	SetGraphicMove();
	loop(60) { yield; }
	SetGraphicStop();
	loop(60) { yield; }
	SetDamageRate(20,0);
	SetGraphicPose();
    }

    // U1
    function Shot1 {

	let way      = 10;
	let long     = 5;
	let delay    = 12;
	let speed    = 2;
	let angle    = rand(0,360);
	let addangle = 1;
	let addspeed = -speed/60;
	let maxspeed = 0;
	let graphic  = 227;
	let graphic2 = 225;

	loop(10) {
	    loop(way) {
		CreateShotA(0,GetX+long*cos(angle),GetY+long*sin(angle),delay);
		SetShotDataA(0, 0,speed,angle,addangle,addspeed     ,maxspeed,graphic);
		SetShotDataA(0,90,NULL ,NULL ,addangle,-addspeed*1.5,100     ,graphic);
		FireShot(0);

		CreateShotA(0,GetX+long*cos(-angle),GetY+long*sin(-angle),delay);
		SetShotDataA(0, 0,speed,-angle,-addangle,addspeed     ,maxspeed,graphic2);
		SetShotDataA(0,90,NULL ,NULL  ,addangle ,-addspeed*1.5,100     ,graphic2);
		FireShot(0);

		angle += 360/way;
	    }
	    loop(3) { yield; }
	}
    }

    // U2
    function Shot2 {

	let way      = 10;
	let long     = 5;
	let delay    = 12;
	let speed    = 2;
	let angle    = rand(0,360);
	let addangle = -1;
	let addspeed = -speed/60;
	let maxspeed = 0;
	let graphic  = 227;
	let graphic2 = 225;

	loop(10) {
	    loop(way) {
		CreateShotA(0,GetX+long*cos(angle),GetY+long*sin(angle),delay);
		SetShotDataA(0, 0,speed,angle,addangle,addspeed     ,maxspeed,graphic);
		SetShotDataA(0,90,NULL ,NULL ,addangle,-addspeed*1.5,100     ,graphic);
		FireShot(0);

		CreateShotA(0,GetX+long*cos(-angle),GetY+long*sin(-angle),delay);
		SetShotDataA(0, 0,speed,-angle,-addangle,addspeed     ,maxspeed,graphic2);
		SetShotDataA(0,90,NULL ,NULL  ,addangle ,-addspeed*1.5,100     ,graphic2);
		FireShot(0);

		angle += 360/way;
	    }
	    loop(3) { yield; }
	}
    }

    // OtBbN̐ݒ
    sub SetGraphicStop  { SetGraphicRect(  0,  0, 64, 64); }
    sub SetGraphicPose  { SetGraphicRect( 64,  0,128, 64); }
    sub SetGraphicLeft  { SetGraphicRect(128,  0,192, 64); }
    sub SetGraphicRight { SetGraphicRect(192,  0,256, 64); }

    sub SetGraphicMove {
	if(GetSpeedX <  0) { SetGraphicLeft(); }
	else { SetGraphicRight(); }
    }

}