
#Title[サニー１]
#Text[]
#Image[.]
#BackGround[User]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let csd = GetCurrentScriptDirectory;
    let imgBoss =csd ~ "..\lib/dot_sunnymilk.png"; 
    // 初期位置
    let xIni    = GetCenterX;
    let yIni    = GetClipMinY + 128;
	let wIni=60;
let TimeCounter=45*60;
let StandardTimeCounter=TimeCounter;
    @Initialize {
	if(GetCommonDataDefault("ExclusiveBoss",false)==true)
	{
		BossTimer(TimeCounter);
	}
	else
	{
		SetTimer(TimeCounter/60);
	}
        SetLife(3600);
	InitializeAction();
	SetEnemyMarker(true);
        TMain;
    }

    @MainLoop {
	SetCommonData("BossX",GetX);
	SetCommonData("BossY",GetY);
	SetCommonData("BossLife",GetLife);
	BulletNum=GetEnemyShotCount;
	TimeCounter-=1;
        yield;
    }

    @DrawLoop {
	DrawBoss( imgBoss );
    }

    @Finalize {
	DeleteAllEnemyWithoutBoss;
	SetCommonData("BossX",GetX);
	SetCommonData("BossY",GetY);
	SetCommonData("BossLife",GetLife);
	DeleteEnemyShotToItem(ALL);
		if(!IsTimeOut)
		{
		SetCommonData("DeleteBulletNum",BulletNum);
		SetCommonData("DeleteBulletX",GetX);
		SetCommonData("DeleteBulletY",GetY);
		}
		if(!OnBomb)
		{
			ExtendItemSet(GetX,GetY,2);
		}
		else
		{
			AchievementSet(93);
		}
	SetCommonData("VanishSignal",false);
	SetCommonData("TimeBonus",TimeCounter/StandardTimeCounter);
	SetCommonData("BossRate",300000);
    }

    // メインタスク
task TMain 
{
	yield;
	GetDamege;
	OutDamageRateZero;
	//Lissajous(255,255,127);
	BossShadowAnimation(imgBoss2,0,255,69,30);
	standBy;
	Collision;
	wait(60);
	Concentration01(30);
	wait(30);
	alternative(GetCommonDataDefault("SELECTEDDIFFICULT","None"))
	case("Moderate")
	{
	shotM;
	}
	case("Extream")
	{
	shotE;
	}
	case("Apocalypse")
	{
	shotA;
	}

	ZakoVanish;
}

task Collision
{
	loop(90)
	{
        SetCollisionA(GetX, GetY, 48);
	yield;
	}
	loop
	{
        SetCollisionA(GetX, GetY, 48);
        MSDSetCollisionB(GetX, GetY, 16);
	yield;
	}
}

sub standBy//初期位置へ
{
	SetAction(ACT_MOVE, 60);
	SetMovePosition03(xIni, yIni, 20,5);
}

