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

    SpellID=527;

    @Initialize {
	SetCommonData("AliceBGColor1",[0.5,0,0.5]);
	SetCommonData("AliceBGColor2",[1,0,1]);

	Randomize;
        SetLife(2000);
        SetTimer2(40);
	SetDamageRate(60,40);
	MagicCircle(false);
	SetEnemyMarker(true);
	AliceInit;
	MainTask;
	shotinit;
	DeleteCommonData("Alicedamage");

	StartFunctions(1,0,0);
	SetBG(22);

	SpellCircle2(5,1,4,200);
	SetInvincibility(120);
    }


let v=3;
let globaltimer=0;


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

task MainTask{
	DelayBombTask;
	CutIn2(8,"Puppeteer [World of Myriad Dolls]");

	SetMovePositionNew(GetCenterX,GetCenterY-40,60);
	Wait(60);
	let k=0;
	let dir=RandDir;
	let type=rand_int(0,4);
	loop{
		k=rand(0,360);
		SoundEffects(type%5);
		loop(6){
			SE("shot3");
			loop(2){
				CreateEnemyFromFile(GPSD~"lw\as4ld.txt",GetX,GetY,1.3*dir,k,type%5);
				k+=180;
				yield;
			}
			k+=360/(6*2)*dir;
		}
		type++;
		dir=-dir;
		Wait(180);
	}
}
task SoundEffects(type){
	Wait(3);
	let time=0;
	if(type==0){
		while(time<220){
			SE("shot1");
			Wait(10);time+=10;
		}
	}else if(type==1){
		while(time<220){
			Wait(20);time+=20;
			SE("shot2");
		}
	}else if(type==2){
		while(time<220){
			Wait(20);time+=20;
			loop(5){
				SE("shot1");
				Wait(2);time+=2;
			}
		}
	}else if(type==3){
		while(time<220){
			Wait(30);time+=20;
			SE("shot0");
		}
	}else{
		while(time<220){
			Wait(30);time+=20;
			SE("change");
		}
	}
}

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

	AliceDrawLogic;

	globaltimer++;

	AddLife(GetCommonDataDefault("Alicedamage",0));
	DeleteCommonData("Alicedamage");

	yield;
}

@DrawLoop {
	AliceDrawLoop;
}

@Finalize {
	DeleteCommonData("Alicedollcolor");
	DeleteCommonData("Alicepercent");
	EndingFunc(6);
	AliceFinalize;
	PointItems(GetX,GetY,7,1);
}

}

