script_enemy_main {
	#include_function ".\..\ShotSheet\shot_replace.dnh"
	#include_function ".\..\functions.txt"
	#include_function ".\..\s2\o_functions.txt"

	SpellID=0;

	let i=0;
	let frame=0;

    @Initialize {
	StartFunctions(1,1,0);
	Randomize;
        SetLife(4000);
        SetTimer(45);
	SetDamageRate(100,100);
	SetBG(3);
	MagicCircle(false);
	SetEnemyMarker(true);
	OverInit;
	SetInvincibility(100);
	SpellCircle2(3,1,4,200);

	shotinit;

	MainTask;
	HandleShots(30);
    }


function Wait(frames){loop(frames){yield;}}
let colors=[AQUA50,WHITE50,GREEN50,WHITE50];
//let colors=[YELLOW50,YELLOW50,BLUE50,BLUE50];

	let armangle=0;

task MainTask{
	SetMovePosition03(GetCenterX-150,100,10,5);
	DelayBombTask;
	PrepareArms;
	Wait(100);
	RotateArms;
	let color=0;
	let i=0;
	let i2=0;
	MainTask2;
	loop{
		loop(60){
			NormalShot(GetX+cos(armangle)*50,GetY+sin(armangle)*50,2,armangle,colors[i2%2],false);
			//NormalShot(GetX+cos(armangle)*50,GetY+sin(armangle)*50,2,i+180,colors[i2%2],false);

			NormalShot(GetX-cos(armangle)*50,GetY-sin(armangle)*50,2,armangle+180,colors[i2%2+2],false);
			//NormalShot(GetX-cos(armangle)*50,GetY-sin(armangle)*50,2,i+180,colors[i2%2+2],false);

			//i+=360/20;
			i2++;
			Wait(2);
		}
	}
}
task MainTask2{
	Wait(20*5);
	loop{
//		MagnetShot(GetX,GetY,1,80,300, 220,0.4);
		MagnetShot(GetX,GetY,1,30,300, 220,0.4);
		SetMovePosition03(GetCenterX+150,100,30,6);
		Wait(80*5);
//		MagnetShot(GetX,GetY,1,100,300, 220,0.4);
		MagnetShot(GetX,GetY,1,150,300, 220,0.4);
		SetMovePosition03(GetCenterX-150,100,30,6);
		Wait(80*5);
	}
}
task PrepareArms{
	let angle=-45*8;
	let aadd=0;
	loop(20){
		SetArmPosition(0,GetX-cos(angle)*50,GetY-sin(angle)*50);
		SetArmPosition(1,GetX+cos(angle)*50,GetY+sin(angle)*50);		
		yield;
	}
	loop(80){
		SetArmPosition(0,GetX-cos(angle)*50,GetY-sin(angle)*50);
		SetArmPosition(1,GetX+cos(angle)*50,GetY+sin(angle)*50);
		angle+=aadd;
		aadd+=2/80;
		yield;
	}
}
task RotateArms{
	armangle=72;
	loop{
		armangle+=2;
		SetArmPosition(0,GetX-cos(armangle)*50,GetY-sin(armangle)*50);
		SetArmPosition(1,GetX+cos(armangle)*50,GetY+sin(armangle)*50);
		yield;
	}
}

    let speed=1.8;
    let framef=0;

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

	OverloadDrawLogic;
	yield;
}
    @DrawLoop {
	OverloadDrawLoop;
}

    @Finalize {
	OverFinalize;
	EndingFunc(2);
    }

function ZigzagLaser(x,y,a){

	CreateLaserC(0,x,y,20,50,YELLOW11,0);
	SetLaserDataC(0,0,8,a+45,0.2,0,0);
	let k=0;
	loop(10){
		SetLaserDataC(0,k*5+1,NULL,a+prand(-30,30),0.2,0,0);
		k++;
	}
	FireShot(0);

}
}