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(2500);
        SetTimer(30);
	SetDamageRate(100,100);
//	SetScore(50000);
	MagicCircle(false);
	SetEnemyMarker(true);
	OverInit;
	SetInvincibility(100);

	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,100,10,5);
	DelayBombTask;
	PrepareArms;
	Wait(100);

	RotateArms;
	MainTask2;

	let color=0;
	let i=0;
	let angle=0;
	loop{
		angle=GetAngleToPlayer;
		i=0;
		loop(10){
			SetShotColor(255-i*23,255-i*23,200-i*20);
			CreateLaser01(GetX+cos(armangle)*50,GetY+sin(armangle)*50,3-(i/5),angle+i*18,170-i*10,10,WHITE50,i*1);
			CreateLaser01(GetX-cos(armangle)*50,GetY-sin(armangle)*50,3-(i/5),angle+i*18,170-i*10,10,WHITE50,i*1);
			if(i>0){
				CreateLaser01(GetX+cos(armangle)*50,GetY+sin(armangle)*50,3-(i/5),angle-i*18,170-i*15,10,WHITE50,i*1);
				CreateLaser01(GetX-cos(armangle)*50,GetY-sin(armangle)*50,3-(i/5),angle-i*18,170-i*15,10,WHITE50,i*1);
			}
			i++;
		}
		Wait(40);
	}
}
task MainTask2{
	Wait(20*5);
	let x=0;
	let y=0;
	let k=0;
	loop{
		SetMovePosition03(GetCenterX+prand(-120,120),prand(50,250),10,10);
		Wait(85);
	}
}
function Laser(x,y,v,a,l,w,g,d){
	CreateLaser01(x,y,v,a,l/2,w,g,d);
}

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);

}
}