#e
#Title[ꂢI]
#Text[˃[U[Ղ@iY[͉̉]
#ScriptVersion[2]


script_enemy_main {
    //ʏݒ
    #include_function ".\INCLUDE\BOSS_INI.txt"

    let name        = "˂ꂦ";

    let wIni    = 100;

    @Initialize {
        SetMovePosition02(GetCenterX, GetClipMinY + 120, wIni);
        SetX(GetCenterX);
        SetY(GetClipMinY + 150);

        thMCutIn(1,name);
        SetLife(2500);		//Ct
        SetTimer(98);		//^C}[
        SetScore(4000000);	//{[iXXRA

        LoadGraphicthM;
        SetTexture(imgBoss);

        SetInvincibility(wIni);
        SetDamageRate(50, 50);

        TMain;
    }

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

        yield; 
    }

    @DrawLoop {
        BossDraw(1);
    }

    @Finalize {
	SpellClear;
        DeleteGraphic(imgBoss);
    }

    @BackGround {
	BgDraw;
    }

//==========================================================================================

    // C^XNiʂ͂ȍ~ҏWĂj
    task TMain {
        yield;
        loop(wIni) { yield; }

	Shot;
    }

    //CVbg
    task Shot{
	let f = 80;	//˂Ɣ˂̊Ԋu
	let way = 16;	//[U[way
	
	loop{
		ascent(let i in 0..way){
			LaserA(GetX, GetY, 1, (360/way)*i + GetAngleToPlayer, 2);
		}
		BossMoveEX(15);	//_ړ
		__wait(f);
	}
    }


//==========================================================================================
    // w t[҂
    function __wait(w) {
        loop(w) { yield; }
    }

//[U[^XN
//   @  x y		: ˈʒu
//   @	speed		: x
//   @	angle		: px
//   @	flag		: ˃tO
//   @	num		: c蔽ˉ
task LaserA(let x, let y, let speed, let angle, let num){
	//e^XN
	let count = 0;
	let id = 1001;
	let refangle = 0;
	
	let obj = Obj_Create(OBJ_LASER);//eIuWFNg쐬

	Obj_SetX(obj, x);//xWݒ
	Obj_SetY(obj, y);//yWݒ
	//Obj_SetSpeed(obj, speed);//xݒ
	Obj_SetAngle(obj, angle);//ړpxݒ
	
	//ˎc񐔂Fŕ\
	if(num == 2){
		ObjShot_SetGraphic(obj, US_RICE_S_RED);//摜ݒ
	}else if(num == 1){
		ObjShot_SetGraphic(obj, US_RICE_S_GREEN);//摜ݒ
	}else{
		ObjShot_SetGraphic(obj, US_RICE_S_YELLOW);//摜ݒ
	}
	Obj_SetAutoDelete(obj,false);//ʊOɏoe
	ObjShot_SetDelay(obj, 5);
	ObjShot_SetBombResist(obj,true);
	ObjShot_ToItem(obj,false);
	ObjLaser_SetLength(obj, 2);//[U[
	ObjLaser_SetSource(obj, false);//[U[
	ObjLaser_SetWidth(obj, 10);//[U[
	
	while( !Obj_BeDeleted(obj) ){ //폜܂Ń[vs
		if(speed < 6){
			speed += 0.1;
			Obj_SetSpeed(obj, speed);//xݒ
		}
		if(ObjLaser_GetLength(obj) < 150){
			ObjLaser_SetLength(obj, ObjLaser_GetLength(obj)+2);
		}else{
			x += cos(angle)*speed;
			y += sin(angle)*speed;
			Obj_SetX(obj, x);//xWݒ
			Obj_SetY(obj, y);//yWݒ
		}
		if(IsStageClip(ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 5) > 0 && num > 0){	//IsStageClipɂĂ ./INCLUDE/SHOT.txtQ
			//˒e==============================================
			
			//˂ǂŏύX
			alternative(IsStageClip(ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 5))
			case(1){	//ǔ
				refangle = 180 - angle;
				LaserA(ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 1, refangle, num-1);
				//ˌ܂pei˂ĂIȁj
				let id = 1001;
				CreateShotA(id, ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 35);
				SetShotDataA(id, 0, 0, 0, 0, 0, 0, US_RICE_M_SKY);
				SetShotKillTime(id, 0);
				FireShot(id);
			}
			case(2){	//ǔ
				refangle = 360 - angle;
				LaserA(ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 1, refangle, num-1);
				//ˌ܂pe
				let id = 1001;
				CreateShotA(id, ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 35);
				SetShotDataA(id, 0, 0, 0, 0, 0, 0, US_RICE_M_SKY);
				SetShotKillTime(id, 0);
				FireShot(id);
			}
			case(3){	//Eǔ
				refangle = 180 - angle;
				LaserA(ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 1, refangle, num-1);
				//ˌ܂pe
				let id = 1001;
				CreateShotA(id, ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 35);
				SetShotDataA(id, 0, 0, 0, 0, 0, 0, US_RICE_M_SKY);
				SetShotKillTime(id, 0);
				FireShot(id);
			}
			case(4){	//ǔ
				refangle = 360 - angle;
				LaserA(ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 1, refangle, num-1);
				//ˌ܂pe
				let id = 1001;
				CreateShotA(id, ObjLaser_GetEndX(obj), ObjLaser_GetEndY(obj), 35);
				SetShotDataA(id, 0, 0, 0, 0, 0, 0, US_RICE_M_SKY);
				SetShotKillTime(id, 0);
				FireShot(id);
			}
			others{
				//Ȃ
			}
			//=========================================================
			
			//Obj_Delete(obj);
			num = 0;
		}
		
		
		
		if(count > 500){ //500t[Ŏ
			ObjShot_FadeDelete(obj);
			break;
		}
		count++;
		yield;
	}
}



}