
#Title[enm7 spell09 extra]
#Text[GtBE~g
unlaɉԑv]
#Player[FREE]
#BackGround[Default]
#ScriptVersion[2]

script_enemy_main{
	let csd			= GetCurrentScriptDirectory;
	let imgEffect	= csd~".\enm7eff\bossEfect.png";
	let imgSPNB		= csd~".\enm7eff\spellEfect.png";
	let t5			= csd~".\enm7se\timer1.wav";
	let t10			= csd~".\enm7se\timer2.wav";
	let tan			= csd~".\enm7se\shot1.wav";
	let kira		= csd~".\enm7se\shot2.wav";
	let Gspel		= csd~".\enm7se\echo5.wav";
	let laser		= csd~".\enm7se\Laser2.wav";
	let power		= csd~".\enm7se\enemy_powereffect.wav";
	let powerl		= csd~".\enm7se\power_logo.wav";
	let gekiha		= csd~".\enm7se\BossEnd.wav";
	let powerla		= csd~".\enm7se\power_logo.wav";
	let kaku		= csd~".\enm7se\j.wav";
	let frame		= 0;
	let GetAngle	= 0;
	let angle		= 16;
	let angle2		= 0;
	let angleBase	= 0;
	let count		= 0;
	let timer		= 0;
	let shotdir		= csd ~ "kshotData.txt";
	let MinX		= GetClipMinX;
	let MaxX		= GetClipMaxX;
	let CenX		= GetCenterX;
	let MinY		= GetClipMinY;
	let MaxY		= GetClipMaxY;
	let CenY		= GetCenterY;
	let T_count		= 0;
	let Damage		= 0;
	let a			= 0;
	let S_count		= 0;
	let endc		= 0;
	let i			= 0;
	
	@Initialize{
		SetLife(1000);
		SetDamageRate(0,0);
		SetInvincibility(120);
		
		CreateCommonDataArea("anime");
		SetCommonDataEx("anime","anime_flag",false);

		//e폜@(l64)
		SetShotAutoDeleteClip(0,0,0,0);
		LoadUserShotData(shotdir);
		SetMovePosition03(CenX,CenY,10,5);
		LoadGraphic(imgEffect);
		LoadGraphic(imgSPNB);
		//Aura(8,180,255,210);
		MagicCircle(false);
		SetRateScoreSystemEnable(false);
		hpb(1,0,0);
		Timer(1,1);
		EnemyTexture07EX(true);
		SetEffectForZeroLife(0,0,0);
		VSname(0);
		while(i<1){
			VSname2(0+i*10,0);
			i++;
		}i=0;
		RedMagicCircle(1,0);//1o 2ިڲ
		SetDurableSpellCard;
		
		CreateEnemyFromFile(csd~"enm7_Family02_Extra.txt",0,0,0,0,0);
		SpellPracticeSave("extra",10);
	}

	@MainLoop{
		yield;
		//SetCollisionA(GetX, GetY, 30);
		//SetCollisionB(GetX, GetY, 16);

		//ԏ
		if(GetTimer<=10 && GetTimer>=0){T_count++;}
		alternative(T_count)
		case(1,60,120,180,240){PlaySE(t10);}
		case(300,360,420,480,540){PlaySE(t5);}

		//{Agp莞ԃ_[W
		if(OnBomb==true){SetDamageRate(0,0);Damage=0;}
		if(OnBomb==false){Damage++;}
		if(Damage>=100){SetDamageRate(35,0);}

		//XyJ[hؐ錾
		if(S_count==1){
			CutinSP("TIREI",20,-50,8000000,60,GetCurrentScriptDirectory~".\enm7img\mint00000.png",0,0,384,512);
			CutinSP2(-275,-10,GetCurrentScriptDirectory~".\enm7spell\enm7_sn09.png",0,0,384,32,255,255,255);
			BackGroundEffect;
		}
		if(S_count==50){
			Concentration(50,powerla);
		}

		a++;	
		frame++;
		count++;
		S_count++;
		timer++;
		if(frame==150){
			SetShotAutoDeleteClip(6,6,6,6);
			Yohane;
		}

		let tact = GetCommonDataEx("title","act");
		let tsst = GetCommonDataEx("title","start_stage");
		if(tact==11){
			if(OnPlayerMissed==true){
				SetCommonDataEx("title","start_stage",false);
				VanishEnemy;
			}
			if(GetTimer<=1){
				SetMovePosition03(CenX-30,CenY-120,10,5);
				SetDamageRate(0,0);
				endc++;
			}
			if(endc==1){
				SetLife(1);
				DefeatExplosion(GetEnemyX,GetEnemyY);
			}
		}

	}//MainLoop")"łB

	@DrawLoop{}

	@Finalize{
		let tact = GetCommonDataEx("title","act");
		if(tact==11){
			SetCommonDataEx("title","start_stage",false);
		}
	}

	task FlowerBullet(x,y,dsp,sp,lp,af,dshote){
		let angleF	= 0;
		loop(lp){
			SetShotDirectionType(PLAYER);
			CreateShotA(0,x,y,10);
			SetShotDataA(0,0,dsp,angleF,0,-0.1,0,kGREEN62);
			SetShotDataA(0,af,NULL,0,0,0.05,sp,dshote);
			FireShot(0);
			angleF+=360/lp;
		}
		angleF=0;
	}
	
	task FlowerBullet2(x,y,dsp,sp,lp,af,dshote){
		let angleF	= 0;
		loop(lp){
			SetShotDirectionType(ABSOLUTE);
			CreateShotA(0,x,y,10);
			SetShotDataA(0,0,dsp,angleF,0,-0.1,0,kGREEN62);
			SetShotDataA(0,af,NULL,NULL,0,0.05,sp,dshote);
			FireShot(0);
			angleF+=360/lp;
		}
		angleF=0;
	}
	
	task FlowerBulletR(x,y,sp,angle,dshote,count){
		let ost		= Obj_Create(OBJ_SHOT);
		let sp1		= 0;
		let spA		= 0;
		
		Obj_SetPosition(ost,x,y);
		Obj_SetAngle(ost,angle);
		Obj_SetSpeed(ost,sp1);
		ObjShot_SetBombResist(ost,true);
		ObjShot_SetDelay(ost,10);
		ObjShot_SetGraphic(ost,dshote);
		Obj_SetAutoDelete(ost,true);
		Obj_SetAlpha(ost,255);
		
		loop{
			let sgx		= Obj_GetX(ost);
			let sgy		= Obj_GetY(ost);
			
			if(sp1<sp){spA+=0.5;}
			sp1=sp*sin(spA);
			Obj_SetSpeed(ost,sp1);
			
			if(count!=0){
				//[
				if(sgx<GetClipMinX-10){
					Obj_SetX(ost, (GetClipMinX-10)*2 - sgx);
					Obj_SetAngle(ost, 180 - Obj_GetAngle(ost));
					count--;
					PlaySE(kira);
				}
				//E[
				if(sgx>GetClipMaxX+10){
					Obj_SetX(ost, (GetClipMaxX+10)*2 - sgx);
					Obj_SetAngle(ost, 180 - Obj_GetAngle(ost));
					count--;
					PlaySE(kira);
				}
				//[
				if(sgy<GetClipMinY-10){
					Obj_SetY(ost, (GetClipMinY-10)*2 - sgy);
					Obj_SetAngle(ost, 360 - Obj_GetAngle(ost));
					count--;
					PlaySE(kira);
				}
			}
			if(sgx<MinX-20||sgx>MaxX+20||sgy<MinY-20||sgy>MaxY+20){
				Obj_Delete(ost);
				break;
			}
			yield;
		}
	}
	
	task Yohane{
		let dis			= 0;
		let angle		= 0;
		
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kRED62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(150,power);
		wait(300);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kBLUE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(120,power);
		wait(240);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kYELLOW62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(90,power);
		wait(180);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kPURPLE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(60,power);
		wait(120);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kRED62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(60);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kBLUE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(30);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kYELLOW62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kPURPLE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(30);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kRED62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(150,power);
		wait(300);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kBLUE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(120,power);
		wait(240);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kYELLOW62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(90,power);
		wait(180);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kPURPLE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(60,power);
		wait(120);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kRED62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(60);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kBLUE62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle-=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(30);
		loop(12){
			loop(5){
				FlowerBullet(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kYELLOW62);
				angle+=72;
				DeleteEnemyShotImmediatelyInCircle(ALL,GetPlayerX,GetPlayerY,16);
			}
			angle+=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kPURPLE62);
				angle+=72;
			}
			angle-=32;
			dis-=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kRED62);
				angle+=72;
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kBLUE62);
				angle+=72;
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kYELLOW62);
				angle+=72;
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kPURPLE62);
				angle+=72;
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kRED62);
				angle+=72;
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kBLUE62);
				angle+=72;
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kYELLOW62);
				angle+=72;
			}
			angle+=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
		dis=0;
		Concentration(30,power);
		wait(15);
		loop(12){
			loop(5){
				FlowerBullet2(CenX+dis*sin(angle),CenY+dis*cos(angle),1.8,1,5,60,kPURPLE62);
				angle+=72;
			}
			angle-=16;
			dis+=32;
			PlaySE(kira);
			wait(5);
		}
	}

	#include_function".\Obj_Control.txt"
	#include_function".\lib_kshot.txt"
}