// 弾の発射をサポートするインクルード専用スクリプトです
// nway弾などが詰まってます

//---------------------------------------------------------------------------------

//nway弾を発射する関数です。パラメータは以下の通り
//発射位置XY　速度　ゼロ位置角度　角速度　加速度　最大速度　弾画像　ディレイ　発射way数
function CreateShotNway01(let nX, let nY, let Speed, let Angle, let addAngle, let addSpeed, let limitSpeed, let Shot, let delay, let way){
	//弾ID
	let id = 1101;
	
	//禁則処理
	if(way <= 0){ return ; }
	if(delay < 0){ return ; }

	let sepAngle = 360 / way;
	ascent(let i in 0..way){
		CreateShotA(id, nX, nY, delay);
		SetShotDataA(id, 0, Speed, Angle + i*sepAngle, addAngle, addSpeed, limitSpeed, Shot);
		FireShot(id);
	}
}

//連打型のnway弾を発射するタスクです。パラメータは以下の通り
//発射位置XY　速度　ゼロ位置角度　角速度　加速度　最大速度　弾画像　ディレイ　発射way数　連射数　発射間隔
function CreateShotNway02(let nX, let nY, let Speed, let Angle, let addAngle, let addSpeed, let limitSpeed, let Shot, let delay, let way, let tk, let w){
	//弾ID
	let id = 1101;
	
	//禁則処理
	if(way <= 0){ return ; }
	if(delay < 0){ return ; }
	if(w <= 0){ return ; } 

	let sepAngle = 360 / way;
	ascent(let j in 0..tk){
		ascent(let i in 0..way){
			CreateShotA(id, nX, nY, delay);
			SetShotDataA(id, 0, Speed, Angle + i*sepAngle, addAngle, addSpeed, limitSpeed, Shot);
			FireShot(id);
		}
		loop(w){ yield; }
	}
}


//nway弾を一定方向に発射する関数です。パラメータは以下の通り
//発射位置XY　速度　ゼロ位置角度　角速度　加速度　最大速度　弾画像　ディレイ　発射way数　ゼロ位置角度からの＋−範囲
function CreateShotNway11(let nX, let nY, let Speed, let Angle, let addAngle, let addSpeed, let limitSpeed, let Shot, let delay, let way, let rad){
	//弾ID
	let id = 1101;
	
	//禁則処理
	if(way <= 0){ return ; }
	if(delay < 0){ return ; }

	let start = Angle - rad;
	let sepAngle = rad*2 / (way-1);
	ascent(let i in 0..way){
		CreateShotA(id, nX, nY, delay);
		SetShotDataA(id, 0, Speed, start + i*sepAngle, addAngle, addSpeed, limitSpeed, Shot);
		FireShot(id);
	}
}

//連打型のnway弾を一定方向に発射するタスクです。パラメータは以下の通り
//発射位置XY　速度　ゼロ位置角度　角速度　加速度　最大速度　弾画像　ディレイ　発射way数　連射数　発射間隔　ゼロ位置角度からの＋−範囲
function CreateShotNway12(let nX, let nY, let Speed, let Angle, let addAngle, let addSpeed, let limitSpeed, let Shot, let delay, let way, let tk, let w, let rad){
	//弾ID
	let id = 1101;
	
	//禁則処理
	if(way <= 0){ return ; }
	if(delay < 0){ return ; }
	if(w <= 0){ return ; } 

	let start = Angle - rad;
	let sepAngle = rad*2 / (way-1);
	ascent(let j in 0..tk){
		ascent(let i in 0..way){
			CreateShotA(id, nX, nY, delay);
			SetShotDataA(id, 0, Speed, start + i*sepAngle, addAngle, addSpeed, limitSpeed, Shot);
			FireShot(id);
		}
		loop(w){ yield; }
	}
}











