#e
#Title[z剃Q]
#Text[]
#BackGround[User(.\img\Sky.png,0,0)]
#BGM[]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main {
	let csd		=GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss	=csd ~ "img\Boss\.png";
	let Back	=csd ~ "img\Sky.png";

	@Initialize {
        SetLife(1);
	SetScore(10000);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	LoadGraphic(Back);
	Load;
	Expert;
        CutIn(YOUMU,"u₩ȉv", NULL, 0, 0, 0, 0);
        Main;
	}

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

	@DrawLoop {
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

	@BackGround {
	SetTexture(Back);
	SetGraphicRect(0, 0, 384, 457);
	SetGraphicAngle(0, 0, 0);
	DrawGraphic(224, 240);
	}

    task Main {
	yield;
	Att;
}

task Att{
	CreateEnemyFromScript("CIRNO", 440, 60, 0, 0, 0);
	CreateEnemyFromScript("DAIYOUSEI", -20, 100, 0, 0, 0);
	CreateEnemyFromScript("RUMIA", 416, -20, 0, 0, 0);
	CreateEnemyFromScript("MYSTIA", 224, -20, 0, 0, 0);
	CreateEnemyFromScript("LETTY", 0, 464, 0, 0, 0);
	CreateEnemyFromScript("WRIGGLE", 448, 464, 0, 0, 0);
	wait(580);
	AddLife(-1);	
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Sakuya.txt"
	#include_function ".\lib_Functions.txt"
}


script_enemy CIRNO{
	let csd     = GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss  = csd ~ "img\Boss\dot_cirno.png";

	@Initialize{
        SetLife(1);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	Load;
	Main;
	}

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

	@DrawLoop{
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

task	Main{
	yield;
	Att;	
}

task Att{
	shot;
	SetAngle(180);
	SetSpeed(2);
	SetAction(ACT_MOVE_L, 360);
}

task shot{
	loop{
	CreateGravityShot( GetX, GetY, 3, rand(30, 150), rand_int(49, 55), 0.1, rand(2, 3));
	CreateGravityShot( GetX, GetY, 3, rand(30, 150), rand_int(49, 55), 0.1, rand(2, 3));
	wait(1);
	yield;
	}
}


task CreateGravityShot( x, y, speed, angle, color, gravity, limit) {
	let Obj = Obj_Create(OBJ_SHOT);
	let g   = gravity;

	Obj_SetPosition(Obj, x, y);
	Obj_SetAngle(Obj, angle);
	ObjShot_SetGraphic(Obj, color);
	ObjShot_SetDelay(Obj, 10);

	let vX = speed * cos(angle);
	let vY = speed * sin(angle);

	wait(10);

	while(Obj_BeDeleted(Obj)==false) {
		Obj_SetPosition(Obj, Obj_GetX(Obj) + vX, Obj_GetY(Obj) + vY);
		Obj_SetAngle(Obj, atan2(vY, vX));

		if(vY < limit) { vY = vY + g;
		} else { vY = limit;
		}

		yield;
	}
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Patchouli.txt"
	#include_function ".\lib_Functions.txt"
}


script_enemy DAIYOUSEI{
	let csd     = GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss  = csd ~ "img\Boss\dot_daiyousei.png";

	@Initialize{
        SetLife(1);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	Load;
	Main;
	}

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

	@DrawLoop{
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

task	Main{
	yield;
	wait(60);
	Att;	
}

task Att{
	shot;
	SetAngle(0);
	SetSpeed(4);
	SetAction(ACT_MOVE_R, 360);
}

task shot{
	loop{
	CreateSarchShot( GetX, GetY, 3, rand(0, 360), rand_int(9, 15), rand_int(30, 60));
	CreateSarchShot( GetX, GetY, 3, rand(0, 360), rand_int(9, 15), rand_int(30, 60));
	wait(3);
	yield;
	}
}

task CreateSarchShot( x, y, speed, angle, color, time) {
	let Obj = Obj_Create(OBJ_SHOT);

	Obj_SetPosition(Obj, x, y);
	Obj_SetAngle(Obj, angle);
	Obj_SetSpeed(Obj, speed);
	ObjShot_SetGraphic(Obj, color);
	ObjShot_SetDelay(Obj, 0);

	wait(time);
	Obj_SetSpeed(Obj, 0);
	wait(60);
	Obj_SetAngle(Obj, atan2(GetPlayerY-Obj_GetY(Obj), GetPlayerX-Obj_GetX(Obj)));
	Obj_SetSpeed(Obj, speed);
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Daiyousei.txt"
	#include_function ".\lib_Functions.txt"
}


script_enemy WRIGGLE{
	let csd     = GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss  = csd ~ "img\Boss\dot_wriggle.png";

	@Initialize{
        SetLife(1);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	Load;
	Main;
	}

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

	@DrawLoop{
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

task	Main{
	yield;
	wait(420);
	Att;	
}

task Att{
	shot;
	SetAngle(225);
	SetSpeed(6);
	SetAction(ACT_MOVE_L, 240);
}

task shot{
	let A=0;
	loop{
	let angle=0;
	while(angle<360){
	CreateShotA(1, GetX, GetY, 0);
	SetShotDataA(1, 0, 1.5, angle+A, 0.5, 0, 1, 108);
	SetShotDataA(1, 240, 1.5, NULL, 0.3, 0, 1, 108);
	FireShot(1);
	angle+=30;
	}
	A+=5;
	wait(30);
	yield;
	}
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Sangetusei.txt"
	#include_function ".\lib_Functions.txt"
}


script_enemy MYSTIA{
	let csd     = GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss  = csd ~ "img\Boss\dot_mystia.png";

	@Initialize{
        SetLife(1);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	Load;
	Main;
	}

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

	@DrawLoop{
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

task Main{
	yield;
	wait(240);
	standBy;
	Att;	
}

	sub standBy{
		SetMovePosition03(224, 200, 10, 7);
		SetAction(ACT_MOVE, 60);
		wait(120);
}

task Att{
	SetAction(ACT_SHOT_A, 50);
	shotA;
	shotB;
	wait(30);
	shotA;
	shotB;
	wait(30);
	SetAngle(180);
	SetSpeed(8);
	SetAction(ACT_MOVE_L, 240);
}

task shotA{
	CreateSarchShot( GetX, GetY, 1, -30, 119);
	CreateSarchShot( GetX, GetY, 1, 210, 119);
	CreateSarchShot( GetX, GetY, 1.5, -30, 117);
	CreateSarchShot( GetX, GetY, 1.5, 210, 117);
	CreateSarchShot( GetX, GetY, 2, -30, 116);
	CreateSarchShot( GetX, GetY, 2, 210, 116);
	CreateSarchShot( GetX, GetY, 2.5, -30, 115);
	CreateSarchShot( GetX, GetY, 2.5, 210, 115);
}

task shotB{
	CreateSarchShot( GetX, GetY, 1, -60, 119);
	CreateSarchShot( GetX, GetY, 1, 240, 119);
	CreateSarchShot( GetX, GetY, 1.5, -60, 117);
	CreateSarchShot( GetX, GetY, 1.5, 240, 117);
	CreateSarchShot( GetX, GetY, 2, -60, 116);
	CreateSarchShot( GetX, GetY, 2, 240, 116);
	CreateSarchShot( GetX, GetY, 2.5, -60, 115);
	CreateSarchShot( GetX, GetY, 2.5, 240, 115);
}

task CreateSarchShot( x, y, speed, angle, color){
	let Obj = Obj_Create(OBJ_SHOT);

	Obj_SetPosition(Obj, x, y);
	Obj_SetAngle(Obj, angle);
	Obj_SetSpeed(Obj, speed);
	ObjShot_SetGraphic(Obj, color);
	ObjShot_SetDelay(Obj, 0);

	wait(60);
	Obj_SetAngle(Obj, atan2(GetPlayerY-Obj_GetY(Obj), GetPlayerX-Obj_GetX(Obj)));
	Obj_SetSpeed(Obj, 3);
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Mystia.txt"
	#include_function ".\lib_Functions.txt"
}


script_enemy LETTY{
	let csd     = GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss  = csd ~ "img\Boss\dot_letty.png";

	@Initialize{
        SetLife(1);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	Load;
	Main;
	}

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

	@DrawLoop{
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

task	Main{
	yield;
	wait(420);
	Att;	
}

task Att{
	shot;
	SetAngle(-45);
	SetSpeed(6);
	SetAction(ACT_MOVE_R, 240);
}

task shot{
	loop{
	CreateGravityShot( GetX, GetY, 2, rand(0, 360), 248, 0.1, 2);
	CreateGravityShot( GetX, GetY, 2, rand(0, 360), 248, 0.1, 2);
	CreateGravityShot( GetX, GetY, 2, rand(0, 360), 248, 0.1, 2);
	wait(2);
	yield;
	}
}

task CreateGravityShot( x, y, speed, angle, color, gravity, limit) {
	let Obj = Obj_Create(OBJ_SHOT);
	let g   = gravity;

	Obj_SetPosition(Obj, x, y);
	Obj_SetAngle(Obj, angle);
	ObjShot_SetGraphic(Obj, color);
	ObjShot_SetDelay(Obj, 0);

	let vX = speed * cos(angle);
	let vY = speed * sin(angle);

	wait(10);

	while(Obj_BeDeleted(Obj)==false) {
		Obj_SetPosition(Obj, Obj_GetX(Obj) + vX, Obj_GetY(Obj) + vY);
		Obj_SetAngle(Obj, atan2(vY, vX));

		if(vY < limit) { vY = vY + g;
		} else { vY = limit;
		}

		yield;
	}
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Sangetusei.txt"
	#include_function ".\lib_Functions.txt"
}


script_enemy RUMIA{
	let csd     = GetCurrentScriptDirectory;
	let shotData	=csd ~ "img\shot_All.txt";
	let imgBoss  = csd ~ "img\Boss\dot_rumia.png";

	@Initialize{
        SetLife(1);
	SetDamageRate(0, 0);
	InitializeAction();
	LoadUserShotData(shotData);
	LoadGraphic(imgBoss);
	Load;
	Main;
	}

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

	@DrawLoop{
	SetColor(255,255,255);
	SetGraphicScale(1,1);
	SetAlpha(255);
	DrawBoss(imgBoss);
	}

task	Main{
	yield;
	wait(240);
	Att;	
}

task Att{
	shot;
	SetAngle(135);
	SetSpeed(7);
	SetAction(ACT_MOVE_L, 240);
}

task shot{
	loop{
	let angle=0;
	while(angle<360){
	CreateShot01(GetX, GetY, 2, angle, 115, 0);
	angle+=60;
	}
	wait(5);
	yield;
	}
}

	@Finalize{
	DeleteGraphic(imgBoss);
	Delete;
	}

	#include_function ".\lib\lib_anime_Sangetusei.txt"
	#include_function ".\lib_Functions.txt"
}