script_enemy_main {
	#include_function ".\..\ShotSheet\shot_replace.dnh"
	#include_function ".\..\functions.txt"
	#include_function ".\..\s3\y_functions.txt"

	SpellID=69;

	let i=0;
	let frame=0;

    @Initialize {
	StartFunctions(1,1,0);
	Randomize;
        SetLife(3500);
        SetTimer2(35);
	SetDamageRate(100,100);
	MagicCircle(false);
	SetEnemyMarker(true);
	SetShotAutoDeleteClip(150,150,150,50);
	YukariInit;

	shotinit;

	MainTask;
    }


function Wait(frames){loop(frames){yield;}}

let colorshot=[3,5,6,7];
let colors=[[0,1,0],[0,0,1],[1,0,1],[1,1,1]];

task MainTask{
	SetMovePosition03(GetCenterX,150,10,5);
	DelayBombTask;
	let x;
	let y;
	let color=prand_int(0,3);
	loop{
		ImageCharge(imgYukari1,1,186,65,250, 52,200,40,2,155+100*colors[color%4][0],155+100*colors[color%4][1],155+100*colors[color%4][2],[-2,2],[0,0]);
		Wait(70);
		CreateExplosionFlatEX(0,GetX,GetY,3,[100+155*colors[color%4][0],100+155*colors[color%4][1],100+155*colors[color%4][2]],0.2,40);
		CreateExplosionFlatEX(0,GetX,GetY,3,[100+155*colors[color%4][0],100+155*colors[color%4][1],100+155*colors[color%4][2]],0.1,40);
		SE("shot2");
		MainShots(RED23+colorshot[color%4]);
		x=GetX+prand(-40,40);
		y=GetY+prand(-40,40);
		x=center(GetClipMinX+60,x,GetClipMaxX-60);
		y=center(100,y,200);
		Wait(60);
		SetMovePositionNew(x,y,160);
		Wait(50);
		color+=prand_int(1,2);
	}
}
task DelayEffectDelay(x,y,graphic,time,delay){
	Wait(delay);
	DelayEffect(x,y,graphic,time);
}
function MainShots(color){
	let angle=prand(0,360);
	MainShots2(angle,1,color);
	MainShots2(angle+90,1,color);
	MainShots2(angle+180,1,color);
	MainShots2(angle+270,1,color);
	MainShots2(angle,-1,color);
	MainShots2(angle+90,-1,color);
	MainShots2(angle+180,-1,color);
	MainShots2(angle+270,-1,color);
}

task MainShots2(angle,dir,color){
	let frame=0;
	loop(30){
		CreateShotA(0,GetX,GetY,0);
		SetShotDataA(0,0,3.5,angle,0,0,0,color);
		SetShotDataA(0,frame*2+1,0,angle,0,0.01,2,NULL);

		CreateShotA(1,0,0,0);
		SetShotDataA(1,0,0,angle+180,0,0.01,2,color);
		AddShot(frame*2+1,0,1,0);

		AddShotDelay(0,frame*2+1,color,10);

		FireShot(0);

		angle+=180/19*dir;
		frame++;
//		yield;
	}
}

    @MainLoop {
        SetCollisionA(GetX, GetY, 40);
	SetCollisionB(GetX, GetY, 20);

	yield;
	YukariDrawLogic;
}


    @DrawLoop {
	YukariDrawLoop;	
}


    @Finalize {
	YukariFinalize;
	EndingFunc(3);
	PointItems(upper(GetX,GetCenterX),GetY,3,0);
	SetShotAutoDeleteClip(64,64,64,64);
    }

}