#e
#Title[󒲁uƂv]
#ScriptVersion[2]
#Player[FREE]
#Text[_CLđHƂ̗Ȃ񂾂]

script_enemy_main
{
let GC=GetCurrentScriptDirectory;
@Initialize
{
PlayMusic("bgm\ururu");
LoadGraphic(GC~".\main.png");
SetTexture(GC~".\main.png");
SetGraphicRect(0,0,32,40);
SetLife(6000);
SetDamageRate(10,10);
SetTimer(80);
CutIn(KOUMA,"󒲁uƂv","",0,0,0,0);
SetScore(100000);
Tmain;
Tback;
}
@MainLoop
{
SetCollisionA(GetX,GetY,24);
SetCollisionB(GetX,GetY,12);
yield;
}
@DrawLoop
{DrawGraphic(GetX,GetY);}
@Finalize
{
AddScore(10000);
loop(30){CreateItem(ITEM_SCORE,GetX+rand(-40,40),GetY+rand(-30,30));}
}

task Tmain
{
loop(60){yield};
SetMovePosition03(GetCenterX,GetClipMinY+120,15,8);
loop(60){yield};
Tururu;
Tsarara;
loop
	{
	let dx=-25;
	loop(11)
		{
		CreateEnemyFromScript("brawer",GetX,GetY,0,0,dx);
		dx=dx+5;
		}
	loop(90){yield};
	SetDamageRate(100,50);
	if(GetLife<3000||GetTimer<30){Tattack;}
	loop(2)
		{
		move;
		loop(90){yield};
		}
	}
}

function move
{
let left=1;
if(GetX>GetPlayerX)
	{
	if(absolute(GetX-GetClipMinX)<=60){left=1;}
	else{left=-1;}
	}
else
	{
	if(absolute(GetX-GetClipMaxX)<=60){left=-1;}
	else{left=1;}
	}
let TX=rand(50,70)*left;
let TY=rand(GetClipMinY+80,GetClipMinY+120);
if(TX<0){pattern(1);}
else{pattern(2);}
SetMovePosition03(GetX+TX,TY,20,5);
loop(70){yield};
pattern(0);
}

task Tattack
{
loop(6)
	{
	let angle=GetAngleToPlayer-50;
	loop(6)
		{
		CreateShot01(GetX,GetY,1,angle,BLUE02,10);
		angle=angle+20;
		}
	loop(24){yield};
	}
}

task Tsarara
{
loop(4){yield};
loop
	{
	let TX=rand(GetClipMinX,GetClipMaxX);
	let TY=rand(GetClipMinY+50,GetClipMaxY);
	if(absolute(GetPlayerX-TX)<30&&absolute(GetPlayerY-TY)<30){}
	else{CreateShot01(TX,TY,0.5,rand(0,360),GREEN05,40);}
	loop(8){yield};
	}
}

task Tururu
{
loop
	{
	let TX=rand(GetClipMinX,GetClipMaxX);
	let TY=rand(GetClipMinY+50,GetClipMaxY);
	if(absolute(GetPlayerX-TX)<30&&absolute(GetPlayerY-TY)<30){}
	else{Twater(TX,TY);}
	loop(8){yield};
	}
}

task Twater(TX,TY)
{
let water=Obj_Create(OBJ_SHOT);
Obj_SetPosition(water,TX,TY);
Obj_SetAngle(water,90);
Obj_SetSpeed(water,0);
ObjShot_SetGraphic(water,BLUE23);
ObjShot_SetDelay(water,40);
while(Obj_BeDeleted(water)==false)
	{
	Obj_SetPosition(water,Obj_GetX(water),Obj_GetY(water)-0.4);
	yield;
	}
}


function pattern(pat)
{
let width=32;

SetGraphicRect(pat*width,0,pat*width+width,40);
}

task Tback
{
let back=Obj_Create(OBJ_EFFECT);
Obj_SetPosition(back,GetCenterX,GetCenterY);
LoadGraphic(GC~".\back.png");
ObjEffect_SetTexture(back,GC~".\back.png");
ObjEffect_SetPrimitiveType(back,PRIMITIVE_TRIANGLESTRIP);
ObjEffect_CreateVertex(back,20);
ObjEffect_SetLayer(back,0);
let index=0;
let vy=-250;
loop(11)
	{
	ObjEffect_SetVertexXY(back,index,-200,vy);
	ObjEffect_SetVertexXY(back,index+1,200,vy);
	ObjEffect_SetVertexColor(back,index,200,255,255,255);
	ObjEffect_SetVertexColor(back,index+1,200,255,255,255);
	index=index+2;
	vy=vy+55;
	}

let uy=0;
let left=0.7;
let bangle=90;
let alpha=0;
loop
	{
	index=0;
	let dy=0;	
	loop(11)
		{
		ObjEffect_SetVertexUV(back,index,0+120*cos(bangle-index*4),uy+dy+30*cos(bangle-index*4));
		ObjEffect_SetVertexUV(back,index+1,200+120*cos(bangle-index*4),uy+dy+30*cos(bangle-index*4));
		ObjEffect_SetVertexColor(back,index,alpha,255,255,255);
		ObjEffect_SetVertexColor(back,index+1,alpha,255,255,255);
		dy=dy+25;
		index=index+2;
		}
	uy=uy+2;
	bangle=(bangle+left)%360;
	if(alpha<200){alpha=alpha+1};
	yield;
	}
}

}

script_enemy brawer
{
let GC=GetCurrentScriptDirectory;
let dx=GetArgument;
@Initialize
{
LoadGraphic(GC~".\magic.png");
SetTexture(GC~".\magic.png");
SetGraphicRect(0,0,48,48);
SetGraphicScale(0.5,0.5);
SetLife(3000);
SetDamageRate(10,10);
Tmain;
}
@MainLoop
{
SetCollisionA(GetX,GetY,10);
yield;
}
@DrawLoop
{DrawGraphic(GetX,GetY);}
@Finalize
{
AddScore(1000);
}

task Tmain
{
let CX=GetCenterX+(GetPlayerX-GetCenterX)*3/4;
SetMovePosition03(CX+dx*4,GetClipMinY,15,6);
loop(120){yield};
let sangle=atan2(GetPlayerY-GetY,GetPlayerX-CX);
let cangle=atan2(GetCenterY-GetY,GetCenterX-CX);
if(sangle-cangle>180){cangle=cangle+360;}
else if(sangle-cangle<-180){cangle=cangle-360;}
let left=1;
if(sangle-cangle>0){left=-1};
let angle=sangle-30*left-dx;
loop(40)
	{
	Tair(angle,left);
	angle=angle+2.5*left;
	loop(8){yield};
	}
loop(180){yield};
let alpha=255;
loop(63)
	{
	alpha=alpha-4;
	SetAlpha(alpha);
	yield;
	}
loop(60){yield};
VanishEnemy;
}

task Tair(angle,left)
{
let air=Obj_Create(OBJ_SHOT);
Obj_SetPosition(air,GetX,GetY);
Obj_SetAngle(air,angle);
Obj_SetSpeed(air,3.5);
ObjShot_SetGraphic(air,BLUE04);
while(Obj_BeDeleted(air)==false)
	{
	Obj_SetX(air,Obj_GetX(air)+(Obj_GetX(air)-GetCenterX)*Obj_GetY(air)/GetClipMaxY/200);
	Obj_SetY(air,Obj_GetY(air)-2.9*Obj_GetY(air)/GetClipMaxY);
	yield;
	}
}

}