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

    SpellID=502;

    @Initialize {
	Randomize;
        SetLife(1800);
        SetTimer2(35);
	SetDamageRate(80,40);
	MagicCircle(false);
	SetEnemyMarker(true);
	IddyeaInit;
	MainTask;
	shotinit;

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


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

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

	let i=0;
	let angle=0;
	let color=0;
	loop{
		angle=GetAngleToPlayer;
		i=1;
		SE("laser3");
		loop(50){
			SE("shot1");
			MainShot(angle,(i%4)*90,i,color);
			i++;
			yield;
			yield;
		}
		color=1-color;
		MoveRandom(80,30, GetClipMinX+50,GetClipMinY+30,GetClipMaxX-50,GetClipMinY+100, 100, 120);
		Wait(120);
	}
}

task MainShot(angle,angle2,num,color){
	let angle3=rand(0,360);
	let xv2=cos(angle3);
	let yv2=sin(angle3);

	let color1=[PURPLE01,RED01];
	let color2=[BLUE01,PURPLE01];

	DelayNew(GetX+xv2*-60,GetY+yv2*-60,0,60,24,color2[color],20,50);
	DelayNew(GetX+xv2*-60,GetY+yv2*-60,0,40,20,color1[color],20,50);
	Wait(20);

	let obj=Obj_Create(OBJ_SHOT);
	ObjShot_SetGraphic(obj,color1[color]);
	Obj_SetAutoDelete(obj,false);
	ObjShot_SetBombResist(obj,true);

	let obj2=Obj_Create(OBJ_LASER);
	ObjShot_SetGraphic(obj2,color2[color]);
	Obj_SetAutoDelete(obj2,false);
	ObjShot_SetBombResist(obj2,true);
	Obj_SetCollisionToPlayer(obj2,false);
	ObjLaser_SetSource(obj2,false);
	HandleObjI(obj,obj2);

	let xv=cos(angle);
	let yv=sin(angle);
	let x=GetX;
	let y=GetY;
	let frame=0;
	let position;
	let position2;
	loop(180){
		frame+=0.5;
		position=(sin(frame))*num*10;
		position2=(cos(frame*2+180)-1)*30;
		Obj_SetPosition(obj,x+position*xv+position2*xv2,y+position*yv+position2*yv2);
		yield;
	}
	let v=0;
	ObjShot_SetBombResist(obj,false);
	while(v<2){
		Obj_SetAngle(obj,angle2);
		Obj_SetSpeed(obj,v);
		angle2+=1;
		v+=0.005;
		yield;
	}
	let angleadd=1;
	while(angleadd>0){
		Obj_SetAngle(obj,angle2);
		Obj_SetSpeed(obj,v);
		angle2+=angleadd;
		angleadd-=0.05;
		yield;
	}
}
task HandleObjI(obj,obj2){
	let size;
	let frame=0;
	while(!Obj_BeDeleted(obj)){
		frame++;
		size=sin(frame*7)*5+24;
		Obj_SetPosition(obj2,Obj_GetX(obj)-size/2,Obj_GetY(obj));
		ObjLaser_SetWidth(obj2,size);
		ObjLaser_SetLength(obj2,size);
		yield;
	}
	ObjShot_FadeDelete(obj2);
}


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

	IddyeaDrawLogic;

	yield;
}

@DrawLoop {
	IddyeaDrawLoop;
}

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

}