script_enemy_main {
    let GCSD=GetCurrentScriptDirectory;
    #include_function ".\..\ShotSheet\shot_replace.dnh"
    #include_function ".\..\functions.txt"
    #include_function ".\iddyea_functions.txt"

    SpellID=506;

    @Initialize {
	Randomize;
        SetLife(2600);
        SetTimer2(40);
	SetDamageRate(100,50);
	MagicCircle(false);
	SetEnemyMarker(true);
	IddyeaInit;
	MainTask;
	shotinit;

	StartFunctions(1,0,0);
//	SpellCircle2(6,1,4,200);
	SetShotAutoDeleteClip(64,10,64,64);
    }


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

task MainTask{
	DelayBombTask;
	SetMovePositionNew(GetCenterX,100,60);
	Wait(60);

	let angle=GetAngleToPlayer+rand(30,60)*RandDir;
	let frame=0;
	let dist=0;
	let k=0;
	let color=rand_int(0,3);
	let x;
	let y;
	let sounded=false;
	loop{
		dist=rand_int(0,30);
		SE("shot3");
		loop(20){
			sounded=false;
			loop(4){
				x=GetX+cos(angle)*dist;
				y=GetY+sin(angle)*dist;
				MainShot(x,y,3.5,angle+90,angle,color%4);
				if(!sounded){
					if(OnScreen(x,y,5)){
						sounded=true;
					}
				}	
				angle+=90;
			}
			if(sounded){
				SE("shot1");
			}
			k++;
			dist+=30;
			yield;
		}
		Wait(5);
		angle-=25;
		color++;
		frame++;
	}
}

task MainShot(x,y,v,angle,angle2,color){
	if(distance(x,y,GetPlayerX,GetPlayerY)>60*60||distance(x,y,GetX,GetY)<80*80){
		let color1=[0,2,4,6];

		if(OnScreen(x,y,60)){
			DelayNew(x,y,angle,60,20,color1[color]+RED11,10,80);
		}
		Wait(10);

		let obj=Obj_Create(OBJ_SHOT);
		ObjShot_SetGraphic(obj,color1[color]+RED11);
		Obj_SetPosition(obj,x,y);
		Obj_SetAngle(obj,angle);

		Obj_SetAutoDelete(obj,true);

		let vadd=2/280;
		v=0;
		loop(280){
			v+=vadd;
			Obj_SetSpeed(obj,v);
			yield;
		}
	}
}

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

	IddyeaDrawLogic;

	yield;
}

@DrawLoop {
	IddyeaDrawLoop;
}

@Finalize {
	EndingFunc(6);
	IddyeaFinalize;
	SetShotAutoDeleteClip(64,64,64,64);
	PointItems(GetX,GetY,7,0);
}

}