////////////////////////////////////////////////////////////
task shotM
{
	SpellDraw(15,6000);
	let speed=6;
	let angle=rand(0,360);
	SetAction(ACT_SHOT_B, 180);
	ascent(i in 0..5)
	{
		SunnyLaser1(GetX,GetY,speed,angle+i*72,1);
	}
	wait(30);
	angle=rand(0,360);
	ascent(i in 0..5)
	{
		SunnyLaser1(GetX,GetY,speed,angle+i*72,-1);
	}
	wait(300);

	SunnyShot;
	let AngleSpeed=0.5;
	SetAction(ACT_SHOT_B, 3600);
	loop
	{
	angle=rand(0,360);
	ascent(i in 0..8)
	{
	SunnyLaser2(GetX,GetY,i*45,AngleSpeed,1);
	}
	wait(120);
	angle=rand(0,360);
	AngleSpeed+=0.05;
	ascent(i in 0..8)
	{
	SunnyLaser2(GetX,GetY,i*45,AngleSpeed,-1);
	}
	wait(120);
	AngleSpeed+=0.05;
	}

	task SunnyShot
	{
		loop
		{
			CreateShot01(GetX,GetY,rand(2,5),rand(0,360),10,5);
			wait(1);
			CreateShot01(GetX,GetY,rand(2,5),rand(0,360),26,5);
			wait(2);
		}
	}
	task SunnyLaser1(x,y,LaserSpeed,LaserAngle,dir)
	{
		let length=40;
		let width=12;
		let obj=Obj_Create(OBJ_SINUATE_LASER);
		Obj_SetX(obj,x);
		Obj_SetY(obj,y);
		Obj_SetSpeed(obj,LaserSpeed);
		Obj_SetAngle(obj,LaserAngle);
		ObjShot_SetBombResist(obj,true);
		Obj_SetAutoDelete(obj,false);
		//ObjShot_SetDelay(obj,delay);
		ObjShot_SetGraphic(obj,242);
		ObjSinuateLaser_SetLength(obj,length);
		ObjSinuateLaser_SetWidth(obj,width);

		let LaserAnglePlus=6;
		shot;
		loop(30)
		{
			ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			Obj_SetAngle(obj,LaserAngle);
			LaserAngle+=LaserAnglePlus*dir;
			LaserAnglePlus-=0;
			yield;
		}
		LaserAnglePlus=3.1;
		loop(180)
		{
			ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			Obj_SetAngle(obj,LaserAngle);
			LaserAngle+=LaserAnglePlus*dir;
			yield;
		}
		loop(60)
		{
			ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			Obj_SetAngle(obj,LaserAngle);
			LaserAngle+=LaserAnglePlus*dir;
			LaserAnglePlus-=4.0/60;
			yield;
		}
		loop(90)
		{
			ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			yield;
		}
		Obj_Delete(obj);

		task shot
		{
			wait(30);
			let r=40;
			loop(50)
			{
				CreateShot01(Obj_GetX(obj)+r*cos(LaserAngle),Obj_GetY(obj)+r*sin(LaserAngle),2.5,LaserAngle,10,5);
				wait(3);
			}
		}
	}

	task SunnyLaser2(x,y,LaserAngle,LaserAnglePlus,dir)
	{
		let length=0;
		let width=0;
		let obj = Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj,x,y);
		Obj_SetAngle(obj,LaserAngle);
		ObjShot_SetGraphic(obj,153);
		ObjLaser_SetLength(obj,length);
		ObjLaser_SetWidth(obj,width);
		ObjLaser_SetSource(obj,false);
		ObjShot_SetDelay(obj,0);
		//Obj_SetCollisionToPlayer(obj,false);
		ObjShot_SetBombResist(obj,true);

		Obj_SetCollisionToPlayer(obj,false);
		loop(60)
		{
			Obj_SetAngle(obj,LaserAngle);		
			ObjLaser_SetLength(obj,length);
			ObjLaser_SetWidth(obj,width);
			LaserAngle+=LaserAnglePlus*dir;
			length+=2;
			width+=20/60;
			StarLaserEffect(x,y,length,width,LaserAngle);
			yield;
		}	
		Obj_SetCollisionToPlayer(obj,true);	
		loop(120)
		{
			Obj_SetAngle(obj,LaserAngle);		
			ObjLaser_SetLength(obj,length);
			LaserAngle+=LaserAnglePlus*dir;
			length+=2;
			StarLaserEffect(x,y,length,width,LaserAngle);
			yield;
		}
		Obj_SetCollisionToPlayer(obj,false);
		loop(60)
		{
			Obj_SetAngle(obj,LaserAngle);		
			ObjLaser_SetLength(obj,length);
			ObjLaser_SetWidth(obj,width);
			LaserAngle+=LaserAnglePlus*dir;
			length+=2;
			width-=20/60;
			StarLaserEffect(x,y,length,width,LaserAngle);
			yield;
		}
		Obj_Delete(obj);
	}

