#e
#Title[KIRINu䃈[OgvOMAKE]
#Text[̒e͊Ϗܗpł]
#ScriptVersion[2]


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

    let name        = "KIRINu䃈[Ogv";

    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 = 45;	//˂Ɣ˂̊Ԋu
	let f2 = 1;	//˂̊Ԋu
	let f3 = 45;	//˂Ɣ˂̊ԊuQ
	let tk = 8;	//ː
	let tdist = 10;	//Pi̋
	let dist = 50;	//S̋
	let tangle = 5;	//pxZp
	let way = 20;	//way
	let totalangle = 540;//vpx
	let gap = 0;//@ւ̊px
	let budou = 23;//Ԃǂe
	
	loop{
		gap = GetAngleToPlayer;
		ascent(let j in 0..way){
			ascent(let i in 0..tk){
				let angle = (totalangle/way)*j + i*tangle + gap + 90;
				CreateShot02(GetX + cos(angle)*(tdist*i+dist), GetY + sin(angle)*(tdist*i+dist), 0, angle, +0.04, 8, US_RICE_S_GREEN, 15);
			}
			__wait(f2);
		}
		
		__wait(f3);
		
		//˂e
		gap = GetAngleToPlayer;
		ascent(let j in 0..way){
			ascent(let i in 0..tk){
				let angle = -(totalangle/way)*j - i*tangle - gap - 90;
				ShotA(GetX + cos(angle)*(tdist*i+dist), GetY + sin(angle)*(tdist*i+dist), 0, angle);
			}
			__wait(f2);
		}
		
		BossMoveEX(15);
		__wait(f);
	}
    }


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


//Vbg^XN
//   @  x y		: ˈʒu
//   @	speed		: x
//   @	angle		: px
task ShotA(let x, let y, let speed, let angle){
	//e^XN
	let count = 0;
	let id = 1001;
	let refangle = 0;
	let tno = 0;
	
	let obj = Obj_Create(OBJ_SHOT);//eIuWFNg쐬

	Obj_SetX(obj, x);//xWݒ
	Obj_SetY(obj, y);//yWݒ;
	Obj_SetSpeed(obj, speed);//xݒ
	Obj_SetAngle(obj, angle);//ړpxݒ
	ObjShot_SetGraphic(obj, US_RICE_S_GREEN);//摜ݒ
	Obj_SetAutoDelete(obj,false);//ʊOɏoe
	ObjShot_SetDelay(obj, 25);
	ObjShot_SetBombResist(obj,true);
	ObjShot_ToItem(obj,false);
	
	while( !Obj_BeDeleted(obj) ){ //폜܂Ń[vs
		speed += 0.04;
		Obj_SetSpeed(obj, speed);
		
		//if(IsStageClip(Obj_GetX(obj), Obj_GetY(obj), 5) > 0){	//IsStageClipɂĂ ./INCLUDE/SHOT.txtQ
			//˒e==============================================
			
			//˂ǂŏύX
			if(IsStageClip(Obj_GetX(obj), Obj_GetY(obj), 5) == 2){
				refangle = 360 - angle + rand(-65,45);
				
				ascent(let i in 0..20){
					CreateShotA(id, Obj_GetX(obj) + cos(18*i + 90)*20, Obj_GetY(obj) + sin(18*i + 90)*20, 45);
					SetShotDataA_XY(id, 0, SAtoS_X(1.5,refangle), SAtoS_Y(1.5,refangle), 0, +0.02, 1, 4, US_BALL_S_WHITE);
					FireShot(id);
				}
				CreateShotA(id, Obj_GetX(obj), Obj_GetY(obj), 45);
				SetShotDataA_XY(id, 0, SAtoS_X(1.5,refangle), SAtoS_Y(1.5,refangle), 0, +0.02, 1, 4, US_BALL_M_WHITE);
				FireShot(id);
				
				Obj_Delete(obj);
				
			}
			//=========================================================
			
			//Obj_Delete(obj);
		//}
		
		
		
		if(count > 500){ //500t[Ŏ
			ObjShot_FadeDelete(obj);
			break;
		}
		count++;
		yield;
	}
}

}