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

    SpellID=504;

    @Initialize {
	Randomize;
        SetLife(2800);
        SetTimer2(40);
	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 angle2=rand(0,360);
	let angle=0;
	let color=0;
	let frame=0;
	loop{
		if(frame%2==0){
			SE("shot1");
		}
		loop(1){
			MainShot(2.5+sin(frame*3)*1.2,angle,angle2+(color%3)*120,color%3);
			color++;
			angle2-=2.3;
			angle+=123;
		}
		frame++;
		yield;
	}
}

task MainShot(v,angle,angle2,color){
	let color1=[PURPLE56,RED56,BLUE56];
	let color2=[BLUE56,PURPLE56,GREEN56];

	let x=GetX+cos(angle)*60;
	let y=GetY+sin(angle)*60;

	DelayNew(x,y,angle,60,24,color1[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]);
	ObjShot_SetBombResist(obj,true);
	Obj_SetAutoDelete(obj,false);
	Obj_SetPosition(obj,x,y);
	Obj_SetAngle(obj,angle);

	let vadd=v/180;
	loop(180){
		v-=vadd;
		Obj_SetSpeed(obj,v);
		yield;
	}

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


	DelayNew(Obj_GetX(obj),Obj_GetY(obj),angle2,60,20,color2[color],20,0);
	Obj_SetAngle(obj,angle2);
	vadd=2/280;
	loop(280){
		v+=vadd;
		Obj_SetSpeed(obj,v);
		yield;
	}
}
task HandleObjI(obj,obj2,angle){
	let size;
	let frame=0;
	let xoffset=cos(angle);
	let yoffset=sin(angle);
	Obj_SetAngle(obj2,angle);
	while(!Obj_BeDeleted(obj)){
		frame++;
		size=sin(frame*7-90)*4+26;
		Obj_SetPosition(obj2,Obj_GetX(obj)-xoffset*size*0.5,Obj_GetY(obj)-yoffset*size*0.5);
		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);
}

}