task StarLaserEffect(x,y,length,width,angle)
{
		let imgBer=csd~"..\img\ber.png";
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgBer);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjShot_SetBombResist(obj,true);
		ObjEffect_SetVertexXY(obj, 0, -length, -3);
		ObjEffect_SetVertexXY(obj, 1,length,  -3);
		ObjEffect_SetVertexXY(obj, 2,length, 3);
		ObjEffect_SetVertexXY(obj, 3,  -length,  3);
		
		ObjEffect_SetVertexUV(obj, 0,  6,  27);
		ObjEffect_SetVertexUV(obj, 1,  228, 27);
		ObjEffect_SetVertexUV(obj, 2, 228, 33);
		ObjEffect_SetVertexUV(obj, 3, 6, 33);

		let Alpha=100*width/20;
		let R=255;
		let G=255;
		let B=255;

		R=255;
		G=69;
		B=30;


		ObjEffect_SetLayer(obj,3);
		Obj_SetPosition(obj,x,y);
		Obj_SetAngle(obj,angle);
		ObjEffect_SetAngle(obj,0,0,angle);

		if(GetCommonDataDefault("LightMode_SpecialEffect",0)==1){Obj_Delete(obj);return;}

		ascent(i in 0..4)
		{
			ObjEffect_SetVertexColor(obj,i,Alpha,R,G,B);
		}
		loop(15)
		{
		Obj_SetPosition(obj,x,y);
		ascent(i in 0..4)
		{
			ObjEffect_SetVertexColor(obj,i,Alpha,R,G,B);
		}
		Alpha-=100/15;
		//if(OnPlayerMissed){Alpha=0;}
		yield;
		}
		Obj_Delete(obj);
}

}
//////////////////////////////////////////////////////////////////////
task shotE
{
	SpellDraw(16,6000);
	DamageRate=75;
	let angle=rand(0,360);
	let dir=rand_int(0,1)*2-1;
	let R1=100;
	loop(48)
	{
		SunnyLaser2(GetX+R1*cos(angle),GetY+R1*sin(angle),angle+90,0);
		SunnyLaser2(GetX+R1*cos(angle),GetY+R1*sin(angle),angle-90,1);
		SunnyLaser2(GetX+R1*cos(angle+180),GetY+R1*sin(angle+180),angle+180+90,0);
		SunnyLaser2(GetX+R1*cos(angle+180),GetY+R1*sin(angle+180),angle+180-90,1);
		angle+=7.5*dir;
		yield;
	}

	wait(180);
	SetAction(ACT_MOVE, 60);
	SetMovePosition03(xIni, yIni, 20,5);
	wait(30);
	Concentration01(30);
	wait(30);
	DamageRate=100;
	Shot1;
	SetAction(ACT_SHOT_B, 3600);
	loop
	{
		angle=rand(-20,20);
		let dir=rand_int(0,1)*2-1;
		ascent(i in 0..42)
		{
			LHMShot(angle+i*8,1);
		}
		wait(30);
		angle=rand(196,236);
		let dir=rand_int(0,1)*2-1;
		ascent(i in 0..42)
		{
			LHMShot(angle+i*8,-1);
		}
		wait(30);
	}

	task SunnyLaser2(x,y,LaserAngle,num)
	{
		let length=350;
		let width=0;
		let obj = Obj_Create(OBJ_LASER);
		Obj_SetPosition(obj,x,y);
		Obj_SetAngle(obj,LaserAngle);
		ObjShot_SetGraphic(obj,153);
		ObjLaser_SetLength(obj,length);
		ObjLaser_SetWidth(obj,width);
		ObjLaser_SetSource(obj,false);
		ObjShot_SetDelay(obj,0);
		//Obj_SetCollisionToPlayer(obj,false);
		ObjShot_SetBombResist(obj,true);

		Obj_SetCollisionToPlayer(obj,false);
		loop(60)
		{
			ObjLaser_SetWidth(obj,width);
			width+=10/60;
			yield;
		}	
		Obj_SetCollisionToPlayer(obj,true);	
		loop(30)
		{		
			yield;
		}
		Obj_SetCollisionToPlayer(obj,false);
		loop(30)
		{		
			ObjLaser_SetLength(obj,length);
			ObjLaser_SetWidth(obj,width);
			width-=10/30;
			yield;
		}
		if(num==1)
		{
		let LX=Obj_GetX(obj);
		let LY=Obj_GetY(obj);
		ascent(i in 0..8)
		{
		CreateShot01(LX,LY,1.75,LaserAngle+i*45,10,5);
		}
		}
		Obj_Delete(obj);
	}


task Laser01(x,y,speed,angle,Slength,width,graphic,delay)
{
	let length=0;
	let obj = Obj_Create(OBJ_LASER);
	Obj_SetPosition(obj,x,y);
	Obj_SetSpeed(obj,speed);
	Obj_SetAngle(obj,angle);
	ObjShot_SetGraphic(obj,graphic);
	ObjLaser_SetLength(obj,length);
	ObjLaser_SetWidth(obj,width);
	ObjLaser_SetSource(obj,false);
	ObjShot_SetDelay(obj,delay);
	Obj_SetAutoDelete(obj,false);
	//Obj_SetCollisionToPlayer(obj,false);
	//ObjShot_SetBombResist(obj,true);
	let r=0;
	wait(delay);
	loop(Slength/speed)
	{
		ObjLaser_SetLength(obj,length);
		length+=speed;
		yield;
	}
	loop(240)
	{
		Obj_SetPosition(obj,x+r*cos(angle),y+r*sin(angle));
		r+=speed;
		yield;
	}
	Obj_Delete(obj);
}

	task Shot1
	{
		loop
		{
			CreateShotA(0,rand(GetClipMinX,GetClipMaxX),GetClipMinY,5);
			SetShotDataA(0,0,rand(1.5,2.5),rand(80,100),rand(-1,1),0,0,43);
			FireShot(0);
			wait(1);
		}	
	}

	task LHMShot(SetAngle,dir)
	{
	let count=0;
	let r=0;
	let rspeed=1.25;
	let obj = Obj_Create(OBJ_SHOT);
	Obj_SetPosition(obj, GetX+r*cos(SetAngle), GetY+r*sin(SetAngle));
	//Obj_SetSpeed(obj, Obj_GetSpeed(Pobj));
	//Obj_SetAngle(obj, angle);
	ObjShot_SetGraphic(obj, 10);
	ObjShot_SetDelay(obj, 5);
	ObjShot_SetBombResist(obj,true);
	Obj_SetAutoDelete(obj,false);
	loop(300)
	{
		Obj_SetPosition(obj, GetX+r*cos(SetAngle), GetY+r*sin(SetAngle));
		SetAngle+=0.5*dir;
		r+=rspeed;
		//rspeed+=0.01;
		yield;
    	}
	Obj_Delete(obj);
	}
}
///////////////////////////////////////////////////////////////////////////
task shotA
{

	SpellDraw(17,390);
	let angle=0;
	let dir=rand_int(0,1)*2-1;
	SetAction(ACT_SHOT_B, 60);
	ascent(i in -2..10)
	{
		SunnyLaser1(GetX,GetY,5,angle-9*i*dir+90*(1-dir));
		wait(3);
	}
	wait(90);
	SetAction(ACT_SHOT_B, 60);
	dir*=-1;
	ascent(i in -2..10)
	{
		SunnyLaser1(GetX,GetY,5,angle-9*i*dir+90*(1-dir));
		wait(3);
	}
	wait(90);
	SetAction(ACT_SHOT_B, 60);
	ascent(i in -2..10)
	{
		SunnyLaser1(GetX,GetY,5,angle-9*i);
		SunnyLaser1(GetX,GetY,5,angle+9*i+180);
		wait(3);
	}
	wait(150);
	Concentration01(30);
	wait(30);
	SpellDraw(18,6000);
	Shot1(1);
	//wait(10);
	Shot1(-1);
	loop
	{
	SetAction(ACT_SHOT_B, 360);
	SunnySpark;
	wait(300);
	}

	task Shot1(dir)
	{
		let Sangle=0;
		loop
		{
			ascent(i in 0..12)
			{
			CreateShotA(0,GetX,GetY,5);
			SetShotDataA(0,0,3.5,Sangle+i*30,0.8*dir,0,0,42.5+dir*0.5);
			SetShotDataA(0,150,3.0,NULL,0,0,0,NULL);
			FireShot(0);
			}
			Sangle+=-2.0*dir;
			wait(10);
		}	
	}

	task SunnySpark
	{
		let R1=0;
		let R2=0;
		let X=GetX;
		let Y=GetY;
		let Pangle=GetAngleToPlayer;
		NoticeSparkLaser(GetX,GetY,3,Pangle,500,15,242,60);
		wait(30);
		loop(180)
		{
			ascent(i in 0..4)
			{
				X=GetX+R1*cos(Pangle)*cos(angle)-R2*sin(Pangle)*sin(angle)+30*cos(Pangle);
				Y=GetY+R1*sin(Pangle)*cos(angle)+R2*cos(Pangle)*sin(angle)+30*sin(Pangle);
				SparkLaser(X,Y,10,Pangle,180,18,146,0);
				angle+=90;
			}
			angle+=5;
			let judgangle=sin(atan2(GetPlayerY-GetY,GetPlayerX-GetX)-Pangle);
			let ShiftAngle=absolute(atan2(GetPlayerY-GetY,GetPlayerX-GetX)-Pangle);
			if(judgangle>0)
			{
				Pangle+=0.2;
				if(ShiftAngle>45)
				{
					Pangle+=0.4;
				}
			}
			else
			{
				Pangle-=0.2;
				if(ShiftAngle>45)
				{
					Pangle-=0.4;
				}
			}
			if(R2<70)
			{
				R2+=70/60;
				R1+=15/60;
			}
			wait(1);
		}

		loop(60)
		{
			ascent(i in 0..4)
			{
				X=GetX+R1*cos(Pangle)*cos(angle)-R2*sin(Pangle)*sin(angle)+30*cos(Pangle);
				Y=GetY+R1*sin(Pangle)*cos(angle)+R2*cos(Pangle)*sin(angle)+30*sin(Pangle);
				SparkLaser(X,Y,10,Pangle,180,18,146,0);
				angle+=90;
			}
			angle+=5;
			R2-=70/60;
			R1-=15/60;
			wait(1);
		}

		task NoticeSparkLaser(x,y,Lspeed,Langle,Slength,width,graphic,delay)
		{
			let obj = Obj_Create(OBJ_LASER);
			Obj_SetPosition(obj,x,y);
			Obj_SetSpeed(obj,Lspeed);
			Obj_SetAngle(obj,Langle);
			ObjShot_SetGraphic(obj,graphic);
			ObjLaser_SetLength(obj,Slength);
			ObjLaser_SetWidth(obj,width);
			ObjLaser_SetSource(obj,false);
			ObjShot_SetDelay(obj,delay);
			Obj_SetAutoDelete(obj,false);
			//Obj_SetCollisionToPlayer(obj,false);
			//ObjShot_SetBombResist(obj,true);
			let r=0;
			wait(delay);
			Obj_Delete(obj);
		}

		task SparkLaser(x,y,Lspeed,Langle,Slength,width,graphic,delay)
		{
			let length=0;
			let obj = Obj_Create(OBJ_LASER);
			Obj_SetPosition(obj,x,y);
			Obj_SetSpeed(obj,Lspeed);
			Obj_SetAngle(obj,Langle);
			ObjShot_SetGraphic(obj,graphic);
			ObjLaser_SetLength(obj,length);
			ObjLaser_SetWidth(obj,width);
			ObjLaser_SetSource(obj,false);
			ObjShot_SetDelay(obj,delay);
			Obj_SetAutoDelete(obj,false);
			//Obj_SetCollisionToPlayer(obj,false);
			//ObjShot_SetBombResist(obj,true);
			ObjShot_ToItem(obj,false);
			let r=0;
			wait(delay);
			loop(Slength/Lspeed)
			{
				ObjLaser_SetLength(obj,length);
				length+=Lspeed;
				Lspeed+=0.05;
				yield;
			}
			loop(60)
			{
				Obj_SetPosition(obj,x+r*cos(Pangle),y+r*sin(Pangle));
				r+=Lspeed;
				Lspeed+=0.05;
				//Langle+=0.6;
				yield;
			}
			Obj_Delete(obj);
		}

	}


	task SunnyLaser1(x,y,LaserSpeed,LaserAngle)
	{
		let SLaserSpeed=LaserSpeed;
		let length=35;
		let width=15;
		let obj=Obj_Create(OBJ_SINUATE_LASER);
		Obj_SetX(obj,x);
		Obj_SetY(obj,y);
		Obj_SetSpeed(obj,LaserSpeed);
		Obj_SetAngle(obj,LaserAngle);
		ObjShot_SetBombResist(obj,true);
		Obj_SetAutoDelete(obj,false);
		//ObjShot_SetDelay(obj,delay);
		ObjShot_SetGraphic(obj,242);
		ObjSinuateLaser_SetLength(obj,length);
		ObjSinuateLaser_SetWidth(obj,width);

		let mo=1;
		let judgangle=0;
		let LightCount=0;
		loop(60)
		{
			if(LightCount%2==0)
			{
				ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			}
			LightCount+=1;
			Obj_SetSpeed(obj,LaserSpeed);
			LaserSpeed-=SLaserSpeed/75;
			yield;
		}
		loop(45)
		{
			if(LightCount%1==0)
			{
				ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			}
			LightCount+=1;
			Obj_SetSpeed(obj,LaserSpeed);
			if(LaserSpeed<10)
			{
			LaserSpeed+=0.2;
			}
		loop(6){
			judgangle=sin(atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj))-Obj_GetAngle(obj));
			if(judgangle>0)
			{
				Obj_SetAngle(obj,Obj_GetAngle(obj)+mo);
			}
			else
			{
				Obj_SetAngle(obj,Obj_GetAngle(obj)-mo);
			}}
			yield;
		}

		loop(15)
		{
			if(LightCount%1==0)
			{
				ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			}
			LightCount+=1;
			Obj_SetSpeed(obj,LaserSpeed);
			if(LaserSpeed<20)
			{
			LaserSpeed+=0.5;
			}
		loop(6){
			judgangle=sin(atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj))-Obj_GetAngle(obj));
			if(judgangle>0)
			{
				if(judgangle<0.5)
				{
				Obj_SetAngle(obj,Obj_GetAngle(obj)+mo);
				}
			}
			else
			{
				if(judgangle>-0.5)
				{
				Obj_SetAngle(obj,Obj_GetAngle(obj)-mo);
				}
			}}
			//LaserAngle=atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj));
			yield;
		}
		loop(45)
		{
			if(LightCount%1==0)
			{
				ShotEffect(Obj_GetX(obj),Obj_GetY(obj),3,255,255,69,30);
			}
			LightCount+=1;
			Obj_SetSpeed(obj,LaserSpeed);
			if(LaserSpeed<20)
			{
			LaserSpeed+=0.5;
			}
			
			yield;
		}
		Obj_Delete(obj);
	}
}

