#e
#Title[̐}`ĐwpŉČ񂾂H]
#Text[ȂĂAÂƑcIȥA]
#PlayLevel[Normal]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main {
	#include_function ".\lib\Common.dnh"
	#include_function ".\lib\lib_anime_Mokou.dnh"
	
	let name = "cIȃA";
	let bossImg = CSD ~ "img\dot_mokou.png";
	let back = CSD ~ "img\back2.png";
	
	let xIni = cx;
	let yIni = GetClipMinY + 64;
	let wIni = 120;
	
	@Initialize {
		SetLife(2500);
		SetDamageRate(30, 30);
		SetScore(2500000);
		SetTimer(60);
		
		LoadUserShotData(CSD ~ "img\shot_All.dnh");
		LoadGraphic(bossImg);
		LoadGraphic(back);
		
		CutIn(YOUMU, name, "", 0, 0, 0, 0);
		
		InitializeAction;
		rand_initialize(1);
		
		TMain;
	}

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

	@DrawLoop {
		DrawBoss(bossImg);
	}

	@Finalize {
		DeleteGraphic(bossImg);
	}

	@BackGround {
		SetGraphicRect(0, 0, 384, 448);
		SetTexture(back);
		DrawGraphic(cx, cy);
	}
	
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
	
	task TMain {
		getReady(wIni);
		yield;
		
		shot(cx              , cy               , 96, 48, 4,  90,  2,  RED + RICE);
		shot(cx + (WIDTH / 4), cy - (HEIGHT / 4), 48, 24, 4,  45,  3, BLUE + RICE);
		shot(cx - (WIDTH / 4), cy - (HEIGHT / 4), 48, 24, 4, 135, -3, BLUE + RICE);
		
		wait(600);
		
		shot(cx    + (WIDTH / 5), cy - (HEIGHT / 16), 64, 32, 4, 135,  2,  RED + RICE);
		shot(cx    - (WIDTH / 5), cy - (HEIGHT / 16), 64, 32, 4,  45, -2,  RED + RICE);
		shot(LEFT  + (WIDTH / 5), cy - (HEIGHT /  4), 48, 32, 5,  45, -3, BLUE + RICE);
		shot(RIGHT - (WIDTH / 5), cy - (HEIGHT /  4), 48, 32, 5, 135,  3, BLUE + RICE);
		
		wait(575);
		
		shot(cx                 , cy - (HEIGHT /  6), 96, 48, 6, -90,  2, GREEN + RICE);
		shot(cx    + (WIDTH / 6), cy - (HEIGHT / 16), 64, 40, 4, 135,  3,   RED + RICE);
		shot(cx    - (WIDTH / 6), cy - (HEIGHT / 16), 64, 40, 4,  45, -3,   RED + RICE);
		shot(LEFT  + (WIDTH / 6), cy - (HEIGHT /  4), 48, 32, 5,  45, -4,  BLUE + RICE);
		shot(RIGHT - (WIDTH / 6), cy - (HEIGHT /  4), 48, 32, 5, 135,  4,  BLUE + RICE);
	}
	
	task shot(_x, _y, r1, r2, vertex, baseAngle, omega, type) {
		let cx1 = _x;
		let cy1 = _y;
		let angle2 = baseAngle;
		let angle3 = baseAngle;
		
		let cx2;
		let cy2;
		
		let x;
		let y;
		
		let id = 0;
		let w = 400;
		
		loop {
			cx2 = cx1 + cos(angle2) * (r1 - r2);
			cy2 = cy1 + sin(angle2) * (r1 - r2);
			
			x = cx2 + cos(angle3) * r2;
			y = cy2 + sin(angle3) * r2;
			
			CreateShotA(id, x, y, 5);
			SetShotDataA(id, 0, 0, angle3 + 92, 0, 0, 0, type);
			SetShotDataA(id, w - id, 0.5, NULL, 0, 0.0001, 1, type);
			FireShot(id);
			
			angle2 += omega;
			angle3 -= omega * (vertex - 1);
			id++;
			yield;
			
			if(angle2 > 360 + baseAngle || angle2 < -360 + baseAngle) {
				break;
			}
		}
	}
}