task ShotEffect(x,y,delay,Alpha,R,G,B)
{
  		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj,csd~"..\img\Light.png");
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
		ObjEffect_SetRenderState(obj, ADD);
		ObjEffect_CreateVertex(obj, 4);

		ObjEffect_SetVertexXY(obj, 0, -32, -32);
		ObjEffect_SetVertexXY(obj, 1,32, -32);
		ObjEffect_SetVertexXY(obj, 2, 32, 32);
		ObjEffect_SetVertexXY(obj, 3, -32, 32);
		
		ObjEffect_SetVertexUV(obj, 0,  0,  0);
		ObjEffect_SetVertexUV(obj, 1,  64, 0);
		ObjEffect_SetVertexUV(obj, 2, 64, 64);
		ObjEffect_SetVertexUV(obj, 3, 0,  64);
			ascent(let i in 0..4)
			{
			ObjEffect_SetVertexColor(obj,i,Alpha,R,G,B);
			}

		Obj_SetPosition(obj,x,y);

		ObjEffect_SetLayer(obj,2);

		let Zangle=rand(0,360);
		ObjEffect_SetAngle(obj,0,0,Zangle);

		let Scale=0.8;
		loop(delay)
		{
			ObjEffect_SetScale(obj, Scale, Scale);
			ObjEffect_SetAngle(obj,0,0,Zangle);
			Zangle+=6;
			Scale-=0.8/delay;
			yield;
		}
		Obj_Delete(obj);
}

////////////////////////////////////////////////////////////////////////
task ZakoVanish
{
	wait(300);
	SetCommonData("VanishSignal",true);
}

#include_function ".\..\txt\data.txt"
#include_function ".\..\lib/lib_anime_sunnymilk.txt"
}

#include_script ".\..\txt/EnemyShotData.txt"
